texlive[43857] trunk: lwarp (14apr17)

commits+karl at tug.org commits+karl at tug.org
Mon Apr 17 00:18:18 CEST 2017


Revision: 43857
          http://tug.org/svn/texlive?view=revision&revision=43857
Author:   karl
Date:     2017-04-17 00:18:18 +0200 (Mon, 17 Apr 2017)
Log Message:
-----------
lwarp (14apr17)

Modified Paths:
--------------
    trunk/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua
    trunk/Master/texmf-dist/doc/latex/lwarp/README.txt
    trunk/Master/texmf-dist/doc/latex/lwarp/lwarp.pdf
    trunk/Master/texmf-dist/scripts/lwarp/lwarpmk.lua
    trunk/Master/texmf-dist/source/latex/lwarp/lwarp.dtx
    trunk/Master/texmf-dist/source/latex/lwarp/lwarp.ins
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-abstract.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-algorithmicx.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-alltt.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-amsthm.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-floatflt.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-floatrow.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-framed.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-graphics.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-graphicx.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-keyfloat.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-listings.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-longtable.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-multicol.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-newproject.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-ntheorem.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-setspace.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-sidenotes.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-tabularx.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-theorem.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-threeparttable.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-ulem.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-verse.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-wrapfig.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp.sty

Added Paths:
-----------
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-glossaries.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-tabulary.sty

Modified: trunk/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua
===================================================================
--- trunk/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua	2017-04-16 22:17:59 UTC (rev 43856)
+++ trunk/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua	2017-04-16 22:18:18 UTC (rev 43857)
@@ -4,7 +4,7 @@
 
 -- Print the usage of the lwarpmk command:
 
-printversion = "v0.27"
+printversion = "v0.29"
 
 function printhelp ()
 print ("lwarpmk: Use lwarpmk -h or lwarpmk --help for help.") ;
@@ -15,8 +15,10 @@
 
 lwarpmk print [project]: Compile a print version.
 lwarpmk printindex [project]: Process the index for the print version.
+lwarpmk printglossary [project]: Process the glossary for the print version.
 lwarpmk html [project]: Compile an HTML version.
 lwarpmk htmlindex [project]: Process the index for the html version.
+lwarpmk htmlglossary [project]: Process the glossary for the html version.
 lwarpmk again [project]: Touch the source code to trigger recompiles.
 lwarpmk limages [project]: Process the "lateximages" created by lwarp.sty.
 lwarpmk pdftohtml [project]:
@@ -23,7 +25,7 @@
     For use with latexmk or a Makefile:
     Convert project_html.pdf to project_html.html and
     individual HTML files.
-lwarpmk clean [project]: Remove project.aux, .toc, .lof, .lot, .idx, .ind, .log
+lwarpmk clean [project]: Remove project.aux, .toc, .lof/t, .idx, .ind, .log, .gl*
 lwarpmk cleanall [project]: Remove auxiliary files and also project.pdf, *.html
 lwarpmk -h: Print this help message.
 lwarpmk --help: Print this help message.
@@ -44,6 +46,7 @@
 homehtmlfilename = "index"  (or perhaps the project name)
 htmlfilename = ""  (or "projectname" - filename prefix)
 uselatexmk = "false"  (or "true" to use latexmk to build PDFs)
+languge = "english"  (use a language supported by xindy)
 --
 Filenames must contain only letters, numbers, underscore, or dash.
 Values must be in "quotes".
@@ -85,6 +88,8 @@
 local conffile = "lwarpmk.conf"
 -- Optional configuration filename:
 if arg[2] ~= nil then conffile = arg[2]..".lwarpmkconf" end
+-- Default language:
+language = "english"
 -- Verify the file exists:
 if (lfs.attributes(conffile,"mode")==nil) then -- file not exists
 print("lwarpmk: " .. conffile .." does not exist.")
@@ -129,6 +134,7 @@
 elseif ( cvarname == "homehtmlfilename" ) then homehtmlfilename = cvalue
 elseif ( cvarname == "htmlfilename" ) then htmlfilename = cvalue
 elseif ( cvarname == "uselatexmk" ) then uselatexmk = cvalue
+elseif ( cvarname == "language" ) then language = cvalue
 else
 print ( linenum .. " : " .. line ) ;
 print ("lwarpmk: Incorrect variable name \"" .. cvarname .. "\" in " .. conffile ..".\n" ) ;
@@ -225,7 +231,8 @@
         sourcename ..".lot " .. sourcename .. "_html.lot " ..
         sourcename ..".idx " .. sourcename .. "_html.idx " ..
         sourcename ..".ind " .. sourcename .. "_html.ind " ..
-        sourcename ..".log " .. sourcename .. "_html.log "
+        sourcename ..".log " .. sourcename .. "_html.log " ..
+        sourcename ..".gl* " .. sourcename .. "_html.gl* "
         )
 end
 
@@ -315,6 +322,22 @@
 print ("lwarpmk: " .. sourcename ..".tex is ready to be recompiled.")
 print ("lwarpmk: Done.")
 
+-- lwarp printglossary:
+-- Compile the glossary then touch the source
+-- to trigger a recompile of the document:
+
+elseif arg[1] == "printglossary" then
+loadconf ()
+print ("lwarpmk: Processing the glossary.")
+
+os.execute("xindy -L " .. language .. " -C utf8 -I xindy -M " .. sourcename ..
+    " -t " .. sourcename .. ".glg -o " .. sourcename .. ".gls "
+    .. sourcename .. ".glo")
+print ("lwarpmk: Forcing an update of " .. sourcename ..".tex.")
+refreshdate ()
+print ("lwarpmk: " .. sourcename ..".tex is ready to be recompiled.")
+print ("lwarpmk: Done.")
+
 -- lwarpmk html:
 
 elseif arg[1] == "html" then
@@ -366,6 +389,23 @@
 print ("lwarpmk: " .. sourcename ..".tex is ready to be recompiled.")
 print ("lwarpmk: Done.")
 
+-- lwarpmk htmlglossary:
+-- Compile the glossary then touch the source
+-- to trigger a recompile of the document:
+
+elseif arg[1] == "htmlglossary" then
+loadconf ()
+print ("lwarpmk: Processing the glossary.")
+
+os.execute("xindy -L " .. language .. " -C utf8 -I xindy -M " ..sourcename ..
+    "_html -t " .. sourcename .. "_html.glg -o " ..sourcename ..
+    "_html.gls " ..sourcename .. "_html.glo")
+
+print ("lwarpmk: Forcing an update of " .. sourcename ..".tex.")
+refreshdate ()
+print ("lwarpmk: " .. sourcename ..".tex is ready to be recompiled.")
+print ("lwarpmk: Done.")
+
 -- lwarpmk limages:
 -- Scan the lateximages.txt file to create lateximages,
 -- then touch the source to trigger a recompile.
@@ -390,7 +430,7 @@
 print ("lwarpmk: Done.")
 
 -- lwarpmk clean:
--- Remove project.aux, .toc, .lof, .lot, .idx, .ind, .log
+-- Remove project.aux, .toc, .lof, .lot, .idx, .ind, .log, .gl*
 
 elseif arg[1] == "clean" then
 loadconf ()
@@ -398,7 +438,7 @@
 print ("lwarpmk: Done.")
 
 -- lwarpmk cleanall
--- Remove project.aux, .toc, .lof, .lot, .idx, .ind, .log
+-- Remove project.aux, .toc, .lof, .lot, .idx, .ind, .log, .gl*
 --    and also project.pdf, *.html
 
 elseif arg[1] == "cleanall" then

Modified: trunk/Master/texmf-dist/doc/latex/lwarp/README.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/lwarp/README.txt	2017-04-16 22:17:59 UTC (rev 43856)
+++ trunk/Master/texmf-dist/doc/latex/lwarp/README.txt	2017-04-16 22:18:18 UTC (rev 43857)
@@ -1,5 +1,5 @@
 
-LaTeX lwarp package v0.27   README.txt
+LaTeX lwarp package v0.29   README.txt
 
 Files included are:
 

Modified: trunk/Master/texmf-dist/doc/latex/lwarp/lwarp.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/scripts/lwarp/lwarpmk.lua
===================================================================
--- trunk/Master/texmf-dist/scripts/lwarp/lwarpmk.lua	2017-04-16 22:17:59 UTC (rev 43856)
+++ trunk/Master/texmf-dist/scripts/lwarp/lwarpmk.lua	2017-04-16 22:18:18 UTC (rev 43857)
@@ -4,7 +4,7 @@
 
 -- Print the usage of the lwarpmk command:
 
-printversion = "v0.27"
+printversion = "v0.29"
 
 function printhelp ()
 print ("lwarpmk: Use lwarpmk -h or lwarpmk --help for help.") ;
@@ -15,8 +15,10 @@
 
 lwarpmk print [project]: Compile a print version.
 lwarpmk printindex [project]: Process the index for the print version.
+lwarpmk printglossary [project]: Process the glossary for the print version.
 lwarpmk html [project]: Compile an HTML version.
 lwarpmk htmlindex [project]: Process the index for the html version.
+lwarpmk htmlglossary [project]: Process the glossary for the html version.
 lwarpmk again [project]: Touch the source code to trigger recompiles.
 lwarpmk limages [project]: Process the "lateximages" created by lwarp.sty.
 lwarpmk pdftohtml [project]:
@@ -23,7 +25,7 @@
     For use with latexmk or a Makefile:
     Convert project_html.pdf to project_html.html and
     individual HTML files.
-lwarpmk clean [project]: Remove project.aux, .toc, .lof, .lot, .idx, .ind, .log
+lwarpmk clean [project]: Remove project.aux, .toc, .lof/t, .idx, .ind, .log, .gl*
 lwarpmk cleanall [project]: Remove auxiliary files and also project.pdf, *.html
 lwarpmk -h: Print this help message.
 lwarpmk --help: Print this help message.
@@ -44,6 +46,7 @@
 homehtmlfilename = "index"  (or perhaps the project name)
 htmlfilename = ""  (or "projectname" - filename prefix)
 uselatexmk = "false"  (or "true" to use latexmk to build PDFs)
+languge = "english"  (use a language supported by xindy)
 --
 Filenames must contain only letters, numbers, underscore, or dash.
 Values must be in "quotes".
@@ -85,6 +88,8 @@
 local conffile = "lwarpmk.conf"
 -- Optional configuration filename:
 if arg[2] ~= nil then conffile = arg[2]..".lwarpmkconf" end
+-- Default language:
+language = "english"
 -- Verify the file exists:
 if (lfs.attributes(conffile,"mode")==nil) then -- file not exists
 print("lwarpmk: " .. conffile .." does not exist.")
@@ -129,6 +134,7 @@
 elseif ( cvarname == "homehtmlfilename" ) then homehtmlfilename = cvalue
 elseif ( cvarname == "htmlfilename" ) then htmlfilename = cvalue
 elseif ( cvarname == "uselatexmk" ) then uselatexmk = cvalue
+elseif ( cvarname == "language" ) then language = cvalue
 else
 print ( linenum .. " : " .. line ) ;
 print ("lwarpmk: Incorrect variable name \"" .. cvarname .. "\" in " .. conffile ..".\n" ) ;
@@ -225,7 +231,8 @@
         sourcename ..".lot " .. sourcename .. "_html.lot " ..
         sourcename ..".idx " .. sourcename .. "_html.idx " ..
         sourcename ..".ind " .. sourcename .. "_html.ind " ..
-        sourcename ..".log " .. sourcename .. "_html.log "
+        sourcename ..".log " .. sourcename .. "_html.log " ..
+        sourcename ..".gl* " .. sourcename .. "_html.gl* "
         )
 end
 
@@ -315,6 +322,22 @@
 print ("lwarpmk: " .. sourcename ..".tex is ready to be recompiled.")
 print ("lwarpmk: Done.")
 
+-- lwarp printglossary:
+-- Compile the glossary then touch the source
+-- to trigger a recompile of the document:
+
+elseif arg[1] == "printglossary" then
+loadconf ()
+print ("lwarpmk: Processing the glossary.")
+
+os.execute("xindy -L " .. language .. " -C utf8 -I xindy -M " .. sourcename ..
+    " -t " .. sourcename .. ".glg -o " .. sourcename .. ".gls "
+    .. sourcename .. ".glo")
+print ("lwarpmk: Forcing an update of " .. sourcename ..".tex.")
+refreshdate ()
+print ("lwarpmk: " .. sourcename ..".tex is ready to be recompiled.")
+print ("lwarpmk: Done.")
+
 -- lwarpmk html:
 
 elseif arg[1] == "html" then
@@ -366,6 +389,23 @@
 print ("lwarpmk: " .. sourcename ..".tex is ready to be recompiled.")
 print ("lwarpmk: Done.")
 
+-- lwarpmk htmlglossary:
+-- Compile the glossary then touch the source
+-- to trigger a recompile of the document:
+
+elseif arg[1] == "htmlglossary" then
+loadconf ()
+print ("lwarpmk: Processing the glossary.")
+
+os.execute("xindy -L " .. language .. " -C utf8 -I xindy -M " ..sourcename ..
+    "_html -t " .. sourcename .. "_html.glg -o " ..sourcename ..
+    "_html.gls " ..sourcename .. "_html.glo")
+
+print ("lwarpmk: Forcing an update of " .. sourcename ..".tex.")
+refreshdate ()
+print ("lwarpmk: " .. sourcename ..".tex is ready to be recompiled.")
+print ("lwarpmk: Done.")
+
 -- lwarpmk limages:
 -- Scan the lateximages.txt file to create lateximages,
 -- then touch the source to trigger a recompile.
@@ -390,7 +430,7 @@
 print ("lwarpmk: Done.")
 
 -- lwarpmk clean:
--- Remove project.aux, .toc, .lof, .lot, .idx, .ind, .log
+-- Remove project.aux, .toc, .lof, .lot, .idx, .ind, .log, .gl*
 
 elseif arg[1] == "clean" then
 loadconf ()
@@ -398,7 +438,7 @@
 print ("lwarpmk: Done.")
 
 -- lwarpmk cleanall
--- Remove project.aux, .toc, .lof, .lot, .idx, .ind, .log
+-- Remove project.aux, .toc, .lof, .lot, .idx, .ind, .log, .gl*
 --    and also project.pdf, *.html
 
 elseif arg[1] == "cleanall" then

Modified: trunk/Master/texmf-dist/source/latex/lwarp/lwarp.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/lwarp/lwarp.dtx	2017-04-16 22:17:59 UTC (rev 43856)
+++ trunk/Master/texmf-dist/source/latex/lwarp/lwarp.dtx	2017-04-16 22:18:18 UTC (rev 43857)
@@ -16,7 +16,7 @@
 % \iffalse
 %<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
 %<package>\ProvidesPackage{lwarp}
-%<package>    [2017/04/04 v0.27  Allows LaTeX to directly produce HTML5 output.]
+%<package>    [2017/04/15 v0.29  Allows LaTeX to directly produce HTML5 output.]
 %
 %<*driver>
 \documentclass{ltxdoc}
@@ -119,14 +119,33 @@
 
 \usepackage{dtxdescribe}
 
-\newcommand{\ItemDescribeMacro}[1]{\item[\cmd{#1}:]\DescribeMacro{#1}}
-\newcommand{\ItemDescribeEnv}[1]{\item[\env{#1}:]\DescribeEnv{#1}}
-\newcommand{\ItemDescribeCounter}[1]{\item[\texttt{#1}:]\DescribeCounter{#1}}
-\newcommand{\ItemDescribeBoolean}[1]{\item[\texttt{#1}:]\DescribeBoolean{#1}}
+\newcommand{\ItemDescribeMacro}[1]{%
+\item[\cmd{#1}:]%
+\setlength{\parskip}{1.5ex}%
+\DescribeMacro{#1}%
+}
 
+\newcommand{\ItemDescribeEnv}[1]{%
+\item[\env{#1}:]%
+\setlength{\parskip}{1.5ex}%
+\DescribeEnv{#1}%
+}
 
+\newcommand{\ItemDescribeCounter}[1]{%
+\item[\texttt{#1}:]%
+\setlength{\parskip}{1.5ex}%
+\DescribeCounter{#1}%
+}
 
+\newcommand{\ItemDescribeBoolean}[1]{%
+\item[\texttt{#1}:]%
+\setlength{\parskip}{1.5ex}%
+\DescribeBoolean{#1}%
+}
 
+
+
+
 \usepackage{microtype}
 
 \usepackage[all,defaultlines=2]{nowidow}
@@ -161,34 +180,72 @@
 \newcommand{\acro}[1]{\textsc{\lowercase{#1}}}
 \newcommand{\tag}[1]{\texttt{<#1>}}
 
+\newcommand{\TOC}{\acro{TOC}}
+\newcommand{\LOF}{\acro{LOF}}
+\newcommand{\LOT}{\acro{LOT}}
 
+\newcommand{\HTML}{\acro{HTML}}
+\newcommand{\HTMLfive}{\HTML\oldstylenums{5}}
+\newcommand{\CSS}{\acro{CSS}}
+\newcommand{\CSSthree}{\CSS\oldstylenums{3}}
+\newcommand{\EPUB}{\acro{EPUB}}
+\newcommand{\SVG}{\acro{SVG}}
+\newcommand{\PNG}{\acro{PNG}}
+\newcommand{\JPG}{\acro{JPG}}
+\newcommand{\PDF}{\acro{PDF}}
+\newcommand{\tikz}{Ti\textit{k}z}
+\newcommand{\MathML}{Math\acro{ML}}
+\newcommand{\CTAN}{\acro{CTAN}}
+\newcommand{\TDS}{\acro{TDS}}
 
+\newcommand{\goesto}{$\Rightarrow$}
 
+\newcommand{\credits}[1]{{\footnotesize(\textit{Based on original code by} \textsc{#1}.)}}
 
-
-
 \newcommand{\codehtml}{\leavevmode\marginpar{\footnotesize\raggedleft\textcolor{codecolor}{\textbf{for HTML output:~}}}\vspace{-5.25ex}}
 \newcommand{\codeprint}{\leavevmode\marginpar{\footnotesize\raggedleft\textcolor{codecolor}{\textbf{for PRINT output:~}}}\vspace{-5.25ex}}
 \newcommand{\codeall}{\leavevmode\marginpar{\footnotesize\raggedleft\textcolor{codecolor}{\textbf{for HTML \& PRINT:~}}}\vspace{-5.25ex}}
 
-\newcommand{\tikz}{Ti\textit{k}z}
-\newcommand{\htmlfive}{\acro{HTML}\oldstylenums{5}}
-\newcommand{\cssthree}{\acro{CSS}\oldstylenums{3}}
 
-\newcommand{\goesto}{$\Rightarrow$}
+\newcommand{\userentry}[1]{%
+\leavevmode\smallskip\newline
+\hspace*{2em}\begin{minipage}{\linewidth-2em}
+{\footnotesize Enter~$\Rightarrow$}\quad\texttt{#1}
+\end{minipage}
+\unskip\smallskip
+}
 
-\newcommand{\credits}[1]{{\footnotesize(\textit{Based on original code by} \textsc{#1}.)}}
+\newenvironment{sourcedisplay}
+{
+\leavevmode\smallskip\newline
+\hspace*{2em}\minipage{\linewidth-2em}
+\ttfamily
+}
+{
+\endminipage
+\unskip\smallskip
+}
 
-
-\newcommand{\userentry}[1]{%
-\par
-\smallskip
-\hspace*{2em}{\footnotesize Enter~$\Rightarrow$}\quad\texttt{#1}
-\smallskip
+\newenvironment{UIdisplay}
+{
+\leavevmode\smallskip\newline
+\hspace*{2em}\minipage{\linewidth-2em}
+\sffamily
 }
+{
+\endminipage
+\unskip\smallskip
+}
 
+
 \newenvironment{docsidebar}[1][]
-{\hfill\minipage{.9\linewidth}\raggedright#1\smallskip\hrule\medskip}
+{%
+\ifthenelse{\isempty{#1}}{}{\medskip}%
+\hfill\minipage{.9\linewidth}%
+\setlength{\parskip}{1.5ex}%
+\ifthenelse{\isempty{#1}}{}{\textit{#1}}%
+\leavevmode\smallskip\hrule%
+}
 {\smallskip\hrule\endminipage\hspace*{\fill}\bigskip}
 
 % \makeatletter
@@ -239,11 +296,11 @@
 \codeprint\vspace*{5.25ex}\ignorespaces
 \codeall\vspace*{5.25ex}\ignorespaces
 Green-colored tags in the left margin show which sections of source
-code apply to the generation of \acro{HTML}, print, or both forms of output.
+code apply to the generation of \HTML, print, or both forms of output.
 }
 
 \newcommand{\limitspageref}{\pkg{cleveref} and \pkg{varioref} are supported,
-but printed page numbers do not map to \acro{HTML}.
+but printed page numbers do not map to \HTML.
 See \cref{sec:successfulcommands} to redefine the message which is printed
 for page number references.
 }
@@ -273,10 +330,11 @@
 defining an \cs{attrib} command, which may already exist in current documents,
 but it will only work for print output.
 \pkg{lwarp} provides \cs{attribution}, which
-works for both print and \acro{HTML} output.  To combine the two so that
-\cs{attrib} is used for print and \cs{attribution} is used for \acro{HTML}:
+works for both print and \HTML\ output.  To combine the two so that
+\cs{attrib} is used for print and \cs{attribution} is used for \HTML:
 
 \begin{docsidebar}
+\raggedright
 \ttfamily
 \cs{begin}\{warpHTML\}
 
@@ -291,7 +349,7 @@
 and they may already be set by the user for print output.  New lengths
  \DescribeLength{HTMLvleftskip}\DescribeLength{HTMLleftmargini}
 \cs{HTMLvleftskip} and \cs{HTMLleftmargini} are provided to control the
-margins in \acro{HTML} output.  These new lengths may be set by the user
+margins in \HTML\ output.  These new lengths may be set by the user
 before any \env{verse} environment, and persist until they are manually changed again.
 One reason to change \cs{HTMLleftmargini} is if there is a wide
 \cs{flagverse} in use, such as the word ``Chorus'', in which case the value of
@@ -298,9 +356,9 @@
 \cs{HTMLleftmargini} should be set to a wide enough length to contain ``Chorus''.
 The default is wide enough for a stanza number.
 
-Horizontal spacing relies on \texttt{pdftotext}'s ability to discern the
-\texttt{-layout} of the
-text in the \acro{HTML}-tagged \acro{PDF} output.  For some settings of
+Horizontal spacing relies on \texttt{pdftotext}'s ability to discern the layout
+(\texttt{-layout} option) of the
+text in the \HTML-tagged \PDF\ output.  For some settings of
 \cs{HTMLleftmargini} or \cs{HTMLleftskip} the horizontal alignment may not work out
 exactly, in which case a label may be shifted by one space.
 }
@@ -309,7 +367,7 @@
 \newcommand{\limitslateximagefontsize}{%
 The size of the math and text used
 \margintag{SVG image font size}
-in the \acro{SVG} image may be adjusted
+in the \SVG\ image may be adjusted
 \index{font>size --- lateximage}%
 \index{font>size --- math, SVG}%
 \index{math>font size --- SVG}%
@@ -320,21 +378,21 @@
 
 
 \newcommand{\limitsmath}{%
-Math may be rendered as \acro{SVG} graphics or using the \textsc{MathJax} JavaScript display engine.
+Math may be rendered as \SVG\ graphics or using the \textsc{MathJax} JavaScript display engine.
 \index{JavaScript>MathJax}
 
-For \acro{SVG} math,
+For \SVG\ math,
 \margintag{SVG math option}
-math is rendered as usual by \LaTeX{} into the initial \acro{PDF} file using the
+math is rendered as usual by \LaTeX{} into the initial \PDF\ file using the
 \index{math>SVG summary}%
 \index{SVG>math summary}%
 current font\footnote{See \cref{sec:xfrac} regarding fonts and fractions.},
-then is captured from the \acro{PDF} and converted to \acro{SVG} graphics
+then is captured from the \PDF\ and converted to \SVG\ graphics
 via a number of utility programs.
-The \acro{SVG} format is a scalable-vector web format, so math may be typeset by \LaTeX{}
+The \SVG\ format is a scalable-vector web format, so math may be typeset by \LaTeX{}
 with its fine control and precision, then displayed or printed at any size,
 depending on (sometimes broken) browser support.
-An \acro{HTML} \texttt{ALT} tag carries the \LaTeX{} code which generated the
+An \HTML\ \texttt{ALT} tag carries the \LaTeX{} code which generated the
 math, allowing copy/paste of the \LaTeX{} math expression into other documents.
 
 \limitslateximagefontsize
@@ -341,7 +399,7 @@
 
 As currently implemented,
 \margintag{SVG files}
-each instance of math creates a new \acro{SVG} file.  In text with
+each instance of math creates a new \SVG\ file.  In text with
 many references to math variables, this can result in a large number of files with
 duplicate content.  In the future, some method of content-based naming and checksumming
 may be used to remove the need for duplicate files.
@@ -348,23 +406,24 @@
 
 Another approach would be
 \margintag{SVG inline}
-to in-line the \acro{SVG} files directly into the \acro{HTML}.
+to in-line the \SVG\ files directly into the \HTML.
 This avoids having a large number of files and potentially speeds loading the images,
 but dis-allows the possibility of sharing one file among many instances without
 user intervention.
 
-Others have used \acro{PNG} files,
+Others have used \PNG\ files,
 \margintag{PNG files}
 sometimes pre-scaled for print resolution but displayed
 on-screen at a scaled down size.  This allows high-quality print output at the expense
-of larger files, but \acro{SVG} files are also larger as well.
+of larger files, but \SVG\ files are also larger as well.
 
-Conversion to Math\acro{ML} might be a better approach,
+Conversion to \MathML\ might be a better approach,
 \margintag{MathML}
 among other things
-allowing a more compact representation of math than \acro{SVG} drawings.
-Problems with Math\acro{ML} include limited browser support and some
+allowing a more compact representation of math than \SVG\ drawings.
+Problems with \MathML\ include limited browser support and some
 issues with the fine control of the appearance of the result.
+Also see \cref{sec:epub} regarding \EPUB\ output with MathJax.
 
 The popular MathJax alternative (\url{mathjax.org}) may be used to display math.
 \margintag{MathJax math option}
@@ -374,9 +433,9 @@
 
 When MathJax is enabled, math is rendered twice:
 \begin{enumerate}
-\item As regular \LaTeX\ \acro{PDF} output placed inside an \acro{HTML} comment, allowing
+\item As regular \LaTeX\ \PDF\ output placed inside an \HTML\ comment, allowing
 equation numbering and cross referencing to be almost entirely under the control of \LaTeX, and
-\item As detokenized printed \LaTeX{} commands placed directly into the \acro{HTML} output
+\item As detokenized printed \LaTeX{} commands placed directly into the \HTML\ output
 for interpretation by the MathJax display scripts.  An additional script is used to
 pre-set the equation number format and value according to the current \LaTeX\ values,
 and the MathJax cross-referencing system is ignored in favor of the \LaTeX\ internal system,
@@ -391,7 +450,7 @@
 	\margintag{chapter numbers}%
 	\index{MathJax>tagged equations}%
 	\index{tagged equations>Mathjax}%
-	\cs{tag}ged equations have the chapter number prepended in \acro{HTML} output, unlike \LaTeX.
+	\cs{tag}ged equations have the chapter number prepended in \HTML\ output, unlike \LaTeX.
 	\cs{tag*} equations (correctly) do not.
 	This may be improved with future versions of the MathJax support script.
 
@@ -431,7 +490,7 @@
 \newcommand{\limitsntheorem}{%
 This conversion is not total.
 \watchout[Font control]
-Font control is via \acro{CSS}, and the custom \LaTeX\ font settings
+Font control is via \CSS, and the custom \LaTeX\ font settings
 are ignored.
 
 \pkg{ntheorem} has a bug with equation numbering in AMS environments
@@ -438,7 +497,7 @@
 \watchout[Equation numbering]
 when the option \texttt{thref} is used.  \pkg{lwarp} does not share
 this bug, so equations with \cs{split}, etc, are numbered correctly
-with \pkg{lwarp}'s \acro{HTML} output, but not with the print output.
+with \pkg{lwarp}'s \HTML\ output, but not with the print output.
 It is recommended to use \pkg{cleveref} instead of \pkg{ntheorem}'s
 \texttt{thref} option.
 }
@@ -445,8 +504,16 @@
 
 
 \newcommand{\limitsgraphics}{%
+If using the older \pkg{graphics} syntax, use both optional arguments
+\watchout[\pkg{graphics} vs. \pkg{graphicx}]
+for \cs{includegraphics}.
+A single optional parameter is interpreted as the newer \pkg{graphicx} syntax.
+Note that viewports are not supported by \pkg{warp};
+\watchout[viewports]
+the entire image will be shown.
+
 \cs{graphicspath} only works for a single directory;
-\margintag{\cs{graphicspath}}
+\watchout[\cs{graphicspath}]
 all graphics must be in this directory.
 
 For \cs{includegraphics}, avoid \texttt{px} and \% units for width and height, or
@@ -464,10 +531,10 @@
 \texttt{origin}, \texttt{rotate} and \texttt{scale},
 plus a new \texttt{class} key.
 
-With \acro{HTML} output, \cs{includegraphics} accepts an optional
-\margintag{\acro{HTML} class}
+With \HTML\ output, \cs{includegraphics} accepts an optional
+\margintag{\HTML\ class}
 \texttt{class=xyz} keyval combination, and if this is given then
-the \acro{HTML} output will include that class for the image.
+the \HTML\ output will include that class for the image.
 The class is ignored for print output.
 
 For \cs{includegraphics} the user should provide both \texttt{.pdf} and \texttt{.svg}
@@ -475,7 +542,7 @@
 \watchout[image file types]
 \texttt{.pdf} images in the document source.
 All \cs{includegraphics} references to \texttt{.pdf} will automatically
-be changed to \texttt{.svg} for \acro{HTML} output, and will be left as \texttt{.pdf} for print output.
+be changed to \texttt{.svg} for \HTML\ output, and will be left as \texttt{.pdf} for print output.
 Images may also be \texttt{.jpg} and \texttt{.png}, and will be used as-is for either output.
 
 \cs{rotatebox} accepts the optional \texttt{origin} key.
@@ -484,7 +551,7 @@
 \cs{rotatebox}, \cs{scalebox}, and \cs{reflectbox} depend on modern browser
 support.
 \watchout[browser support]
-The \cssthree{} standard declares that when an object is transformed
+The \CSSthree\ standard declares that when an object is transformed
 the whitespace which they occupied is preserved,
 unlike \LaTeX{}, so expect some
 ugly results for scaling and rotating.
@@ -495,7 +562,7 @@
 \margintag{support}
 without any changes required.
 
-Colored tables are ignored so far.  Use \acro{CSS} to style tables.
+Colored tables are ignored so far.  Use \CSS\ to style tables.
 \margintag{tables}
 
 \cs{textcolor}, \cs{colorbox}, and \cs{fcolorbox} are supported.
@@ -502,7 +569,7 @@
 \margintag{colored text and boxes}
 
 \cs{color} and \cs{pagecolor} are ignored.
-Use \acro{CSS} or \cs{textcolor} where possible.
+Use \CSS\ or \cs{textcolor} where possible.
 \margintag{\cs{color} and \cs{pagecolor}}
 }
 
@@ -529,7 +596,7 @@
 \item For multirow, insert \cs{mrowcell} into any empty multi-row cells.
 	This will be a null function for the print output, and is a placeholder for
 	\watchout[\cs{multirow}]
-	parsing the table for \acro{HTML} output.
+	parsing the table for \HTML\ output.
 
 \item If a multirow reaches to the bottom of a table,
 	and \cs{bottomrule} does not go over to that edge,
@@ -547,12 +614,12 @@
 	\watchout[paragraphs]
 
 \item \cs{cmidrule} does not support width or trim options
-	due to \acro{CSS} limitations.
+	due to \CSS\ limitations.
 	\margintag{\cs{cmidrule} width, trim}
 
 \item For \pkg{longtable}, place headings and footings which
 	\margintag{\env{longtable} headings}
-	do not apply to \acro{HTML} inside \cs{warpprintonly\{\}}.
+	do not apply to \HTML\ inside \cs{warpprintonly\{\}}.
 
 \item For \cs{toprule} and \cs{bottomrule},
 	when combined with a \env{warpprint} or \env{warpHTML} environment,
@@ -563,7 +630,7 @@
 	to \\
 	\hspace*{.375in}\cmds{\cs{warpprintonly}\{This \& That \cs{endhead}\}} \\
 	and likewise with the other \cs{end} headings.
-	Keep the \cs{endfirsthead} row unchanged, as it is still relevent to \acro{HTML} output.
+	Keep the \cs{endfirsthead} row unchanged, as it is still relevent to \HTML\ output.
 
 \item For S columns (from the \pkg{siunitx} package),
 	\watchout[S columns]
@@ -570,11 +637,11 @@
 	while producing print output,
 	anything non-numeric must be placed
 	inside \{ \} braces, including commands such as \cs{multirow}.
-	While producing \acro{HTML} output, though, anything placed inside
+	While producing \HTML\ output, though, anything placed inside
 	braces is not seen by \pkg{lwarp}'s tabular handling algorithm.
 	To resolve this problem, make a copy of the row, with one version
 	for print output, containing the extra braces, and another version
-	for \acro{HTML} output, without the extra braces, such as: \\
+	for \HTML\ output, without the extra braces, such as: \\
 	\hspace*{.375in} \cs{warpprintonly}\{\texttt{1 \& 2 \& \textcolor{red}{\{}\cs{multirow}\{2\}\{2cm\}\{Text\}\textcolor{red}{\}} \& 3 \textbackslash\textbackslash\}} \\
 	\hspace*{.375in} \cs{warpHTMLonly}\{\texttt{1 \& 2 \& \cs{multirow}\{2\}\{2cm\}\{Text\} \& 3 \textbackslash\textbackslash\}}
 
@@ -581,17 +648,41 @@
 \end{itemize}
 }
 
+\newcommand{\limitslongtable}{%
+Longtable \cs{endhead}, \cs{endfoot}, and \cs{endlastfoot} rows are
+not used for \HTML, and these rows should be disabled.
+\watchout
+Use
+	\begin{sourcedisplay}
+	\cs{warpprintonly}\{row contents\}
+	\end{sourcedisplay}
+instead of
+	\begin{sourcedisplay}
+	\cs{begin}\{warpprint\} \ldots\ \cs{end}\{warpprint\}
+	\end{sourcedisplay}
+Doing so helps avoid ``Misplaced \cs{noalign}.'' when using \cs{begin}\{warpprint\}.
+
+Keep the \cs{endfirsthead} row, which is still relevent to \HTML\ output.
+
+\cs{kill} is ignored, place a \cs{kill} line inside
+\watchout
+	\begin{sourcedisplay}
+	\cs{begin}\{warpprint\} \ldots\  \cs{end}\{warpprint\}
+	\end{sourcedisplay}
+or place it inside \cs{warpingprintonly}.
+}
+
 \newcommand{\limitssaveboxes}{%
 \LaTeX\ boxes are placed inline and do not allow line breaks, so boxes
-with long contents may overflow the line during \acro{HTML} conversion.
+with long contents may overflow the line during \HTML\ conversion.
 This is mostly a problem when the boxes contain objects which themselves
-hold large \acro{HTML} tags, such as rotation commands with long contents.
-When this object overflows the line, some \acro{HTML} code will be lost and 
+hold large \HTML\ tags, such as rotation commands with long contents.
+When this object overflows the line, some \HTML\ code will be lost and 
 the page will be corrupted.
 }
 
 \newcommand{\limitsminipage}{%
-Minipages and parboxes will be placed side-by-side in \acro{HTML}
+Minipages and parboxes will be placed side-by-side in \HTML
 unless you place a \cs{newline} between them.
 \margintag{placement}
 
@@ -604,15 +695,15 @@
 \margintag{side-by-side}
 \cs{hspace}, \cs{hfill}, or a \cs{rule}.
 When inside a \texttt{center} environment, the result is
-similar in print and \acro{HTML}.  Paragraph tags are surpressed between
+similar in print and \HTML.  Paragraph tags are surpressed between
 side-by-side minipages and these spacing commands, but not at the start or end
 of the paragraph.
 
-There is limited support for minipages inside an \acro{HTML} \tag{span}.
+There is limited support for minipages inside an \HTML\ \tag{span}.
 \margintag{in a span}
-An \acro{HTML} \tag{div} cannot appear inside a \tag{span}.
+An \HTML\ \tag{div} cannot appear inside a \tag{span}.
 While in a \tag{span}, minipages and parboxes are ignored.
-Use \cs{newline} or \cs{par} for an \acro{HTML} break.
+Use \cs{newline} or \cs{par} for an \HTML\ break.
 
 When using \cs{linewidth}, \cs{textwidth}, and \cs{textheight},
 \margintag{size}
@@ -619,17 +710,17 @@
 widths and heights are scaled proportionally to a 6\texttimes{}9 inch text area.
 
 A minipage of width exactly \cs{linewidth} is automatically
-given no \acro{HTML} width.
+given no \HTML\ width.
 \margintag{no-width minipages}
 
 A new macro \cs{minipagefullwidth} requests
 \margintag{full-width minipages}
 that the next minipage be generated
-without an \acro{HTML} \texttt{width} tag, allowing it to be the full width of
+without an \HTML\ \texttt{width} tag, allowing it to be the full width of
 the display rather than the fixed width given.
 
-Nested minipages adopt their parent's text alignment in \acro{HTML},
-whereas in regular \LaTeX{} \acro{PDF} output they do not.
+Nested minipages adopt their parent's text alignment in \HTML,
+whereas in regular \LaTeX{} \PDF\ output they do not.
 \watchout[text alignment]
 Use a \env{flushleft} or similar environment in the child minipage
 to force a text alignment.
@@ -643,14 +734,18 @@
 border radius, and shadow.
 CSS classes are created for \pkg{mdframed} environments and frame titles.
 
-When used, \pkg{lwarp} loads \pkg{mdframed} in HTML with \texttt{framemethod=none}.
+When used, \pkg{lwarp} loads \pkg{mdframed} in \HTML\ with \texttt{framemethod=none}.
 \watchout[loading]
 
-For title font, use\\
-	\hspace*{.25in}\texttt{frametitlefont=\cs{textbf},}\\
+For title font, use
 \margintag{font}%
-instead of\\
-	\hspace*{.25in}\texttt{frametitlefont=\cs{bfseries},}\\
+\begin{sourcedisplay}
+frametitlefont=\cs{textbf},
+\end{sourcedisplay}
+instead of
+\begin{sourcedisplay}
+frametitlefont=\cs{bfseries},
+\end{sourcedisplay}
 where \cs{textbf} must appear just before the comma and will receive the
 following text as its argument (since the text happens to be between braces
 in the \pkg{mdframed} source).
@@ -661,7 +756,7 @@
 \margintag{theoremtitlefont}
 in braces in the \pkg{mdframed} source.
 
-Footnotes are currently placed at the bottom of the \acro{HTML} page.
+Footnotes are currently placed at the bottom of the \HTML\ page.
 \margintag{footnotes}
 
 \texttt{userdefinedwidth} and \texttt{align} are currently ignored.
@@ -672,8 +767,10 @@
 To ensure proper float numbering, set caption positions
 such as:
 
-\hspace*{2em} \texttt{\cs{captionsetup}[table]\{position=top\}} \\
-\hspace*{2em} \texttt{\cs{captionsetup}[figure]\{position=bottom\}}
+\begin{sourcedisplay}
+\cs{captionsetup}[table]\{position=top\} \\
+\cs{captionsetup}[figure]\{position=bottom\}
+\end{sourcedisplay}
 
 Similarly for \texttt{subtable}, \texttt{subfigure},
 and \texttt{longtable}.
@@ -715,13 +812,13 @@
 \watchout[\cs{FBwidth}, \cs{FBheight}]
 Possible solutions include:
 \begin{itemize}
-\item Use fixed lengths.  \pkg{lwarp} will scale the \acro{HTML} lengths appropriately.
+\item Use fixed lengths.  \pkg{lwarp} will scale the \HTML\ lengths appropriately.
 \item Use \env{warpprint} and \env{warpHTML} environments to select appropriate
 	values for each case.
 \item Inside a \env{warpHTML} environment, manually change
 	\cs{FBwidth} or \cs{FBheight} before the \cs{ffigbox} or \cs{ttabbox}.
 	Use \cs{FBwidth} or \cs{FBheight} normally afterwards; it will be used as
-	expected in print output, and will use your custom-selected value in \acro{HTML}
+	expected in print output, and will use your custom-selected value in \HTML\
 	output.  This custom value will be used repeatedly,
 	until it is manually changed to a new value.
 \end{itemize}
@@ -734,18 +831,21 @@
 
 
 \newcommand{\limitsbabelone}{%
-If using \pkg{babel} with French, use \\
-\hspace*{.25in}\cs{frenchbsetup\{StandardLists=true\}} \\
+If using \pkg{babel} with French, use
 \watchout[French]%
-to preserve the special \acro{HTML} and \pkg{enumitem} list handling.
+\begin{sourcedisplay}
+\cs{frenchbsetup\{StandardLists=true\}}
+\end{sourcedisplay}
+to preserve the special \HTML\ and \pkg{enumitem} list handling.
 }
 
 \newcommand{\limitsbabeltwo}{%
 Also, when French is used, the caption separator is
 \margintag{\cs{CaptionSeparator}}
-changed to a dash.  The following may be used to restore it to a colon: \\
-\hspace*{.25in}%
+changed to a dash.  The following may be used to restore it to a colon:
+\begin{sourcedisplay}
 \texttt{\cs{renewcommand}*\{\cs{CaptionSeparator}\}\{:\textasciitilde\}}
+\end{sourcedisplay}
 }
 
 \newcommand{\limitsnewclude}{%
@@ -754,6 +854,7 @@
 \watchout[loading]
 
 \begin{docsidebar}[Ex:]
+\raggedright
 \cs{documentclass\{article\}} \\
 \ldots <font setup> \\
 \cs{usepackage\{newclude\}} \\
@@ -776,16 +877,16 @@
 }
 
 \newcommand{\limitsenumitem}{%
-\pkg{enumitem} is pre-loaded during \acro{HTML} output.
+\pkg{enumitem} is pre-loaded during \HTML\ output.
 \margintag{enumitem}
 Many of the spacing options are rendered irrelevant by \cmds{pdftotext} and
-\acro{HTML}.  Numbering, labels, and \cs{newlist} function correctly.
+\HTML.  Numbering, labels, and \cs{newlist} function correctly.
 }
 
 \newcommand{\limitsenumerate}{%
 \pkg{enumerate} conflicts with \pkg{enumitem} if both are loaded
 at the same time, but \pkg{lwarp} does not actually load \pkg{enumerate}.
-While generating \acro{HTML}, \pkg{lwarp} only loads \pkg{enumitem}, and
+While generating \HTML, \pkg{lwarp} only loads \pkg{enumitem}, and
 \pkg{enumerate} is simulated by \pkg{enumitem} using
 the functionality of the \texttt{shortlabels} option.
 
@@ -795,6 +896,29 @@
 during print output.
 }
 
+\newcommand{\limitsglossaries}{%
+\texttt{xindy} is required for \pkg{glossaries}.
+
+The default \texttt{style=item} option for \pkg{glossaries} conflicts
+with \pkg{lwarp}, so the style is forced to \texttt{index} instead.
+
+The page number list in the printed form would become \cs{nameref}s in \HTML,
+which could become a very long string if many items are referenced.
+For now, the number list is simply turned off.
+
+\texttt{lwarpmk} has the commands \texttt{printglossary} and
+\texttt{htmlglossary} to process the glossaries created by
+\pkg{glossaries} using \texttt{xindy}.
+
+The packages \pkg{lwarp-newproject} and \pkg{lwarp} each take an option
+\DescribeOption[lwarp-newproject]{lwarpmklang}
+\DescribeOption[lwarp]{lwarpmklang}
+\texttt{lwarpmklang=english} to set the language used by \texttt{xindy}.
+Set the same option for both packages.
+This is passed to \texttt{xindy} using its \texttt{-L} option.
+}
+
+
 \newcommand{\osportabilityusage}{%
 \pkg{lwarp} tries to detect which operating system is being used.
 
@@ -831,7 +955,7 @@
 %<*package>
 % \fi
 %
-% \CheckSum{10774}
+% \CheckSum{10986}
 %
 % \CharacterTable
 % {Upper-case     \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -881,10 +1005,10 @@
 % \changes{v0.19}{2016/05/25}{File: \texttt{lwarp\_mathjax.txt} added.}
 % \changes{v0.19}{2016/06/01}{File: lwarp.css: \texttt{tnoteitemheader} added}
 % \changes{v0.20}{2017/02/09}{\ 2017/02/09}
-% \changes{v0.20}{2016/06/27}{Test Suite: HTML meta descriptions.}
+% \changes{v0.20}{2016/06/27}{Test Suite: \HTML\ meta descriptions.}
 % \changes{v0.20}{2016/09/19}{File: lwarp.css: Minor fixes for validation.}
 % \changes{v0.20}{2016/12/08}{Docs: Improved index.}
-% \changes{v0.20}{2016/12/17}{File: lwarpmk used to compile print, HTML, indexes, and lateximages.}
+% \changes{v0.20}{2016/12/17}{File: lwarpmk used to compile print, \HTML, indexes, and lateximages.}
 % \changes{v0.20}{2016/12/17}{Removed reliance on make, grep, gawk.}
 % \changes{v0.20}{2016/12/17}{Parallel versions of aux files for print/HTML.}
 % \changes{v0.20}{2017/01/03}{Moved sidebar and example code to test suite.}
@@ -897,6 +1021,8 @@
 % \changes{v0.25}{2017/03/16}{Docs: Adds credits for patched code.}
 % \changes{v0.26}{2017/03/31}{\ 2017/03/31}
 % \changes{v0.27}{2017/04/04}{\ 2017/04/04}
+% \changes{v0.28}{2017/04/14}{\ 2017/04/14}
+% \changes{v0.29}{2017/04/15}{\ 2017/04/15}
 
 
 
@@ -912,23 +1038,22 @@
 % \thispagestyle{empty}
 %
 % \begin{center}
-% \vfill
 % \includegraphics[width=.3\linewidth]{lwarp_logo.pdf}
-% \vfill
+%
+% \bigskip
+%
 % {\Huge The \textbf{lwarp} package}
 %
-% \fileversion{} --- \filedate
+% {\Large \textup{\LaTeX{} to \HTMLfive}}
 %
 % \bigskip
 %
-% {\Large \textup{\LaTeX{} to HTML5}}
+% \fileversion{} --- \filedate
 %
 % \bigskip
 %
 % {\small\copyright{} 2016--2017} Brian Dunn\\ \small \texttt{bd at BDTechConcepts.com}
 %
-% \bigskip
-%
 % 
 % ^^A % \title{The \pkg{lwarp} package\thanks{This document
 % ^^A %   corresponds to \pkg{lwarp}~\fileversion,
@@ -943,9 +1068,9 @@
 %
 % \begin{abstract}
 % \noindent
-% The \pkg{lwarp} package allows \LaTeX\ to directly produce \htmlfive\ output,
+% The \pkg{lwarp} package allows \LaTeX\ to directly produce \HTMLfive\ output,
 % using external utility programs only for the final conversion of text and images.
-% Math may be represented by \acro{SVG} files or MathJax.
+% Math may be represented by \SVG\ files or MathJax.
 %
 % Documents may be produced by \LaTeX, \LuaLaTeX, or \XeLaTeX.
 % A |texlua| script removes the need for system utilities such as |make| and |gawk|,
@@ -952,11 +1077,12 @@
 % and also supports |xindy| and |latexmk|.  Configuration is automatic at the
 % first manual compile.
 %
-% Print and \acro{HTML} versions of each document may coexist, each with its own
+% Print and \HTML\ versions of each document may coexist, each with its own
 % set of auxiliary files.  Support files are self-generated on request.
+% Assistance is provided for import into \EPUB\ conversion software and word processors.
 %
 % A modular package-loading system uses the \pkg{lwarp} version of a package for
-% \acro{HTML} when available.
+% \HTML\ when available.
 % Several dozen \LaTeX\ packages are supported with these high-level source
 % compatibility replacements.
 %
@@ -1030,6 +1156,35 @@
 % For a detailed list of changes, see the Change History on page \pageref{sec:changehistory}.
 %
 % \begin{description}
+% \item[v0.29:] \
+%	\begin{itemize}
+%	\item Add: |lwarpmklang| option for \pkg{lwarp-newproject} and \pkg{lwarp}.
+%		Sets the language to use while processing the glossary.
+%	\item Fix: \cs{includegraphics} when no optional arguments.
+%	\end{itemize}
+% \item[v0.28:] \
+%	\begin{itemize}
+%	\item \cs{HTMLauthor} \marg{name} assigns \HTML\ meta author if non-empty.
+%		Defaults to \cs{theauthor}.
+%	\item Booean |HTMLDebugComments| controls whether \HTML\ comments are
+%		added for closing \tag{div}s, opening and closing sections, etc.
+%	\item Boolean |FormatEPUB| changes \HTML\ output for easy \EPUB\ conversion
+%		via an external program.
+%		Removes per-file headers, footers, and nav.  Adds footnotes per chapter/section.
+%	\item Boolean |FormatWordProcessor| changes \HTML\ output for easier conversion
+%		by a word processor.  Removes headers and nav, prints footnotes per section,
+%		and also forces single-file output and turns off \HTML\ debug comments.
+%	\item Boolean |HTMLMarkFloats| adds text marks around floats only if
+%		|FormatWordProcessor|.  These make it easier to identify float boundaries,
+%		which are to be manually converted to word-processor frames.
+%	\item Updated for the new MathJax \acro{CDN} repository.
+%	\item Adds \pkg{tabulary}.
+%	\item Supports the options syntax for \pkg{graphics}.
+%	\item Improved index references, now pointing exactly to their target.
+%	\item Adds \pkg{glossaries}.
+%		|lwarpmk| is modified to add |printglosssary| and |htmlglossary| actions.
+%	\end{itemize}
+%
 % \item[v0.27:] \
 %	\begin{itemize}
 %	\item Improved documentation for MacOS install.
@@ -1037,6 +1192,7 @@
 %	\item Fix for table footnote paragraph tags.
 %	\item Adds \pkg{lettrine}, \pkg{ulem}, and \pkg{soul}.
 %	\end{itemize}
+% \needspace{2\baselineskip}
 % \item[v0.26:] \
 %	\begin{itemize}
 %	\item Improved installation instructions for MiK\TeX\ regarding generating
@@ -1049,6 +1205,7 @@
 %		This allows the correct inclusion of |lateximage|s in footnotes, pagenotes, and endnotes.
 %	\item \pkg{cutwin} and \pkg{floatflt} are also supported.
 %	\end{itemize}
+% \needspace{2\baselineskip}
 % \item[v0.25:] \
 %	\begin{itemize}
 %	\item Fix: Allows \pkg{graphicx} and \pkg{graphicsx} before \pkg{lwarp} because
@@ -1055,6 +1212,7 @@
 %		\XeLaTeX\ and \LuaLaTeX\ use \pkg{xunicode} which uses \pkg{graphics}.
 %	\item Package support for \pkg{framed}, several theorem packages, and ellipses.
 %	\end{itemize}
+% \needspace{2\baselineskip}
 % \item[v0.24:] \
 %	\begin{itemize}
 %	\item \pkg{tikz}'s |babel| library is load automatically as needed.
@@ -1092,7 +1250,7 @@
 %		and much simpler installation and setup.
 %	\item The |lwarp-newproject| package is now used to locally create
 %		support files.
-%	\item The print and \acro{HTML} versions of a document may co-exist with their
+%	\item The print and \HTML\ versions of a document may co-exist with their
 %		own sets of auxiliary files.
 %	\item Package handling is now controlled by a modular system which
 %		looks for and loads an |lwarp-<package>| version if available.
@@ -1102,7 +1260,7 @@
 %	\item A large number of additional packages are supported.
 %	\item A new tutorial is included in the documentation, and
 %		many obsolete sections have been removed.
-%	\item \cs{NewHTMLdescription} sets the \acro{HTML} meta description tag for each file.
+%	\item \cs{NewHTMLdescription} sets the \HTML\ meta description tag for each file.
 %		See \cref{sec:htmldescription}.
 %	\item \cs{HTMLFileName} may now be empty, allowing filenames without a prefix.
 %		Lwarp no longer automatically appends a |-| character.
@@ -1130,7 +1288,7 @@
 %	\item \cs{LateximageFontSizeName} provides user-adjustable font size for math
 %		and \env{lateximage}s.
 %	\item \cs{minipagefullwidth} requests that the next minipage be
-%		full-width in \acro{HTML}, but still the assigned width in print.
+%		full-width in \HTML, but still the assigned width in print.
 %	\item \env{minipage} improved side-by-side rendering.
 %	\item CSS class |tablenotes| is provided for table note items.
 %	\item \cs{warpprintonly} replaces \cs{rowprintedonly},
@@ -1140,7 +1298,7 @@
 %		the previously table-specific syntax.
 %	\item \pkg{cleveref} is loaded \cs{AtEndPreamble} for improved reliability.
 %		See \cref{sec:cleveref}.
-%	\item \cs{xfracHTMLfontsize} controls \pkg{xfrac} font size in \acro{HTML}.
+%	\item \cs{xfracHTMLfontsize} controls \pkg{xfrac} font size in \HTML.
 %	\item \tikz\ improved catcode handling.
 %	\end{itemize}
 % \item[v0.18:] \
@@ -1147,7 +1305,7 @@
 %	\begin{itemize}
 %	\item The \pkg{verse} package and the verse-related commands from
 %		the \pkg{memoir} package are now supported.
-%	\item Responsive web design has been improved for the sideTOC.
+%	\item Responsive web design has been improved for the side\TOC.
 %	\item \cs{includegraphics} now maintains relative sized for em, ex, and \%.
 %	\end{itemize}
 % \item[v0.17:] \
@@ -1167,45 +1325,46 @@
 % \section{Introduction}
 % \changes{v0.19}{2016/05/25}{Introduction: MathJax support mentioned.}
 %
-% The \pkg{lwarp} project aims to allow a rich \LaTeX{} document to be converted to a reasonable \acro{HTML}
+% The \pkg{lwarp} project aims to allow a rich \LaTeX{} document
+% to be converted to a reasonable \HTML\
 % interpretation.  No attempt has been made to force \LaTeX{} to provide for every
-% \acro{HTML}-related possibility, and \acro{HTML} cannot exactly render every possible \LaTeX{} concept.
+% \HTML-related possibility, and \HTML\ cannot exactly render every possible \LaTeX{} concept.
 % Where compromise is necessary, it is desirable to allow the print output to remain
-% typographically rich, and compromise only in the \acro{HTML} conversion.
+% typographically rich, and compromise only in the \HTML\ conversion.
 %
-% Several ``modern'' features of \htmlfive, \cssthree, and \acro{SVG}
+% Several ``modern'' features of \HTMLfive, \CSSthree, and \SVG\
 % are employed to allow a fairly feature-rich document
 % without relying on the use of Javascript.
 % Limited testing on older browsers show that these new features
-% degrade gracefully, although the \acro{SVG} format
+% degrade gracefully, although the \SVG\ format
 % for math may not be available on small cell phones.
 %
 % |pdflatex|, |xelatex|, or |lualatex| is used, allowing \pkg{lwarp} to process the usual image formats.
-% While generating \acro{HTML} output, \acro{SVG} files are used in placed of \acro{PDF}.
-% Other formats such as \acro{JPG} are used as-is.
+% While generating \HTML\ output, \SVG\ files are used in placed of \PDF.
+% Other formats such as \JPG\ are used as-is.
 %
-% \acro{SVG} images may be used for math,
+% \SVG\ images may be used for math,
 % and are also used for \env{picture}, and \tikz{} environments,
 % as this format has
-% better browser and e-book support than Math\acro{ML} (as of this writing),
+% better browser and e-book support than \MathML\ (as of this writing),
 % while still allowing for the high-quality display and printing of images (again, subject to potentially
 % bug-ridden\footnote{Firefox has had an on-again/off-again bug for quite some time regareding
-% printing \acro{SVG}s at high resolution.} browser
+% printing \SVG{}s at high resolution.} browser
 % support).
 %
-% Furthermore, \acro{SVG} images allow math to be presented with
+% Furthermore, \SVG\ images allow math to be presented with
 % the same precise formatting as in the print version.
 % Math is accompanied by ALT tags holding the \LaTeX{} source for the expression, allowing it to be
 % copy/pasted into other documents.\footnote{There seems to be some debate as to whether
-% Math\acro{ML} is actually an improvement over \LaTeX{} for sharing math.  The author has no
+% \MathML\ is actually an improvement over \LaTeX{} for sharing math.  The author has no
 % particular opinion on the matter, except to say that in this case \LaTeX{} is much easier to implement!}
 % Custom \LaTeX{} macros may be used as-is in math expressions, since the math is evaluated
 % entirely inside \LaTeX.
 %
 % The \textsc{MathJax} JavaScript display engine may be selected
-% for math display instead of using \acro{SVG} images.
+% for math display instead of using \SVG\ images.
 % Subject to browser support and Internet access,
-% MathJax allows an \acro{HTML} page to display
+% MathJax allows an \HTML\ page to display
 % math without relying on a large number of external image files,
 % one per math expression.  \pkg{lwarp} maintains \LaTeX\ control for cross-referencing
 % and equation numbering\,/\,formatting.
@@ -1212,23 +1371,23 @@
 %
 % \hfill\rule[.7ex]{.3\linewidth}{.4pt}\hspace*{\fill}
 %
-% The \pkg{lwarp} package allows \LaTeX{} to directly generate \htmlfive{} tags from a \LaTeX{}
+% The \pkg{lwarp} package allows \LaTeX{} to directly generate \HTMLfive\ tags from a \LaTeX{}
 % source document, with only minor intervention on the user's part.
-% A |texlua| program called |lwarpmk| is used to process either the print or \acro{HTML}
+% A |texlua| program called |lwarpmk| is used to process either the print or \HTML\
 % version of the document.  A few external utility programs are used to finish
-% the conversion from a \LaTeX{}-generated \acro{PDF} file which happens to have \htmlfive{} tags,
-% to a number of \htmlfive{} plain-text files and accompanying images.
+% the conversion from a \LaTeX{}-generated \PDF\ file which happens to have \HTMLfive\ tags,
+% to a number of \HTMLfive\ plain-text files and accompanying images.
 %
 % A special |lwarp-newproject| package is used to set up the auxiliary files necessary for
-% the \acro{HTML} conversion.  Included is a parallel version of the user's source document,
-% |<sourcename>-html.tex|, which selects \acro{HTML} output and then inputs the user's own source.
-% This process allows both the printed and \acro{HTML} versions to co-exist side-by-side,
+% the \HTML\ conversion.  Included is a parallel version of the user's source document,
+% |<sourcename>-html.tex|, which selects \HTML\ output and then inputs the user's own source.
+% This process allows both the printed and \HTML\ versions to co-exist side-by-side,
 % each with their own auxiliary files.
 %
-% When requesting packages during \acro{HTML} conversion,
+% When requesting packages during \HTML\ conversion,
 % |lwarp| first looks to see if it has its own modified version
 % to use instead of the usual \LaTeX\ version.  These |lwarp-packagename.sty| files contain
-% code used to emulate or replace functions for \acro{HTML} output.
+% code used to emulate or replace functions for \HTML\ output.
 %
 % Enough functionality is provided to convert a typical article containing technical content.
 % Not every package has been tested, but many of the most useful ones are known to work,
@@ -1235,6 +1394,9 @@
 % either as-is or through emulation with replacement code.  (See \cref{tab:supported} on
 % page \pageref{tab:supported}.)
 %
+% Assistance is provide for modifying the \HTML\ output to suite the creation
+% of \EPUB\ documents, and for modifying the \HTML\ output to ease import into
+% a word processor.
 %
 %
 % \subsection{Supported packages and features}
@@ -1270,7 +1432,7 @@
 % \midrule
 % Sectioning: & Supported, with hyperlinks.
 % 	Honors \cmds{tocdepth} and \cmds{secnumdepth}.
-% 	Adds \cmds{filedepth} for splitting the \acro{HTML} output.
+% 	Adds \cmds{filedepth} for splitting the \HTML\ output.
 % 	Files may be numbered sequentially or named according to section name.
 % 	Common short words and punctuation is removed from the filenames. \\
 % Table of Contents, Figures, Tables: & Supported, with hyperlinks. \\
@@ -1280,7 +1442,7 @@
 % \midrule
 % Cross-references: & Emulated, with hyperlinks. \\
 % \pkg{hyperref}: & Emulated.
-% 	\acro{HTML} hyperlinks are generated for \acro{TOC}, \acro{LOF}, \acro{LOT},
+% 	\HTML\ hyperlinks are generated for \TOC, \LOF, \LOT,
 % 	\cs{nameref}, \cs{ref},
 % 	the \pkg{cleveref} commands, and index entries.\\
 % \midrule
@@ -1287,9 +1449,10 @@
 % Footnotes: & \pkg{footnote}, \pkg{footmisc},
 %	\pkg{marginnote}, \pkg{sidenote}, \pkg{pagenote}, \pkg{endnotes}. \\
 % Indexing: & \cmds{texindy} is used, with hyperlinks. \\
+% Glossary: & \pkg{glossaries} and \cmds{xindy} are used. \\
 % Bibliography: & Supported, without hyperlinks so far. \\
 % \midrule
-% Math: & Supported.  Converted to \acro{SVG} images with \acro{HTML} \cmds{ALT} tags containing the
+% Math: & Supported.  Converted to \SVG\ images with \HTML\ \cmds{ALT} tags containing the
 % 	\LaTeX{} source for the math expression.
 %	MathJax supported as an alternative.
 % 	\AmS{} environments are supported.
@@ -1308,7 +1471,7 @@
 % 	be used at the same time.
 %	Nested tables are not supported. \\
 % \pkg{array}: & Supported inside math environments, emulated elsewhere. \\
-% \pkg{multirow}: & Emulated. \\
+% \pkg{tabularx}, \pkg{tabulary}, \pkg{threeparttable}, \pkg{multirow}: & Emulated. \\
 % \pkg{longtable}: & Emulated.  Converted to a tabular.  Captions supported.
 % 	Extra headings and \cs{kill} lines must be enclosed in
 %  	\cs{warpprintonly\{\}} \\
@@ -1317,28 +1480,26 @@
 % 	form black rules, \cs{midrule} forms silver rules, as demonstrated on
 % 	this table.
 % 	\cs{cmidrule}, demonstrated at this line, does not use width or trim options. \\
-% \cmidrule{2-2}
-% \pkg{threeparttable}: & Emulated \\
 % \midrule
 % \pkg{graphics}, \pkg{graphicx}: & Emulated.
 % \cs{includegraphics} supports \cmds{width}, \cmds{height},
 % \cmds{origin}, \cmds{angle}, and \cmds{scale} tags, and adds \cmds{class}.
-% References to \acro{PDF} files are changed to \acro{SVG}, other image types
+% References to \PDF\ files are changed to \SVG, other image types
 % are accepted as well.
-% \cs{rotatebox} and \cs{scalebox} are supported as well as \acro{HTML} can handle. \\
+% \cs{rotatebox} and \cs{scalebox} are supported as well as \HTML\ can handle. \\
 % \pkg{rotating}: & Emulated.  All objects are displayed unrotated. \\
 % \midrule
 % Lists: & Supported \\
-% \pkg{enumitem}: & Supported, although spacing is still controlled by \acro{CSS}. \\
+% \pkg{enumitem}: & Supported, although spacing is still controlled by \CSS. \\
 % \midrule
 % Environments: & Standard \LaTeX{} environments are supported. \\
-% \pkg{picture} and \pkg{tikz}: & Converted to an \acro{SVG} image. \\
-% \env{minipage}: & Supported with some \acro{HTML}5-imposed limitations.
+% \pkg{picture} and \pkg{tikz}: & Converted to an \SVG\ image. \\
+% \env{minipage}: & Supported with some \HTMLfive-imposed limitations.
 %	Nested minipages are supported.
-% 	Footnotes appear at the bottom of the \acro{HTML} page. \\
+% 	Footnotes appear at the bottom of the \HTML\ page. \\
 % \pkg{fancyvrb}: & Supported except for verbatim footnotes. \\
 % \pkg{framed}, \pkg{mdframed}: & Supported \\
-% \pkg{multicol}: & Emulated, with \acro{CSS}3.
+% \pkg{multicol}: & Emulated, with \CSSthree.
 % Converted to up to three columns with an optional heading,
 % per browser support. Single-column if unsupported.\\
 % \midrule
@@ -1355,11 +1516,11 @@
 % 	because many simpler browsers do not display them correctly.
 % 	Modern full-featured browsers re-create these ligatures on-the-fly.\\
 % Horizontal space: &
-%	\acro{HTML} output for thin-unbreakable, unbreakable,
+%	\HTML\ output for thin-unbreakable, unbreakable,
 %	\cs{enskip}, \cs{quad}, \cs{qquad}, \cs{hspace}. \\
 % Rules: & \cs{rule} with width, height, raise, text color. \\
-% \acro{HTML} reserved characters: & \cs{\&}, \cs{textless}, and
-% 	\cs{textgreater} are converted to \acro{HTML} entities. \\
+% \HTML\ reserved characters: & \cs{\&}, \cs{textless}, and
+% 	\cs{textgreater} are converted to \HTML\ entities. \\
 % \midrule
 % \pkg{xcolor}: & \textcolor{DarkGreen}{Supported}.
 % 	Full package color names, any color models,
@@ -1383,11 +1544,11 @@
 % Supported packages include everything listed in the table of contents,
 % plus each of the following in \cref{tab:additionalsupported},
 % and probably others which have not yet been tested.
-% Many are simply nullfied during \acro{HTML} output.
+% Many are simply nullfied during \HTML\ output.
 % Others are not affected by the output mode and thus work as-is.
 %
 %
-% \begin{table}[bp]
+% \begin{table}
 % \caption{Additional supported packages}
 % \label{tab:additionalsupported}
 % \sffamily
@@ -1406,7 +1567,7 @@
 % These packages and features probably works with little or no change to the
 % user's source code.
 % Special environments are provided to mark blocks of code which are for
-% print only, \acro{HTML} only, or both, should it be necessary.
+% print only, \HTML\ only, or both, should it be necessary.
 % 
 %
 %
@@ -1415,8 +1576,8 @@
 %
 % \section{Alternatives}
 % 
-% Summarized below are several other ways to convert a \LaTeX{} or other document to \acro{HTML}.
-% Where an existing \LaTeX{} document is to be converted to \acro{HTML}, \pkg{lwarp} may be
+% Summarized below are several other ways to convert a \LaTeX{} or other document to \HTML.
+% Where an existing \LaTeX{} document is to be converted to \HTML, \pkg{lwarp} may be
 % a good choice.  For new projects with a large number of documents, it may be worth
 % investigating the alternatives before decided which path to take.
 %
@@ -1429,7 +1590,7 @@
 % \verb+internet+ class by Andrew Stacey
 % (\url{https://github.com/loopspace/latex-to-internet}),
 % an interesting project which directly produces several versions
-% of markdown, and also \acro{HTML}\ and \acro{EPUB}.
+% of markdown, and also \HTML\ and \EPUB.
 % 
 % 
 %
@@ -1438,21 +1599,21 @@
 % \url{http://tug.org/tex4ht/}\DescribeProgram{TeX4ht}
 %
 % This system uses native \LaTeX{} processing to produce a DVI file containing special commands,
-% and then uses additional post-processing for the \acro{HTML} conversion by way of numerous configuration
+% and then uses additional post-processing for the \HTML\ conversion by way of numerous configuration
 % files.
-% In some cases, \pkg{lwarp} provides a better \acro{HTML} conversion, and it
+% In some cases, \pkg{lwarp} provides a better \HTML\ conversion, and it
 % supports a different set of packages.
-% TeX4ht produces several other forms of output beyond \acro{HTML}.
+% TeX4ht produces several other forms of output beyond \HTML.
 %
 % \subsection{Translators}
 %
 % \changes{v0.21}{2017/02/14}{Docs: Added TeX2page, GladTeX.}
 %
-% These systems use external programs to translate a subset of \LaTeX{} syntax into \acro{HTML}.
-% Search for each on CTAN (\url{http:\\ctan.org}).
+% These systems use external programs to translate a subset of \LaTeX{} syntax into \HTML.
+% Search for each on \CTAN\ (\url{http:\\ctan.org}).
 % \begin{description}
 % \item [H\textsuperscript{E}v\textsuperscript{E}a:] \url{http://hevea.inria.fr/}
-%	\DescribeProgram{Hevea} {\footnotesize(not on CTAN)}
+%	\DescribeProgram{Hevea} {\footnotesize(not on \CTAN)}
 % \item [T\textsubscript{T}H:] \url{http://hutchinson.belmont.ma.us/tth/}
 %	\DescribeProgram{TtH}
 % \item [GELLMU:] \url{http://www.albany.edu/~hammond/gellmu/}
@@ -1466,7 +1627,7 @@
 %                     and \url{http://ctan.org/pkg/latex2html}.
 % \item [\TeX2page:] \url{http://ds26gte.github.io/tex2page/index.html} \DescribeProgram{TeX2page}
 % \end{description}
-% Finally, Glad\TeX\ may used to directly insert \LaTeX\ math into \acro{HTML}:
+% Finally, Glad\TeX\ may used to directly insert \LaTeX\ math into \HTML:
 % \begin{description}
 % \item [Glad\TeX:] \url{http://humenda.github.io/GladTeX/} \DescribeProgram{GladTeX}
 % \end{description}
@@ -1475,7 +1636,7 @@
 %
 % AsciiDoc is one of the most capable markup languages, providing enough features to produce
 % the typical technical-writing document with cross-references,
-% and it writes \LaTeX{} and \acro{HTML}.
+% and it writes \LaTeX{} and \HTML.
 % \begin{description}
 % \item [Asciidoctor:] \url{http://asciidoctor.org/} (More active.)\DescribeProgram{AsciiDoc}
 % \item [AsciiDoc:] \url{http://asciidoc.org/} (The original version.)\DescribeProgram{AsciiDoctor}
@@ -1492,7 +1653,7 @@
 % \subsection{Pandoc}
 % \DescribeProgram{Pandoc}
 %
-% A markup system which also reads and writes \LaTeX{} and \acro{HTML}.
+% A markup system which also reads and writes \LaTeX{} and \HTML.
 % \begin{description}
 % \item [Pandoc:] \url{http://pandoc.org/}
 % \end{description}
@@ -1505,7 +1666,7 @@
 % \DescribeProgram{Word}\DescribeProgram{LibreOffice}\DescribeProgram{OpenOffice}
 % have advanced through the years in their abilities
 % to represent math with a \LaTeX-ish input syntax, unicode math fonts,
-% and high-quality output, and also generate HTML with varying success.
+% and high-quality output, and also generate \HTML\ with varying success.
 % See recent developments in Microsoft\,\textregistered{} Word\,\textregistered{}
 % and LibreOffice\,\texttrademark{} Writer.
 %
@@ -1514,7 +1675,7 @@
 % Likewise, several professional systems exist whose
 % \DescribeProgram{Adobe} \DescribeProgram{FrameMaker}
 % \DescribeProgram{InDesign} \DescribeProgram{Flare} \DescribeProgram{Madcap}
-% abilities have been advancing in the areas of typesetting, cross-referencing, and HTML generation.
+% abilities have been advancing in the areas of typesetting, cross-referencing, and \HTML\ generation.
 % See Adobe\,\textregistered{} FrameMaker\,\textregistered{},
 % Adobe\,\textregistered{} InDesign\,\textregistered{},
 % and Madcap Flare\,\texttrademark{}.
@@ -1547,9 +1708,9 @@
 % 
 % The effort required to customize the output of each markup system varies.
 % For print output, \LaTeX{} configuration
-% files are usually used.  For HTML output, a \acro{CSS} file will be available, but additional
+% files are usually used.  For \HTML\ output, a \CSS\ file will be available, but additional
 % configuration may require editing some form of control file with a different syntax, such as XML.
-% In the case of \pkg{lwarp}, CSS is used, and much HTML output is adjusted
+% In the case of \pkg{lwarp}, CSS is used, and much \HTML\ output is adjusted
 % through the usual \LaTeX{} optional macro parameters,
 % but further customization may require patching \LaTeX{} code.
 % 
@@ -1565,7 +1726,7 @@
 % \section{Installation}
 %
 % \Cref{tab:utility} shows the tools which are used for
-% the \LaTeX\ to \acro{HTML} conversion.
+% the \LaTeX\ to \HTML\ conversion.
 % In most cases, these will be available via the
 % standard package-installation tools.
 %
@@ -1609,7 +1770,7 @@
 % \item[latexmk:] Optionally used by |lwarpmk| to compile \LaTeX\ code.
 %	On a MiK\TeX\ system, Perl may need to be installed first.
 %
-% \item[pdfcrop:] Used to pull images out of the \LaTeX{} \acro{PDF}.
+% \item[pdfcrop:] Used to pull images out of the \LaTeX{} \PDF.
 %	\DescribeProgram[requirement]{pdfcrop}
 %
 % \end{description}
@@ -1618,13 +1779,13 @@
 %
 % \begin{description}
 %
-% \item[pdftotext:] Used to convert \acro{PDF} to text.
+% \item[pdftotext:] Used to convert \PDF\ to text.
 %	\DescribeProgram[requirement]{pdftotext}\index{Poppler}
 %
-% \item[pdfseparate:] Used to pull images out of the \LaTeX{} \acro{PDF}.
+% \item[pdfseparate:] Used to pull images out of the \LaTeX{} \PDF.
 %	\DescribeProgram[requirement]{pdfseparate}
 %
-% \item[pdftocairo:] Used to convert images to \acro{SVG}.
+% \item[pdftocairo:] Used to convert images to \SVG.
 %	\DescribeProgram[requirement]{pdftocairo}
 %
 % \end{description}
@@ -1634,8 +1795,8 @@
 %	From Poppler: \url{poppler.freedesktop.org}.
 %
 %	For MacOS\textregistered, see
-%		\url{https://brew.sh/}, install Homebrew, then enter \\
-%		\hspace*{2em}|brew install poppler|
+%		\url{https://brew.sh/}, install Homebrew, then
+%		\userentry{brew install poppler}
 %
 %	For Windows, see: \\
 %		\url{https://sourceforge.net/projects/poppler-win32/} \quad and: \\
@@ -1644,7 +1805,7 @@
 % \item[Perl:] \
 %
 % This may be provided by your operating-system package manager, and is
-% required for some of the Poppler \acro{PDF} utilities.
+% required for some of the Poppler \PDF\ utilities.
 %
 % \url{perl.org}, \url{strawberryperl.com}
 %
@@ -1691,7 +1852,7 @@
 % \item [CTAN TDS archive:] \pkg{lwarp} may be downloaded from the Comprehensive \TeX\ Archive:
 %	\begin{enumerate}
 %	\item See \url{http://ctan.org/pkg/lwarp} for the \pkg{lwarp} package.
-%	\item Download the TDS archive: |lwarp.tds.zip|
+%	\item Download the \TDS\ archive: |lwarp.tds.zip|
 %	\item Find the \TeX\ |local| directory:
 %		\begin{description}
 %		\item[\TeX\ Live:] \
@@ -1699,11 +1860,13 @@
 %			\userentry{kpsewhich -var-value TEXMFLOCAL}
 %		\item[MiK\TeX:] \
 %
-%			In the ``Settings'' window, ``Roots'' tab, look for a local TDS root.
+%			In the ``Settings'' window, ``Roots'' tab, look for a local \TDS\ root.
 %		\end{description}
-%		This should be something like: \\
-%		\hspace*{2em}|/usr/local/texlive/texmf-local/|
-%	\item Unpack the archive in the TDS local directory.
+%		This should be something like:
+%		\begin{sourcedisplay}
+%		|/usr/local/texlive/texmf-local/|
+%		\end{sourcedisplay}
+%	\item Unpack the archive in the \TDS\ local directory.
 %	\item Renew the cache:
 %		\userentry{mktexlsr} \quad —\,or\,—
 %		\userentry{texhash}
@@ -1724,11 +1887,15 @@
 %	\item Create the documentation: \userentry{pdflatex lwarp.dtx} (several times)
 %	\item Create the |.sty| files: \userentry{pdflatex lwarp.ins}
 %	\item Copy the |.sty| files somewhere such as the \TeX\ Live local tree
-%		found in the previous CTAN TDS section, under the subdirectory: \\
-%		\hspace*{2em}|<texlocal>/tex/latex/local/lwarp|
+%		found in the previous \CTAN\ \TDS\ section, under the subdirectory:
+%		\begin{sourcedisplay}
+%		|<texlocal>/tex/latex/local/lwarp|
+%		\end{sourcedisplay}
 %	\item Copy the documentation |lwarp.pdf| to a |source| directory in the local tree,
-%		such as: \\
-%		\hspace*{2em}|<texlocal>/doc/local/lwarp|
+%		such as:
+%		\begin{sourcedisplay}
+%		|<texlocal>/doc/local/lwarp|
+%		\end{sourcedisplay}
 %	\item Renew the cache:
 %		\userentry{mktexlsr} \quad —\,or\,—
 %		\userentry{texhash}
@@ -1740,7 +1907,7 @@
 %	\item Once the local version of |lwarpmk.lua| is installed, it may be made
 %		available system-wide as per \cref{sec:installlwarpmk}.
 %	\end{enumerate}
-% \item[Project-local CTAN \texttt{.dtx} and \texttt{.ins} files:] The
+% \item[Project-local \CTAN\ \texttt{.dtx} and \texttt{.ins} files:] The
 %		|.dtx| and |.ins| files may be downloaded to a project
 %		directory, then compiled right there, alongside the
 %		document source files.  The resultant |*.sty| and |lwarpmk.lua| files
@@ -1776,7 +1943,7 @@
 %	Otherwise, continue with the following:
 %
 % \item Locate the file |lwarpmk.lua|, which should be in the |scripts| directory
-%	of the TDS tree.  On a \TeX\ Live or MiK\TeX\ system you may use
+%	of the \TDS\ tree.  On a \TeX\ Live or MiK\TeX\ system you may use
 %	\userentry{kpsewhich lwarpmk.lua}
 %
 %	(If the file is not found, you may also generate a local copy and use it instead.
@@ -1787,12 +1954,16 @@
 %	\item [Unix:] Create a symbolic link and make it executable:
 %		\begin{enumerate}
 %		\item Locate the \TeX\ Live binaries:
-%			\userentry{kpsewhich -var-value TEXMFROOT} \\
-%			This will be something like: \\
-%			\hspace*{2em}|/usr/local/texlive/<year>| \\
+%			\userentry{kpsewhich -var-value TEXMFROOT}
+%			This will be something like:
+%		\begin{sourcedisplay}
+%			|/usr/local/texlive/<year>|
+%		\end{sourcedisplay}
 %			The binaries are then located in the |bin/<arch>| directory
-%			under the root: \\
-%			\hspace*{2em}|/usr/local/texlive/<year>/bin/<architecture>/| \\
+%			under the root:
+%		\begin{sourcedisplay}
+%			|/usr/local/texlive/<year>/bin/<architecture>/|
+%		\end{sourcedisplay}
 %			In this directory you will find programs
 %			such as |pdflatex| and |makeindex|.
 %		\item In the binaries directory,
@@ -1811,13 +1982,17 @@
 %		\end{enumerate}
 %	\item [Windows MiK\TeX:] Create a new |lwarpmk.bat| file:
 %		\begin{enumerate}
-%		\item Locate the binaries.  These will be in a directory such as: \\
-%			\hspace*{2em}|C:\Program Files\MiKTeX 2.9\miktex\bin\x64| \\
+%		\item Locate the binaries.  These will be in a directory such as:
+%		\begin{sourcedisplay}
+%			|C:\Program Files\MiKTeX 2.9\miktex\bin\x64|
+%		\end{sourcedisplay}
 %			In this directory you will find programs
 %			such as |pdflatex.exe| and |makeindex.exe|.
-%		\item Create a new file named |lwarpmk.bat| containing: \\
-%			\hspace*{1em}{\small
-%			|texlua "C:\Program Files\MiKTeX 2.9\scripts\lwarp\lwarp.texlua" %*|} \\
+%		\item Create a new file named |lwarpmk.bat| containing:
+%		\begin{sourcedisplay}
+%			{\footnotesize
+%			|texlua "C:\Program Files\MiKTeX 2.9\scripts\lwarp\lwarp.texlua" %*|}
+%		\end{sourcedisplay}
 %			This will call the copy of |lwarpmk.lua|
 %			which is in the |scripts| directory of the distribution.
 %		\end{enumerate}
@@ -1829,8 +2004,10 @@
 % It is also possible to use a local version of |lwarpmk|:
 % \begin{enumerate}
 % \item When compiling the tutorial in \cref{sec:tutorial},
-%	use the |lwarpmk| option for the \pkg{lwarp-newproject} package: \\
-%	\hspace*{2em}|\usepackage[lwarpmk]{lwarp-newproject}|
+%	use the |lwarpmk| option for the \pkg{lwarp-newproject} package:
+%	\begin{sourcedisplay}
+%	|\usepackage[lwarpmk]{lwarp-newproject}|
+%	\end{sourcedisplay}
 % \item When the tutorial is compiled with |pdflatex|, the file |lwarpmk.lua|
 %	will be generated along with the other configuration files.
 % \item |lwarpmk.lua| may be used for this project:
@@ -1882,10 +2059,12 @@
 %
 % The \TeX\ utilities |xindy|, |latexmk|, and |pdfcrop| may be provided by
 % your operating system's package manager, and are also provided by
-% the CTAN archive: \\
-% \hspace*{2em}\url{http://ctan.org/pkg/xindy} \\
-% \hspace*{2em}\url{http://ctan.org/pkg/latexmk} \\
-% \hspace*{2em}\url{http://ctan.org/pkg/pdfcrop}
+% the \CTAN\ archive:
+%	\begin{sourcedisplay}
+% \url{http://ctan.org/pkg/xindy} \\
+% \url{http://ctan.org/pkg/latexmk} \\
+% \url{http://ctan.org/pkg/pdfcrop}
+%	\end{sourcedisplay}
 %
 %
 % \item [To install the Poppler utilities to a Unix/Linux system:] \
@@ -1900,7 +2079,7 @@
 % \item [To install the Poppler utilities to a MacOS machine:] \
 %	\begin{enumerate}
 %	\item Install Homebrew from \url{https://brew.sh/}:
-%		\userentry{~ \\ \hspace*{-2in}/usr/bin/ruby -e "\$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"}
+%		\userentry{\small~ \\ \hspace*{-2in}/usr/bin/ruby -e "\$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"}
 %	\item Install the Poppler utilities:
 %		\userentry{brew install poppler}
 %	\end{enumerate}
@@ -1918,8 +2097,10 @@
 % \item Choose the "Environment Variables" button.
 % \item Choose the "Path" variable, then the "Edit" button.
 % \item Choose the "New" button to make an additional entry.
-% \item Enter the |bin| directory of the Poppler utilities, such as: \\
-%	\hspace*{2em}|C:\Users\<myname>\Desktop\Poppler\poppler-0.5_x86\poppler-0.5\bin|
+% \item Enter the |bin| directory of the Poppler utilities, such as:
+%	\begin{sourcedisplay}
+%	|C:\Users\<myname>\Desktop\Poppler\poppler-0.5_x86\poppler-0.5\bin|
+%	\end{sourcedisplay}
 %
 %	Be sure to include |\bin|.
 % \item Click "Ok" when done.
@@ -1931,8 +2112,10 @@
 % \item Download and install a version of Perl, such as Straweberry Perl,
 %	to a directory without a space in its name, such as |C:\Strawberry|.
 % \item Edit the Path as seen above for the Poppler utilities.
-% \item Enter the |bin| directory of the Perl utility, such as: \\
-%	\hspace*{2em}|C:\Strawberry\perl\bin|
+% \item Enter the |bin| directory of the Perl utility, such as:
+%	\begin{sourcedisplay}
+%	|C:\Strawberry\perl\bin|
+%	\end{sourcedisplay}
 %
 %	Be sure to include |\bin|.
 % \item Click "Ok" when done.
@@ -1940,8 +2123,9 @@
 %
 % \end{description}
 %
-% \vspace{1in}
+% \vfill
 % \textcolor{red}{\textbf{Any utilities installed by hand must be added to the |PATH|.}}
+% \vfill
 %
 %
 %
@@ -1970,7 +2154,7 @@
 %
 %	A listing is in \cref{fig:tutorial},
 %	which may be copied/pasted from the figure directly into your own editor,
-%	depending on the quality of the \acro{PDF} viewer and editor, or:
+%	depending on the quality of the \PDF\ viewer and editor, or:
 %
 %	\item [Copy from the \pkg{lwarp} documentation directory:] \
 %
@@ -1980,7 +2164,7 @@
 %	\watchout[Note: |.txt| suffix!]
 %
 %	This should be in the |doc/latex/lwarp/| directory along
-%	with this \acro{PDF} documentation.
+%	with this \PDF\ documentation.
 %	Copy |lwarp_tutorial.txt| directly into your |tutorial| directory,
 %	renamed as |tutorial.tex|.
 %	\end{description}
@@ -2005,7 +2189,7 @@
 % Whenever a print version of the document is created while the |lwarp-newproject|
 % package is used, the configuration files for |lwarpmk| are updated to
 % record the operating system, \LaTeX\ program (|pdflatex|, |xelatex|, or |lualatex|),
-% the filenames of the source code and \acro{HTML} output, and whether
+% the filenames of the source code and \HTML\ output, and whether
 % the additional helper program |latexmk| will be used to compile the document.)
 %
 %
@@ -2042,7 +2226,7 @@
 % 
 % % --- HTML FILENAME AND LATEXMK SETTINGS ---
 % % \newcommand{\HomeHTMLFilename}{index} % Filename of the homepage.
-% % \newcommand{\HTMLFileName}{node-} % Filename prefix of other pages.
+% % \newcommand{\HTMLfiveName}{node-} % Filename prefix of other pages.
 % % \newcommand{\UseLatexmk}{true}% Uncomment to use latexmk
 % 
 % % --- LWARP IS LOADED NEXT ---
@@ -2059,11 +2243,11 @@
 % % --- LATEX AND HTML CUSTOMIZATION ---
 % \title{The Lwarp Tutorial}
 % \author{Some Author}
-% \setcounter{tocdepth}{2}        % Include subsections in the TOC.
+% \setcounter{tocdepth}{2}        % Include subsections in the \TOC.
 % \setcounter{secnumdepth}{2}     % Number down to subsections.
-% \setcounter{FileDepth}{1}       % Split HTML files at sections
+% \setcounter{FileDepth}{1}       % Split \HTML\ files at sections
 % \booltrue{CombineHigherDepths}  % Combine parts/chapters/sections
-% \setcounter{SideTOCDepth}{1}    % Include subsections in the sideTOC
+% \setcounter{SideTOCDepth}{1}    % Include subsections in the side\TOC
 % \SetFirstPageTop{Name and \fbox{HOMEPAGE LOGO}}
 % \SetPageTop{\fbox{LOGO}}
 % \SetPageBottom{Contact Information and Copyright}
@@ -2109,20 +2293,20 @@
 % \caption{Files created in a new project\label{fig:newprojectfiles}}
 % \begin{description}
 %
-% \item [|tutorial.pdf|:] The \acro{PDF} output from \LaTeX.
+% \item [|tutorial.pdf|:] The \PDF\ output from \LaTeX.
 %
 % \item [|tutorial\_html.tex|:] A small |.tex| file used to create
-%	a parallel \acro{HTML} version of the document, which co-exists with usual
-%	the \acro{PDF} version, and which will have its
-%	own auxiliary files.  In this way, both \acro{PDF} and \acro{HTML}
+%	a parallel \HTML\ version of the document, which co-exists with usual
+%	the \PDF\ version, and which will have its
+%	own auxiliary files.  In this way, both \PDF\ and \HTML\
 %	documents may co-exist side-by-side.
 %
 % \item [Auxiliary files:] The usual \LaTeX\ files |tutorial.aux|, |tutorial.log|.
-%	When an \acro{HTML} version of the document is created, |_html| versions
+%	When an \HTML\ version of the document is created, |_html| versions
 %	of the auxiliary files will also be generated.
 %
 % \item [|lwarpmk.conf|:] A configuration file for |lwarpmk|,
-%	which is used to automate the compilation of \acro{PDF} or \acro{HTML}
+%	which is used to automate the compilation of \PDF\ or \HTML\
 %	versions of the document.
 %
 % \item [|tutorial.lwarpmkconf|:] Another configuration file used by |lwarpmk|,
@@ -2133,13 +2317,13 @@
 %	These files are standard for \pkg{lwarp}, and are not meant to be modified
 %	by the user.
 %
-% \item [|sample\_project.css|:] An example of a user-customized \acro{CSS} file,
+% \item [|sample\_project.css|:] An example of a user-customized \CSS\ file,
 %	which may be used for project-specific changes to the \pkg{lwarp} defaults.
 %
 % \item [|lwarp\_html.xdy|:] Used by \pkg{lwarp} while creating an index.
 %	This file should not need to be modified by the user.
 %
-% \item [|lwarp\_mathjax.txt|:] Inserted into the \acro{HTML} files when
+% \item [|lwarp\_mathjax.txt|:] Inserted into the \HTML\ files when
 %	|MathJax| is used to display math.
 %	This file should not need to be modified by the user.
 %
@@ -2153,8 +2337,10 @@
 % \begin{description}
 % \item [|lwarpmk.lua|:] A local copy of the |lwarpmk| utility.
 %
-%	On Unix-related operating systems this file must be made executable: \\
-%		\hspace*{2em} |chmod u+x lwarpmk.lua|
+%	On Unix-related operating systems this file must be made executable:
+%	\begin{sourcedisplay}
+%	|chmod u+x lwarpmk.lua|
+%	\end{sourcedisplay}
 %
 %	This may be useful to have to archive with a project for future use.
 % \end{description}
@@ -2167,7 +2353,7 @@
 % \subsection{Compiling the print version with \texttt{lwarpmk}}
 %
 % The |lwarpmk| utility program is used to compile either the printed or
-% the \acro{HTML} version of the document.
+% the \HTML\ version of the document.
 %
 % |lwarpmk print| is used to recompile a printed version of the document.
 %
@@ -2197,7 +2383,10 @@
 %	Although, when using the utility |latexmk| (introduced later), the changed date is
 %	ignored and an actual change in contents must occur to cause a recompile.}
 %
-% \item Process the index.
+% \item Process the index.\footnote{A \texttt{lwarpmk printglossary} command is also
+%	available to process a glossary produced with the \textsf{glossaries} package.
+%	Set its language using the \texttt{lwarpmklang} option for \pkg{lwarp-newproject}
+%	and \pkg{lwarp}.}
 %	\userentry{lwarpmk printindex}
 %
 % \item Recompile again to include the index.
@@ -2205,7 +2394,7 @@
 %
 % \end{enumerate}
 %
-% Note that the \acro{HTML} customization commands are ignored while making the
+% Note that the \HTML\ customization commands are ignored while making the
 % print version.
 %
 %
@@ -2213,10 +2402,10 @@
 %
 % \subsection{Compiling the HTML version with \texttt{lwarpmk}}
 %
-% |lwarpmk html| is used to recompile an \acro{HTML} version of the document.
+% |lwarpmk html| is used to recompile an \HTML\ version of the document.
 %
 % \begin{enumerate}
-% \item Compile the \acro{HTML} version:
+% \item Compile the \HTML\ version:
 %	\userentry{lwarpmk html}
 %
 %	\begin{enumerate}
@@ -2224,15 +2413,15 @@
 %		to create \\
 %		|tutorial_html.pdf|.
 %	\item |pdftotext| is then used to convert into the file |tutorial_html.html|.
-%		This file is a plain-text file containing \acro{HTML} tags and
+%		This file is a plain-text file containing \HTML\ tags and
 %		content for the entire document.
 %	\item |lwarpmk| manually splits |tutorial_html.html| into
-%		individual \acro{HTML} files according to the \acro{HTML} settings.
+%		individual \HTML\ files according to the \HTML\ settings.
 %		For this tutorial, the result is |tutorial.html| (the home page),
 %		along with |First-chapter.html|\footnote{
 %			\texttt{First-chapter.html}
 %			also contains the first section, even though the second
-%			section is its own \acro{HTML} page.  This behavior is
+%			section is its own \HTML\ page.  This behavior is
 %			controlled by the boolean \texttt{CombineHigherDepths}.},
 %		|Some-math.html|, and the document's
 %		index in |_Index.html|.\footnote{\texttt{index.html} is commonly
@@ -2247,7 +2436,7 @@
 %	\margintag{math}
 %	until the
 %	images of the math expressions have not yet been generated.  Math may be
-%	displayed as \acro{SVG} images or by a MathJax script, as seen in
+%	displayed as \SVG\ images or by a MathJax script, as seen in
 %	\cref{sec:tutorialsvgmath,sec:tutorialmathjax}.
 %
 % \item Force a recompile:
@@ -2255,7 +2444,10 @@
 %	\userentry{lwarpmk html}
 %	\userentry{lwarpmk print}
 %
-% \item Process the \acro{HTML} index and recompile:
+% \item Process the \HTML\ index and recompile:\footnote{A \texttt{lwarpmk htmlglossary} command is also
+%	available to process a glossary produced with the \textsf{glossaries} package.
+%	Set its language using the \texttt{lwarpmklang} option for \pkg{lwarp-newproject}
+%	and \pkg{lwarp}.}
 %	\userentry{lwarpmk htmlindex}
 %	\userentry{lwarpmk html}
 %
@@ -2271,8 +2463,8 @@
 % \subsection{Generating the SVG images}
 % \label{sec:tutorialsvgmath}
 %
-% By default \pkg{lwarp} represents math as \acro{SVG} images with
-% \margintag{math as \acro{SVG} images}
+% By default \pkg{lwarp} represents math as \SVG\ images with
+% \margintag{math as \SVG\ images}
 % the \LaTeX\ source included in |alt| tags.  In this way,
 % the math displays as it was drawn by \LaTeX, and the \LaTeX\ source
 % may be copied and pasted into some other document.
@@ -2281,7 +2473,7 @@
 % \margintag{\env{picture} and \tikz}
 %
 % \begin{enumerate}
-% \item Create the \acro{SVG} images:
+% \item Create the \SVG\ images:
 %	\userentry{lwarpmk limages}
 %	\userentry{lwarpmk html}
 %
@@ -2295,10 +2487,10 @@
 %
 % When a math expression, |picture|, or \tikz\ environment is added or
 % \watchout[Adding/removing]
-% removed, the \acro{SVG} images must be re-created with |lwarpmk limages|
+% removed, the \SVG\ images must be re-created with |lwarpmk limages|
 % to maintain the proper image file sequence numbers.
 %
-% Expressing math as \acro{SVG} images has the advantage of representing
+% Expressing math as \SVG\ images has the advantage of representing
 % the math exactly as \LaTeX\ would, but has the disadvantage of requiring
 % an individual file for each math expression.
 % \watchout[Lots of files!]
@@ -2317,10 +2509,14 @@
 % \margintag{math with MathJax}
 %
 % \begin{enumerate}
-% \item In the tutorial's source code, change \\
-%	\hspace*{2em} |\usepackage{lwarp}| \\
-%	\hspace*{3em} to \\
-%	\hspace*{2em} |\usepackage[mathjax]{lwarp}|
+% \item In the tutorial's source code, change
+%	\begin{sourcedisplay}
+%	|\usepackage{lwarp}|
+%	\end{sourcedisplay}
+%	to
+%	\begin{sourcedisplay}
+%	|\usepackage[mathjax]{lwarp}|
+%	\end{sourcedisplay}
 %
 % \item Recompile \userentry{lwarpmk html}
 %
@@ -2363,7 +2559,7 @@
 % |lwarpmk html|, and then reload the webpage.
 %
 % A customized style may also be created.
-% \margintag{Custom \acro{CSS}}
+% \margintag{Custom \CSS}
 % For each new project a file
 % called |sample_project.css| is generated.  This may be renamed to
 % |<project>.css| then used by assigning |\NewCSS{<project>.css|.
@@ -2376,7 +2572,7 @@
 %
 % |<project>.css| has an entry which loads |lwarp.css|, and this
 % entry may be changed to load |lwarp_formal.css| or |lwarp_sagebrush.css| if
-% desired.  Additional changes to the \acro{CSS} may be made by making entries
+% desired.  Additional changes to the \CSS\ may be made by making entries
 % later in the |<project>.css| file.
 %
 % \clearpage
@@ -2386,13 +2582,13 @@
 % \index{settings>HTML conversion}
 % \index{HTML>conversion settings}
 %
-% Several settings may be used to customize the \acro{HTML} output.
+% Several settings may be used to customize the \HTML\ output.
 % Watch for the correct placement of each!\watchout[Placement!]
 %
 % Note that if changes are made,
 % \watchout[Changes!]
 % it is best to first use |lwarpmk clearall| to
-% clear all the \acro{HTML}, \acro{PDF}, and auxiliary files.
+% clear all the \HTML, \PDF, and auxiliary files.
 % Also, if \cs{HomeHTMLFilename}, \cs{HTMLFileName}, or \cs{UseLatexmk} are
 % changed, it is necessary to reenable the |lwarp-newproject| package and
 % then recompile the print version in order to recreate the configuration
@@ -2406,8 +2602,10 @@
 %
 % \ItemDescribeMacro{\HomeHTMLFilename} Filename of the homepage, without
 %	the ``|.html|'' suffix.
-%	Defaults to the \cs{BaseJobname}.  A common setting is: \\
-%	\hspace*{2em}|\newcommand{HomeHTMLFilename}{index}| \\
+%	Defaults to the \cs{BaseJobname}.  A common setting is:
+%	\begin{sourcedisplay}
+%	|\newcommand{HomeHTMLFilename}{index}|
+%	\end{sourcedisplay}
 %	causing the
 %	homepage to be the file |index.html|.  Underscores are allowed in
 %	\margintag{filename underscore}
@@ -2416,14 +2614,16 @@
 %	\index{underscore>filename}\index{file>underscore}
 %	\changes{v0.24}{2017/03/13}{Docs: Filename underscore.}
 %
-% \ItemDescribeMacro{\HTMLFileName} A filename prefix for the rest of the \acro{HTML} web pages.
+% \ItemDescribeMacro{\HTMLfiveName} A filename prefix for the rest of the \HTML\ web pages.
 %	Useful for numbered web pages with a common prefix.  May be empty.
 %
 % \ItemDescribeMacro{\UseLatexmk} A macro which controls whether
 %	\pkg{lwarp} uses |latexmk| to
 %	compile the document.  This setting is written to |lwarpmk|'s configuration
-%	files.  Defaults to false.  Set to true with: \\
-%	\hspace*{2em}|\newcommand*{\UseLatexmk}{true}|
+%	files.  Defaults to false.  Set to true with:
+%	\begin{sourcedisplay}
+%	|\newcommand*{\UseLatexmk}{true}|
+%	\end{sourcedisplay}
 %
 %	\end{description}
 %
@@ -2434,24 +2634,29 @@
 % \ItemDescribeCounter{tocdepth} Sectioning depth of the table of contents.
 %	See \cref{sec:stackdepths} for a list of \LaTeX{} stack depths.
 %
-% \ItemDescribeCounter{SideTOCDepth} Sectioning depth of the side\acro{TOC}.
-%	Defaults to 1, causing the sidetoc to show sections but not subsections.
+% \ItemDescribeCounter{SideTOCDepth} Sectioning depth of the side\TOC.
+%	Defaults to 1, causing the side\TOC\ to show sections but not subsections.
 %
 %	Each subpage of the website has its own small table of contents
-%	\margintag{sideTOC}
-%	on the side (the ``side\acro{TOC}'').  Its depth is set by |SideTOCDepth|.
-%	This side\acro{TOC} is only shown if the web page is wide enough.
+%	\margintag{side\TOC}
+%	on the side (the ``side\TOC'').  Its depth is set by |SideTOCDepth|.
+%	This side\TOC\ is only shown if the web page is wide enough.
 %	When using a narrow web browser window,
-%	``responsive web design'' is used to show the side\acro{TOC} at the top of the
+%	``responsive web design'' is used to show the side\TOC\ at the top of the
 %	page and a link back to ``Home'' at the bottom.
 %
 %	\label{sec:filedepth}
-%	It is recommended to set: \\
-%		\hspace*{.25in} |SideTOCDepth|\,=\,|FileDepth|, or \\
-%		\hspace*{.25in} |SideTOCDepth|\,=\,|FileDepth|+1
+%	It is recommended to set:
+%	\begin{sourcedisplay}
+%	|SideTOCDepth|\,=\,|FileDepth|
+%	\end{sourcedisplay}
+%	or
+%	\begin{sourcedisplay}
+%	|SideTOCDepth|\,=\,|FileDepth|+1
+%	\end{sourcedisplay}
 %
 %	If |SideTOCDepth|\,<\,|FileDepth|, web pages will be inaccessible via the
-%	side\acro{TOC}.  \watchout
+%	side\TOC.  \watchout
 %	\index{file>inaccessible}
 %	\index{page>inacessible}
 %	\index{missing sections}
@@ -2458,16 +2663,23 @@
 %	\index{section>missing}
 %
 % \ItemDescribeCounter{FileDepth} Sectioning depth of file splits.
-%	Defaults to -5, causing the entire \acro{HTML} website to be one single file.
+%	Defaults to -5, causing the entire \HTML\ website to be one single file.
 %	\begin{itemize}
-%	\item To place the entire file into one \acro{HTML} page, use: \\
-%		\hspace*{.25in}|\setcounter{FileDepth}{-5}}|
-%	\item To split the \acro{HTML} file at \cs{section} depth, use: \\
-%		\hspace*{.25in}|\setcounter{FileDepth}{1}}|
-%	\item To ensure that the \acro{HTML} pages/files are accessible:
+%	\item To place the entire file into one \HTML\ page, use:
+%		\begin{sourcedisplay}
+%		|\setcounter{FileDepth}{-5}}|
+%		\end{sourcedisplay}
+%	\item To split the \HTML\ file at \cs{section} depth, use:
+%		\begin{sourcedisplay}
+%		|\setcounter{FileDepth}{1}}|
+%		\end{sourcedisplay}
+%	\item To ensure that the \HTML\ pages/files are accessible:
 %		\watchout\\
 %		Place a \cs{tableofcontents} somewhere before the first section
-%		break (therefore in the ``home page''), and set |tocdepth|\,>=\,|FileDepth|.
+%		break (therefore in the ``home page''), and set
+%		\begin{sourcedisplay}
+%		|tocdepth|\,>=\,|FileDepth|
+%		\end{sourcedisplay}
 %		\index{file>inaccessible}
 %		\index{page>inacessible}
 %		\index{missing sections}
@@ -2505,49 +2717,50 @@
 %	derived from a sanitized version of the section names.  If false, web pages
 %	are numbered.  Either way, the \cs{HTMLFileName} is prefixed.
 %
-%	Example HTML filenames:
-%	\changes{v0.20}{2016/09/11}{Docs: Examples for generating HTML file names.}
+%	Example \HTML\ filenames:
+%	\changes{v0.20}{2016/09/11}{Docs: Examples for generating \HTML\ file names.}
 %	\label{sec:filenameexamples}
 %	\margintag{HTML filenames}
 %	\index{HTML>filename generation}
 %	\begin{description}
-%	\item[Numbered HTML nodes:] \
+%	\item[Numbered \HTML\ nodes:] \
 %
 %	Example: Homepage |index.html|, and |node-1|, |node-2|.
 %	(See \cs{SetHTMLFileNumber} to number grouped by chapter, for example.)
 %	\begin{Verbatim}[gobble=2,frame=lines,obeytabs,tabsize=4]
 %	\newcommand{\HomeHTMLFileName}{index}
-%	\newcommand{\HTMLFileName}{node-}
+%	\newcommand{\HTMLfiveName}{node-}
 %	\usepackage{lwarp}
 %	\boolfalse{FileSectionNames}
 %	\end{Verbatim}
 %
-%	\item[Named HTML sections, no prefix:] \
+%	\item[Named \HTML\ sections, no prefix:] \
 %
 %	Example: |index.html|, and |About.html|, |Products.html|
 %	\begin{Verbatim}[gobble=2,frame=lines,obeytabs,tabsize=4]
 %	\newcommand{\HomeHTMLFileName}{index}
-%	\newcommand{\HTMLFileName}{}
+%	\newcommand{\HTMLfiveName}{}
 %	\usepackage{lwarp}
 %	\booltrue{FileSectionNames}
 %	\end{Verbatim}
 %
-%	\item[Named HTML sections, with prefix:] \
+%	\item[Named \HTML\ sections, with prefix:] \
 %
 %	Example: Homepage |mywebsite.html|, and additional pages such
 %	as |mywebsite-About.html|, etc.
 %	\begin{Verbatim}[gobble=2,frame=lines,obeytabs,tabsize=4]
 %	\newcommand{\HomeHTMLFileName}{mywebsite}
-%	\newcommand{\HTMLFileName}{mywebsite-}
+%	\newcommand{\HTMLfiveName}{mywebsite-}
 %	\usepackage{lwarp}
 %	\booltrue{FileSectionNames}
 %	\end{Verbatim}
 %	\end{description}
 %
-% \ItemDescribeMacro{\abstractname} The name of the abstract.  This may also be over-written
+% \ItemDescribeMacro{\abstractname} The name of the abstract.
+%	This may also be over-written
 %	by the \pkg{babel} package.  Defaults to ``Abstract''.
 %
-% \ItemDescribeMacro{\MetaLanguage} The \acro{HTML} language meta header.
+% \ItemDescribeMacro{\MetaLanguage} The \HTML\ language meta header.
 %	Defaults to {en-US}.
 %
 % \ItemDescribeMacro{\SetFirstPageTop} \marg{contents} \quad
@@ -2589,20 +2802,20 @@
 %
 % \begin{description}
 % \ItemDescribeMacro{\NewCSS}  \marg{filename.css} \quad
-%	Sets the \acro{CSS} file to use for the following
+%	Sets the \CSS\ file to use for the following
 %	files.  May be changed before each each sectioning command which would
 %	cause a file split.
 %
-%	The \acro{CSS} styles of the web pages are set by the \cs{NewCSS} command.
+%	The \CSS\ styles of the web pages are set by the \cs{NewCSS} command.
 %	If \cs{NewCSS} is not used, a default plain style is used to mimic printed
 %	\LaTeX\ output.  |lwarp_sagebrush.css| is a semi-fancy colored style as shown
 %	in this tutorial.  Change it to |lwarp_formal.css| for a more formal look,
 %	or comment out the \cs{NewCSS} command to see the default.
-%	\cs{NewCSS} may be used before each file break to set the \acro{CSS} for
+%	\cs{NewCSS} may be used before each file break to set the \CSS\ for
 %	individual pagess of the website.
 %
 % \ItemDescribeMacro{\NewHTMLdescription} \marg{description} \quad
-%	Sets the \acro{HTML} description tag for
+%	Sets the \HTML\ description tag for
 %	the following files.  May be changed before each each sectioning command which would
 %	cause a file split.
 % \end{description}
@@ -2613,7 +2826,7 @@
 % \begin{description}
 % \ItemDescribeEnv{warpprint} An environment which is only used
 %	while generating print output.  Place here anything which does not
-%	apply to \acro{HTML} and which may cause problems with \pkg{lwarp}.
+%	apply to \HTML\ and which may cause problems with \pkg{lwarp}.
 %	If \pkg{lwarp} knows about and emulates or supports
 %	a package then its related macros, lengths, counters, etc. probably won't have
 %	to be placed inside a \env{warpprint} environment, but unknown packages
@@ -2620,7 +2833,7 @@
 %	may cause problems which may be isolated from \pkg{lwarp} using this environment.
 %
 % \ItemDescribeEnv{warpHTML} An environment which is only used
-%	while generating \acro{HTML} output.  This is useful for website logos and
+%	while generating \HTML\ output.  This is useful for website logos and
 %	other items which have no purpose in printed output.
 %
 % \ItemDescribeMacro{\warpprintonly} \marg{contents} \quad
@@ -2642,12 +2855,14 @@
 %
 % \begin{enumerate}
 % \item In the tutorial's source code, at ``HTML FILENAME AND LATEXMK SETTINGS'',
-%	insert the line: \\
-%	\hspace*{2em}|\newcommand{\UseLatexmk}{true}|
+%	insert the line:
+%	\begin{sourcedisplay}
+%	|\newcommand{\UseLatexmk}{true}|
+%	\end{sourcedisplay}
 %
 % \item Directly recompile the printed version of the document.
-%	\userentry{pdflatex tutorial.tex} \watchout[NOT \texttt{lwarpmk}!] \\
-%	\hspace*{2em}(Or |xelatex| or |lualatex|)
+%	\userentry{pdflatex tutorial.tex} \watchout[NOT \texttt{lwarpmk}!]
+%	(Or |xelatex| or |lualatex|)
 %
 %	\begin{sloppy}
 %	\pkg{lwarp} updates its own configuration files (|lwarpmk.conf| and \newline
@@ -2679,8 +2894,10 @@
 % \item Remove the auxiliary files for the project:
 %	\userentry{lwarpmk cleanall}
 %
-% \item Be sure that \\
-%		\hspace*{2em} |\usepackage{lwarp-newproject}| \\
+% \item Be sure that
+%	\begin{sourcedisplay}
+%	|\usepackage{lwarp-newproject}|
+%	\end{sourcedisplay}
 %	is still enabled in |tutorial.tex|.
 %
 % \item Use |xelatex| or |lualatex| to recompile the printed version.
@@ -2700,12 +2917,45 @@
 % \end{enumerate}
 %
 %
+%
 % \clearpage
 %
+% \subsection{Using a glossary}
+%
+% \changes{v0.29}{2017/04/15}{Docs: Using a glossary}
+%
+% \pkg{lwarp} supports the \pkg{glossaries} package.
+%
+% \DescribeOption[lwarp-newproject]{lwarpmklang}
+% \DescribeOption[lwarp]{lwarpmklang}
+% To assign a language to be used while processing the glossary,
+% use the |lwarpmklang| option:
+% \index{language>glossary}
+% \index{glossary>language}
+%
+% \begin{Verbatim}[gobble=2,frame=lines]
+% \usepackage[lwarpmklang=english]{lwarp-newproject}
+% \usepackage[lwarpmklang=english]{lwarp}
+% \end{Verbatim}
+%
+% \index{glossary>processing}
+% To process the glossary for the print version:
+%	\userentry{lwarpmk printglossary}
+%
+% To process the glossary for the \HTML\ version:
+%	\userentry{lwarpmk htmlglossary}
+%
+% In each case, the document will have to be recompiled afterwards.
+%
+%
+%
+%
+% \clearpage
+%
 % \subsection{Cleaning auxiliary files}
 %
-% To remove the auxiliary files |.aux|, |.toc|, |.lof|, |.lot|, |.idx|, |.ind|, and
-%	|.log|:
+% To remove the auxiliary files |.aux|, |.toc|, |.lof|, |.lot|, |.idx|, |.ind|, |.log|,
+%	and |.gl*|:
 %	\userentry{lwarpmk clean}
 %
 %
@@ -2724,8 +2974,10 @@
 % \userentry{pdflatex project\_a}
 % \userentry{pdflatex project\_b}
 %
-% Each project is given its own configuration file: \\
-% \hspace*{2em}|project_a.lwarpmkconf|, |project_b.lwarpmkconf|
+% Each project is given its own configuration file:
+%	\begin{sourcedisplay}
+%	|project_a.lwarpmkconf|, |project_b.lwarpmkconf|
+%	\end{sourcedisplay}
 %
 % To compile each project with |lwarkmk|:
 % \userentry{lwarpmk print project\_a}
@@ -2735,12 +2987,14 @@
 % \subsection{Using the \texttt{make} utility}
 %
 % |lwarpmk| has an action which may be useful for integration with the
-% common |make| utility:\\
-% \hspace*{2em}|lwarpmk pdftohtml [project]|
+% common |make| utility:
+%	\begin{sourcedisplay}
+%	|lwarpmk pdftohtml [project]|
+%	\end{sourcedisplay}
 %
-% |make| may be used to compile the code to \acro{PDF} with \acro{HTML}
+% |make| may be used to compile the code to \PDF\ with \HTML\
 % tags (|project_html.pdf|), then |lwarpmk| may be used to
-% convert each target to \acro{HTML} files.
+% convert each target to \HTML\ files.
 %
 %
 % \clearpage
@@ -2759,8 +3013,8 @@
 % \changes{v0.16}{2016/04/08}{Docs: Font and UTF-8 support.}
 % \changes{v0.16}{2016/04/08}{Lwarp no longer selects fonts.}
 %
-% \pkg{lwarp} uses |pdftotext| to convert \acro{PDF} output into UTF-8-encoded
-% text.  This process requires that UTF-8 information be embedded in the \acro{PDF}
+% \pkg{lwarp} uses |pdftotext| to convert \PDF\ output into UTF-8-encoded
+% text.  This process requires that UTF-8 information be embedded in the \PDF\
 % file, which usually prevents the use of bit-mapped fonts.
 % \index{font>bitmapped}
 %
@@ -2770,10 +3024,14 @@
 % \margintag{Computer Modern}%
 % \index{font>Computer Modern}\index{Computer Modern}%
 % \watchout%
-% so simply add \\
-%	\hspace*{.25in}|usepackage{lmodern}| \\
-% to the preamble to enable the related vector font instead, or use\\
-% \hspace*{.25in}|\usepackage{dejavu}|
+% so simply add
+%	\begin{sourcedisplay}
+%	|usepackage{lmodern}|
+%	\end{sourcedisplay}
+% to the preamble to enable the related vector font instead, or use
+%	\begin{sourcedisplay}
+% |\usepackage{dejavu}|
+%	\end{sourcedisplay}
 %
 % \index{Deja Vu}%
 % \index{font>Deja Vu}%
@@ -2801,7 +3059,7 @@
 % \medskip
 % \pkg{lwarp} sets the following to turn off \TeX{} ligatures during
 % \margintag{ligatures}
-% the generation of \acro{HTML} tags, and turn off common ligatures
+% the generation of \HTML\ tags, and turn off common ligatures
 % in regular text, since older browsers may not display them correctly
 % and newer browsers can automatically re-create them.
 %	\index{ligatures}\index{font>ligatures}
@@ -2836,7 +3094,7 @@
 %	to turn off f,q,t,T,Q ligatures for the same
 %	\margintag{ligatures}
 %	browser-related reasons shown above.  Also, the monospaced font is used
-%	during \acro{HTML} tag generation to turn off \TeX{} ligatures.
+%	during \HTML\ tag generation to turn off \TeX{} ligatures.
 %	\index{ligatures}\index{font>ligatures}
 % \end{itemize}
 % \end{itemize}
@@ -2859,7 +3117,7 @@
 % \DescribeOption[lwarp]{warpprint}
 % \DescribeOption[lwarp]{warpHTML}
 % Select the |warpprint| option to generate print output (default),
-% or the |warpHTML| option to generate \htmlfive{} output.
+% or the |warpHTML| option to generate \HTMLfive{} output.
 % The default is print output, so the print version may be
 % compiled with the usual |pdflatex|, etc.
 % When \pkg{lwarp-newproject} is loaded in print mode, it creates
@@ -2866,7 +3124,7 @@
 % |<project>_html.tex|, which sets the |warpHTML| option before calling
 % the user's source code |<project>.tex|.  In this way, |<project>.tex|
 % can |\usepackage{lwarp}| without any options to create a printed version,
-% while |<project>_html.tex| will create an HTML version.
+% while |<project>_html.tex| will create an \HTML\ version.
 %
 % \DescribeOption[lwarp]{mathsvg}
 % \DescribeOption[lwarp]{mathjax}
@@ -2888,7 +3146,7 @@
 %
 % The following environments and macros are used to select actions which only apply
 % to either traditional \LaTeX{} print-formatted PDF generation,
-% or to \acro{HTML} generation.
+% or to \HTML\ generation.
 %
 % For most of built-in \LaTeX\ and many additional packages
 % there is user-level source code support or emulation,
@@ -2895,13 +3153,13 @@
 % so no special handling will be required.
 % For those cases which \pkg{lwarp} does not handle by itself, the
 % following environments and macros may be used to isolate sections
-% of code for print-only or \acro{HTML}-only.
+% of code for print-only or \HTML-only.
 %
 % These environments are also useful for creating a special version of
-% the titlepage for print and another for \acro{HTML}.
+% the titlepage for print and another for \HTML.
 
 % \DescribeEnv{warpHTML}
-% Anything which is to be done only for \htmlfive{} output
+% Anything which is to be done only for \HTMLfive{} output
 % is surrounded by a |warpHTML| environment:
 % \begin{Verbatim}[gobble=2,frame=lines,obeytabs,tabsize=4]
 % \begin{warpHTML}
@@ -2928,7 +3186,7 @@
 % \end{Verbatim}
 %
 %
-% Macros are also provided for print-only or \acro{HTML}-only code:
+% Macros are also provided for print-only or \HTML-only code:
 %
 % \DescribeMacro{\warpprintonly} \marg{actions}
 %
@@ -2936,7 +3194,7 @@
 %
 % \DescribeMacro{\warpHTMLonly} \marg{actions}
 %
-% Performs the given actions only when \acro{HTML} output is being generated.
+% Performs the given actions only when \HTML\ output is being generated.
 %
 %
 %
@@ -2947,7 +3205,7 @@
 %
 % Certain print-related commands should always be placed
 % inside a \env{warpprint} environment, or may need other special handling.
-% These are unrelated to \acro{HTML} output, but are hard to isolate automatically.
+% These are unrelated to \HTML\ output, but are hard to isolate automatically.
 % For example:
 %
 % \begin{itemize}
@@ -2959,7 +3217,7 @@
 % \end{itemize}
 %
 % Some packages require additional setup commands.  Where these packages are emulated
-% for \acro{HTML}, setup commands may work for the emulated \acro{HTML} output as well as for print
+% for \HTML, setup commands may work for the emulated \HTML\ output as well as for print
 % output.  See the details for each package in this document for more information.
 %
 % Also see \cref{sec:troubleshooting}: \nameref{sec:troubleshooting}.
@@ -2969,14 +3227,14 @@
 % \label{sec:successfulcommands}
 % \index{HTML>commands for a successful conversion}
 %
-% \changes{v0.14}{2016/03/26}{Docs: Commands for a successful HTML conversion.}
+% \changes{v0.14}{2016/03/26}{Docs: Commands for a successful \HTML\ conversion.}
 %
 % Some commonly-used \LaTeX{} expressions should be modified to allow
-% for a smooth conversion to both \acro{HTML} and print-formatted outputs:
+% for a smooth conversion to both \HTML\ and print-formatted outputs:
 %
 % \begin{description}
 %
-% \item [Page references:] The printed page does not translate to the \acro{HTML}
+% \item [Page references:] The printed page does not translate to the \HTML\
 % page, so references to page numbers are converted to parentheses containing
 % \cs{pagerefPageFor}, which defaults to ``see '',
 % followed by a hyperlink to the appropriate
@@ -3002,8 +3260,10 @@
 %
 %	Escape underscores in
 %	\margintag{filename underscore}
-%	the filenames: \\
-%	\hspace*{2em}|\item[\href{file\_name.pdf}{text}]|
+%	the filenames:
+%	\begin{sourcedisplay}
+%	|\item[\href{file\_name.pdf}{text}]|
+%	\end{sourcedisplay}
 %	\index{underscore>filename}\index{file>underscore}
 %	\changes{v0.24}{2017/03/13}{Docs: Filename underscore.}
 %
@@ -3012,12 +3272,12 @@
 %	Place side-by-side minipages inside a |center| environment,
 %	with horizontal space between them, such as \cs{quad}, \cs{qquad},
 %	\cs{hspace}, or \cs{hfill}.  The result is similar in print and
-%	\acro{HTML}.  Do not use space commands at the start or end of the line.
+%	\HTML.  Do not use space commands at the start or end of the line.
 %
 % \item [\cs{fbox} around a minipage:] ~
 %
 %	\cs{fbox} can only be used around inline items during
-%	\acro{HTML} output.
+%	\HTML\ output.
 %
 %	For an \cs{fbox} around a minipage, you may:
 %	\index{fbox>around a minipage}
@@ -3029,7 +3289,7 @@
 % ^^A	\item Use the \env{example} or \env{sidebar} environments.
 %	\item Use a custom environment to create a sidebar,
 %		containing a \env{BlockClass} environment
-%		with custom \acro{CSS} formatting,
+%		with custom \CSS\ formatting,
 %		 and |\warpprintonly{\hrule}| command:
 % \begin{Verbatim}[gobble=2,frame=lines]
 % \begin{BlockClass}{frameminipage}% ignored in print output
@@ -3062,7 +3322,7 @@
 % \published{Optional Journal Name \\ Optional multiple lines}
 % \end{Verbatim}
 % 
-% The title is used in the meta tags in the \acro{HTML} files, and the rest are used
+% The title is used in the meta tags in the \HTML\ files, and the rest are used
 % in |\maketitle|.
 %
 %
@@ -3082,40 +3342,40 @@
 % \DescribeMacro{\title} \marg{title}
 
 % Avoid newlines in the |\title|; these will interfere with the
-% file break and \acro{CSS} detection.
+% file break and \CSS\ detection.
 % \watchout
 % Use the |\subtitle| command instead.
-% In \acro{HTML}, the title will appear in a heading |h1|.
+% In \HTML, the title will appear in a heading |h1|.
 %
 % \DescribeMacro{\author} \marg{author}
 %
 % In |\author|, use |\protect| before formatting commands such as |\textsc|.
 % \watchout
-% In \acro{HTML}, the author will appear in a \tag{div} class |author|.
+% In \HTML, the author will appear in a \tag{div} class |author|.
 % \cs{affiliation} is a new addition to \pkg{lwarp}.
 %
 % \DescribeMacro{\date} \marg{date}
 %
 % |\date| works as expected.
-% In \acro{HTML}, this will appear in a \tag{div} class |titledate|.
+% In \HTML, this will appear in a \tag{div} class |titledate|.
 %
 % \DescribeMacro{\subtitle} \marg{subtitle}
 %
 % A new command which sets a subtitle.  Newlines are allowed.
 % The default is empty.
-% In \acro{HTML}, this will appear in a \tag{div} class |subtitle|.
+% In \HTML, this will appear in a \tag{div} class |subtitle|.
 %
 % \DescribeMacro{\published} \marg{published}
 %
 % A new command which sets a publisher.
 % The default is empty.
-% In \acro{HTML}, this will appear in a \tag{div} class |published|.
+% In \HTML, this will appear in a \tag{div} class |published|.
 %
 %
 % \DescribeMacro{\thanks} \marg{text}
 %
 % \cs{thanks} are allowed in the titlepage fields, and will be rendered
-% as \acro{HTML} notes at the bottom of the title page.
+% as \HTML\ notes at the bottom of the title page.
 %
 %
 % \subsection{HTML page meta descriptions}
@@ -3127,7 +3387,7 @@
 % \DescribeMacro{\NewHTMLdescription} \marg{A description of the web page.}
 % \quad The default is no description.
 %
-% Each page of \acro{HTML} output should have its own \acro{HTML} meta description,
+% Each page of \HTML\ output should have its own \HTML\ meta description,
 % which usually shows up in web search results,
 % \margintag{limitations}
 % is limited to around
@@ -3139,25 +3399,36 @@
 % and also just before each sectioning command such as \cs{chapter} or \cs{section}
 % where a new file will be generated, depending on |FileDepth|.  For example, if |FileDepth| is 1,
 % use \cs{NewHTMLdescription} just before each \cs{section} command, and that description will be
-% placed inside the \acro{HTML} page for that \cs{section}.  The same descrition will be used for
-% all following \acro{HTML} files as well, until reset by a new \cs{NewHTMLdescription}.  It is best
-% to use a unique description for each \acro{HTML} file.
+% placed inside the \HTML\ page for that \cs{section}.  The same descrition will be used for
+% all following \HTML\ files as well, until reset by a new \cs{NewHTMLdescription}.  It is best
+% to use a unique description for each \HTML\ file.
 %
-% To disable the generation of \acro{HTML} description meta tags,
+% To disable the generation of \HTML\ description meta tags,
 % \margintag{disabling}
 % use:\\
 % \hspace*{1em} |\NewCSSdescription{}|
 %
 %
+% \subsection{HTML page meta author}
+%
+% \index{HTML>meta tag>author}
+% \index{author>HTML meta tag}
+% \index{meta tag, HTML>author}
+% \DescribeMacro{\HTMLauthor} \marg{author} \quad Sets the contents
+%	of the web page \tag{meta name="author"} tag.
+%	Defaults to |\HTMLauthor{\theauthor}|.
+%	May be set empty to cancel the meta author tag.
+%
+%
 % \subsection{CSS}
 %
 % \label{sec:projectcss}
 % \DescribeFile{lwarp.css}\DescribeFile{project.css}\DescribeFile{sample_project.css}\label{sec:lwarpcss}It is best
-% to make a local project-specific \acro{CSS} file such as |project.css|, containing only
+% to make a local project-specific \CSS\ file such as |project.css|, containing only
 % things which are different from |lwarp.css|.
 % |project.css| should refer to |lwarp.css| as follows:
 %	\index{CSS>project-specific changes}\index{CSS>lwarp.css}
-%	\index{settings>\acro{CSS} project-specific}
+%	\index{settings>\CSS\ project-specific}
 % \vspace{-2ex}
 % \VerbatimInput[frame=lines]{sample_project.css}
 %
@@ -3166,10 +3437,10 @@
 % \label{sec:setcss}
 %
 % \DescribeMacro{\NewCSS}
-% For each section at which \acro{HTML} files are split,
-% |\NewCSS| may be used before the sectioning command to select a \acro{CSS} file for that and all
+% For each section at which \HTML\ files are split,
+% |\NewCSS| may be used before the sectioning command to select a \CSS\ file for that and all
 % following sections.  This may be changed numerous times throughout the file, resulting in
-% different \acro{HTML} pages having different \acro{CSS} files assigned.
+% different \HTML\ pages having different \CSS\ files assigned.
 % \index{CSS>file selection}
 % \index{CSS>per HTML page}
 % \index{settings>CSS selection}
@@ -3217,6 +3488,11 @@
 % \limitstabular
 %
 %
+% \subsubsection{Longtable}
+%
+% \limitslongtable
+%
+%
 % \subsubsection{Save Boxes}
 %
 % \changes{v0.27}{2017/04/04}{Docs: Limitations of saveboxes.}
@@ -3299,6 +3575,12 @@
 % \limitsbabeltwo
 %
 % 
+% \subsubsection{\pkg{glossaries} package}
+%
+% \DescribePackage{glossaries}
+% \limitsglossaries
+%
+%
 % \subsubsection{\pkg{enumitem} package}
 %
 % \DescribePackage{enumitem}
@@ -3312,11 +3594,196 @@
 %
 %
 %
-% \section{Expanding the code base}
+%
+%
+% \clearpage
+%
+% \section{EPUB conversion}
+% \label{sec:epub}
+%
+% \pkg{lwarp} does not produce \EPUB\ documents,
+% but it may be told to modify its \HTML\ output
+% to greatly assist in the conversion.
+% An external program may then be used to finish the conversion
+% to \EPUB.
+%
+% To assign the author's name for regular \pkg{lwarp} \HTML\
+% \margintag{\tag{meta} author}
+% files, and also for the \EPUB,
+% use \cs{HTMLauthor} \marg{name}.  This assigns the name to the
+% \tag{meta} author tag.  It may be set empty, and it defaults to
+% \cs{theauthor}.
+%
+% A special boolean is provided to simplify the process of
+% converting \pkg{lwarp} \HTML\ output to \EPUB:
+%
+% \DescribeBoolean{FormatEPUB}
+% \begin{docsidebar}
+%	\raggedright
+%	Default false.
+%	|FormatEPUB| changes \HTML\ output for easy \EPUB\ conversion
+%	via an external program. Removes per-file headers, footers, and nav.
+%	Adds footnotes per chapter/section.
+% \end{docsidebar}
+%	\index{EPUB>HTML conversion settings}
+%	\index{HTML>conversion settings>EPUB}
+%
+% To help convert \pkg{lwarp} \HTML\ output to \EPUB, add
+%	\begin{sourcedisplay}
+%	|\booltrue{FormatEPUB}|
+%	\end{sourcedisplay}
+% to the project's source preamble after |\usepackage{lwarp}|.
+% The \EPUB\ version of the document cannot co-exist with the
+% regular \HTML\ version, so \userentry{lwarpmk cleanall} then
+% \userentry{lwarpmk html}
+% to recompile with the |FormatEPUB| boolean turned on.
+% Several changes are then made to the \HTML\ output:
+%	\begin{itemize}
+%	\item Headers, footers, and navigation are removed at file splits.
+%	\item Any accumulated footnotes are printed at the bottom of each file split.
+%	\end{itemize}
+%
+% The resulting files will be ready to be loaded into an \EPUB\ conversion
+% program, such as the open-source program Calibre (\url{https://calibre-ebook.com/}).
+% \index{Calibre}\index{EPUB>conversion software}\margintag{Calibre}
+%
+% The \EPUB\ conversion program must know what order the files are included.
+% For \pkg{lwarp} projects, set the \EPUB\ conversion software to
+% \watchout[search order]
+% do a breadth-first search of the files.
+% For Calibre, this option is found in
+% \begin{UIdisplay}
+%	\textsf{Preferences $\to$ Plugins $\to$ File type plugins $\to$ HTML to Zip}
+% \end{UIdisplay}
+% Check the box \textsf{Add linked files in breadth first order.}
+% 
+% The \EPUB-conversion program must also know where the section breaks are located.
+% \watchout[section breaks]
+% For a list of \pkg{lwarp}'s section headings,
+% see \cref{tab:depthsheadings}.
+% For example, an |article|
+% class document would break at \cs{section}, which is mapped to \HTML\
+% heading level \tag{h4}, whereas a |book| class document would break at \cs{chapter},
+% which is \HTML\ heading level \tag{h3}.
+% For Calibre, this option is found in
+% \begin{UIdisplay}
+%	\textsf{Preferences $\to$ Conversion (Common Options) $\to$
+%	Structure Detection $\to$ Detect chapters at (XPath expression)}
+% \end{UIdisplay}
+% Select the ``magic wand'' to the right of this entry box, and set
+% the first entry
+% \begin{UIdisplay}
+%	Math HTML tags with tag name:
+% \end{UIdisplay}
+% to \tag{h4}.  (Or \tag{h3} for document classes with \cs{chapter}s.)
+% The \textsf{Detect chapters at} field should then show
+% \begin{UIdisplay}
+%	//h:h4 \qquad \textrm{---\,or\,---} \qquad //h:h3
+% \end{UIdisplay}
+%
+% This option is also available on the main tool bar at the \textsf{Convert books}
+% button.
+%
+% Once these settings have been made, the \pkg{lwarp}-generated \HTML\ files
+% may be loaded by Calibre, and then converted to an \EPUB.
+%
+% \begin{docsidebar}[MathJax support]
+% MathJax may be used in \EPUB\ documents.
+% Some e-readers include MathJax, but any given reader
+% may or may not have a recent version, and may or may not include
+% extensions such as support for \pkg{siunitx}.
+%
+% \pkg{lwarp} adds some modifications to \MathML\ to support equations numbered
+% by chapter.  These modifications may not be compatible with the e-reader's
+% version of MathJax, so \pkg{lwarp} requests that a known version be loaded
+% instead.  In some cases chapter numbering of equations still doesn't work.
+%
+% Until math support in \EPUB\ documents is improved, it is recommended to use
+% \SVG\ images instead of MathJax, especially for equations numbered by chapter,
+% or where \pkg{siunitx} support is important.
+% \end{docsidebar}
+%
+%
+%
+%
+% \clearpage
+%
+% \section{Word-processor conversion}
+%
+% \pkg{lwarp} may be told to modify its \HTML\ output to make it
+% easier to import the \HTML\ document into a word processor.
+% At the time of this writing, it seems that LibreOffice works best at
+% preserving table layout, but it still has some limitations, such as
+% an inability to automatically assign figure and table
+% frames and captions according to user-selected \HTML\ classes.
+% \pkg{lwarp} provides some assistance in locating these frame boundaries,
+% as shown below.
+%
+%
+% A special boolean is provided to simplify the process of
+% converting \pkg{lwarp} \HTML\ output to \EPUB:
+%
+% \DescribeBoolean{FormatWordProcessor}
+% \begin{docsidebar}
+%	\raggedright
+%	Default false.
+%	Changes \HTML\ output for easier conversion
+%	by a word processor.
+%	Removes headers and nav, prints footnotes per section,
+%	and also forces single-file output and turns off \HTML\ debug
+%	comments.
+%	\end{docsidebar}
+%	\index{word processor>HTML conversion settings}
+%	\index{HTML>conversion settings>word processor}
+%
+% To help modify \pkg{lwarp} \HTML\ output for easier
+% import to a word processor, add
+%	\begin{sourcedisplay}
+%	|\booltrue{FormatWordProcessor}|
+%	\end{sourcedisplay}
+% to the project's source preamble after \pkg{lwarp} is loaded.
+% Several changes are then made to the \HTML\ output:
+%	\begin{itemize}
+%	\item Headers, footers, and navigation are removed at file splits.
+%	\item Any accumulated footnotes are printed at the bottom of each file split.
+%		These will have to be manually moved to their proper place in
+%		the document.  \pkg{lwarp} does not know where the page breaks
+%		will be in the word processor's document, so the footnotes are
+%		simply moved to the end of each sectional break.
+%	\item Forces single-file output.
+%	\item Turns off \HTML\ debugging comments.
+%		These are comments appearing inside the \HTML\ code,
+%		marking the opening/closing of sections and \tag{div}s,
+%		but they are no longer useful when the document has been
+%		imported into a word processor.
+%	\end{itemize}
+%
+% An additional boolean may be set to help mark float boundaries:
+%
+% \DescribeBoolean{HTMLMarkFloats}
+%	\begin{docsidebar}
+%	\raggedright
+%	Default true.
+%	Adds |=== table begin| or |=== figure begin|, and |=== end|
+%	around floats while formatting for word processors.
+%	This helps identify boundaries of floats to be manually converted
+%	to word-processor frames.
+%	\end{docsidebar}
+%	\index{word processor>HTML conversion settings}
+%	\index{HTML>conversion settings>word processor}
+%
+% When enabled, markers are placed around each float, helping the
+% user to identify float boundaries for further conversion to
+% word processor frames and captions.
+%
+%
+% \clearpage
+%
+% \section{Modifying \protect\pkg{lwarp}}
 % \pagestyle{pageheadfoot}
 %
 % Purely text-based packages probably will work as-is when generating
-% \acro{HTML}.
+% \HTML.
 %
 % Look to existing code for ideas on how to expand into new code.
 %
@@ -3324,17 +3791,17 @@
 % with an image of the resulting \LaTeX{} output.
 % See \cref{sec:picture} for an example of the |picture| environment.
 %
-% To create a custom \acro{HTML} block or inline \acro{CSS} class,
+% To create a custom \HTML\ block or inline \CSS\ class,
 % see \cref{sec:highlevelclasses}.
 %
-% \subsection{Creating an lwarp version of a package}
+% \subsection{Creating an \protect\pkg{lwarp} version of a package}
 %
-% When creating \acro{HTML},
+% When creating \HTML,
 % \pkg{lwarp} redefines the \cs{usepackage} and \cs{RequirePackage}
 % macros such that it first looks to see if a |lwarp-<packagename>.sty|
 % version exists.  If so, the \pkg{lwarp} version is used instead.
 % This modular system allows users to create their own
-% versions of packages for \pkg{lwarp} to use for \acro{HTML}, simply by creating
+% versions of packages for \pkg{lwarp} to use for \HTML, simply by creating
 % a new package with a |lwarp-| prefix.  If placed in the local
 % directory along with the source code, it will be seen by that project
 % alone.  If placed alongside the other |lwarp-| packages where \TeX\
@@ -3341,9 +3808,9 @@
 % can see it, then the user's new package will be seen by any documents
 % using \pkg{lwarp}.  (Remember |mktexlsr| or |texhash|.)
 %
-% An |lwarp-<packagename>.sty| package is only used during \acro{HTML}
+% An |lwarp-<packagename>.sty| package is only used during \HTML\
 % generation.  Its purpose is to pretend to be the original package,
-% while modify anything necessary to create a successful \acro{HTML} conversion.
+% while modify anything necessary to create a successful \HTML\ conversion.
 % For many packages it is sufficient to simply provide nullified macros,
 % lengths, counters, etc. for anything which the original package does,
 % while passing the raw text on to be typeset.  See the pre-existing
@@ -3356,18 +3823,18 @@
 % In many of these packages, most of the new definitions have a ``local'' prefix
 % according to the package name, and |@| characters inside the name,
 % which hides these names from the user.  In most cases these macros
-% will not need to be emulated for \acro{HTML} output.  Only the ``user-facing''
+% will not need to be emulated for \HTML\ output.  Only the ``user-facing''
 % macros need to be nullified or emulated.
 %
 % Each |lwarp-| package should first call either \cs{LWR at ProvidesPackageDrop}
 % or \cs{LWR at ProvidesPackagePass}.  If |Drop|ped, the original print-version
 % package is ignored, and only the |lwarp-| version is used.
-% Use this where the original print version is useless for \acro{HTML}.
+% Use this where the original print version is useless for \HTML.
 % If |Pass|ed, the original package is loaded first, with the user-supplied options,
 % then the |lwarp-| version continues loading as well.
 % See \cref{sec:ntheorem} (\nameref{sec:ntheorem})
 % for an example of selectively disabling user options for a package.
-% Use this when \acro{HTML}
+% Use this when \HTML\
 % output only requires some modifications of the original package.
 % For a case where the original package is usable without changes, there is no
 % need to create a |lwarp-| version.
@@ -3378,8 +3845,8 @@
 % \changes{v0.25}{2017/03/22}{Docs: Testing \protect\pkg{lwarp}.}
 %
 % When changes have been made, test the print output before testing the
-% \acro{HTML}.  The print output compiles faster, and any errors in the printed
-% version will be easier to figure out than the \acro{HTML} version.
+% \HTML.  The print output compiles faster, and any errors in the printed
+% version will be easier to figure out than the \HTML\ version.
 %
 % The package \pkg{lwarp-newproject} must be loaded to set up the configuration
 % files, but may be commented out from then on unless the configuration changes.
@@ -3389,14 +3856,68 @@
 % printed version of the document, and when \pkg{lwarp-newproject} is enabled.
 %
 % Sometimes it is worth checking the |<project>_html.pdf| file, which is the
-% \acro{PDF} containing \acro{HTML} tags.  Also, |<project>_html.html| has
+% \PDF\ containing \HTML\ tags.  Also, |<project>_html.html| has
 % the text conversion of these tags, before the file is split into individual
-% \acro{HTML} files.
+% \HTML\ files.
 %
 % It is also worth checking the browser's tools for verifying the correctness
-% of \acro{HTML} and \acro{CSS} code.
+% of \HTML\ and \CSS\ code.
 %
 %
+% \subsection{Modifying \protect\texttt{lwarpmk}}
+%
+% \changes{v0.28}{2017/04/14}{Docs: Modfying lwarpmk and index processing.}
+%
+% \DescribeProgram{lwarpmk}
+% \DescribeFile{lwarpmk.lua}
+% In most installations, |lwarpmk.lua| is an executable file located somewhere
+% \index{lwarpmk>customizing}
+% the operating system knows about, and it is called by typing ``|lwarpmk|'' into
+% a terminal.
+%
+% A project-local copy of |lwarpmk.lua| may be generated, modified, and then used to
+% compile documents:
+% \begin{enumerate}
+% \item Add the |lwarpmk| option to the \pkg{lwarp-newproject} package.
+% \item Recompile the printed version of the document.
+%	The |lwarpmk| option causes \pkg{lwarp-newproject} to create a local
+%	copy of |lwarpmk.lua|
+% \item The |lwarpmk| option may now be removed from the \pkg{lwarp-newproject} package.
+% \item Copy and rename |lwarpmk.lua| to a new file such as |mymake.lua|.
+% \item Modify |mymake.lua| as desired.
+% \item If necessary, make |mymake.lua| executable.
+% \item Use |mymake.lua| instead of |lwarpmk.lua|.
+% \end{enumerate}
+%
+% To adjust the command-line arguments for compiling the document,
+% look in |mymake.lua| for ``|latexname|''.
+%
+% To adjust the command-line arguments for processing the index,
+% look for ``|xindy|''.
+%
+%
+% \subsection{Modifying \protect\texttt{xindy} index processing}
+%
+% \DescribeProgram{xindy}
+% \DescribeFile{lwarp_html.xdy}
+% \index{lwarp\_html.xdy>customizing}
+% \index{xindy>customizing}
+% \pkg{lwarpmk} uses the file |lwarp_html.xdy| to process the index.
+% This file is over-written by \pkg{lwarp-newproject} whenever a print version of
+% the document is processed.
+%
+% To customize index processing:
+% \begin{enumerate}
+% \item Copy |lwarp_html.xdy| to a new filename such as |projectname.xdy|
+% \item Make changes to |projectname.xdy|
+% \item Make a new version of |lwarpmk|, as previously described,
+%	which uses |xindy| with |projectname.xdy| instead of |lwarp_html.xdy|.
+% \end{enumerate}
+%
+%
+%
+% \clearpage
+%
 % \section{Troubleshooting}
 % \label{sec:troubleshooting}
 % \index{FAQ}\index{Frequently Asked Questions}\index{bugs}
@@ -3417,12 +3938,12 @@
 %
 % \item [Text is not converting:] ~
 %	\begin{itemize}
-%	\item Font-related UTF-8 information must be embedded in the \acro{PDF} file.
+%	\item Font-related UTF-8 information must be embedded in the \PDF\ file.
 %		See \cref{sec:fonts} regarding vector fonts.
 %	\end{itemize}
 %
-% \item [Undefined HTML settings:] \
-%	\item See the warning regarding the placement of the \acro{HTML} settings
+% \item [Undefined \HTML\ settings:] \
+%	\item See the warning regarding the placement of the \HTML\ settings
 %		at \cref{sec:htmlsettings}.
 %
 % \item [Obscure error messages:] ~
@@ -3429,7 +3950,7 @@
 %	\begin{itemize}
 %	\item Be sure that a print version of the document compiles and
 %		that your document's \LaTeX{} code is correct, before attempting
-%		to generate an \acro{HTML} version.
+%		to generate an \HTML\ version.
 %	\end{itemize}
 %
 % \item [Missing sections:] ~
@@ -3439,8 +3960,8 @@
 %		and the use of \cs{tableofcontents} in the home page.
 %	\end{itemize}
 %
-% \item [Missing HTML files:] \
-%	\item See the warning regarding changes to the \acro{HTML} settings
+% \item [Missing \HTML\ files:] \
+%	\item See the warning regarding changes to the \HTML\ settings
 %		at \cref{sec:htmlsettings}.
 %
 % \item [Missing / incorrect cross-references:] ~
@@ -3462,7 +3983,7 @@
 %		the captions |above| or |below| to match their use in the source code.
 %	\end{description}
 %
-% \item [Print document contains HTML tags:] ~
+% \item [Print document contains \HTML\ tags:] ~
 %	\begin{itemize}
 %	\item Be sure that the document
 %		selects |\usepackage[warpprint]{lwarp}| instead of |[warpHTML]|.
@@ -3487,14 +4008,14 @@
 %
 % \item [Plain-looking document:] ~
 %	\begin{itemize}
-%	\item The document's \acro{CSS} stylesheet may not be available, or may be
+%	\item The document's \CSS\ stylesheet may not be available, or may be
 %		linked incorrectly.  Verify any \cs{NewCSS} statements point to
-%		a valid \acro{CSS} file.
+%		a valid \CSS\ file.
 %	\end{itemize}
 %
 % \item [Broken fragments of HTML:] ~
 %	\begin{itemize}
-%	\item Check the \acro{PDF} file used to create \acro{HTML}
+%	\item Check the \PDF\ file used to create \HTML\
 %		to see if the tags overflowed the margin.
 %		(This is why such large page size and margins are used.)
 %	\end{itemize}
@@ -3505,9 +4026,9 @@
 %		You may have been looking at an older version of the document.
 %		If you changed a section name, you may have been looking at
 %		the file for the old name.
-%	\item See the warning regarding changes to the \acro{HTML} settings
+%	\item See the warning regarding changes to the \HTML\ settings
 %		at \cref{sec:htmlsettings}.
-%	\item Verify that the proper \acro{CSS} is actually being used.
+%	\item Verify that the proper \CSS\ is actually being used.
 %	\item The browser may compensate for some subtle changes, such as
 %		automatically generating ligatures, reflowing text, etc.
 %	\end{itemize}
@@ -3575,15 +4096,15 @@
 % The author is open to ideas and suggestions.
 %
 % Packages were patched for re-use where they provided significant functionality.
-% Examples include \pkg{xcolor} with its color models and conversion to \acro{HTML}
+% Examples include \pkg{xcolor} with its color models and conversion to \HTML\
 % color output, and \pkg{siunitx} which provides many number and unit-formatting
 % options, almost all of which are available in pure-text form, and thus
 % easily used by \cmds{pdftotext}.
 %
 % Packages were emulated where their primary purpose was visual formatting which is not
-% relevent to \acro{HTML} output.  For example, packages related to sectioning
+% relevent to \HTML\ output.  For example, packages related to sectioning
 % are already patched by numerous other packages, creating a difficult number of
-% combinations to try to support, and yet in \acro{HTML} output all of the
+% combinations to try to support, and yet in \HTML\ output all of the
 % formatting is thrown away, so these packages are merely emulated.
 %
 % Packages with graphical output are allowed as-is, but must be nested inside a
@@ -3604,7 +4125,7 @@
 % \index{section>depths}\index{stack depths}
 %
 % Stacks are created to track depth inside the \LaTeX{} document structure.
-% This depth is translated to \acro{HTML} headings as shown
+% This depth is translated to \HTML\ headings as shown
 % in \cref{tab:depthsheadings}.
 % ``Depth'' here is not
 % depth in the traditional computer-science stack-usage sense, but rather a
@@ -3611,13 +4132,13 @@
 % representation of the nesting depth inside the \LaTeX{} document structure.
 %
 % When starting a new section, the program first must close out any existing
-% sections and lists of a deeper level to keep the \acro{HTML} tags nested correctly.
+% sections and lists of a deeper level to keep the \HTML\ tags nested correctly.
 %
 % \begin{table}
 % \caption{Section depths and HTML headings\label{tab:depthsheadings}}
 % \begin{tabular}{lcl}
 % \toprule
-% Section & \parbox[c]{.35in}{\LaTeX{} depth} & \acro{HTML} headings \\
+% Section & \parbox[c]{.35in}{\LaTeX{} depth} & \HTML\ headings \\
 % \midrule
 % title of the entire website & & h1 \\
 % none			& -5	& new for this package \\
@@ -3634,13 +4155,16 @@
 % \end{tabular}
 % \end{table}
 %
-% Support for the \pkg{memoir} package will require the addition of a \cmds{book}
-% level, which will push the \acro{HTML} headings down a step, and also cause \cmds{subsubsection}
-% to become a \cmds{div} due to a limit of six \acro{HTML} headings.
+% Support for the \pkg{memoir} package will require the addition of a |book|
+% level, which may push the \HTML\ headings down a step, and also cause
+% |subsubsection| to become a \tag{div} due to a limit of six \HTML\ headings.
 %
-% It is possible to use \htmlfive{} \cmds{section} and \cmds{H1} for all levels,
+% It is possible to use \HTMLfive{} \cmds{section} and \cmds{H1} for all levels,
 % but this may not be well-recognized by older browsers.
 %
+% Fixed levels for parts and chapters allow the \CSS\ to remain fixed as well.
+%
+%
 % \clearpage
 %
 % 
@@ -3763,15 +4287,18 @@
 % \DescribeBoolean{warpingprint}
 % \DescribeBoolean{warpingHTML}
 % \DescribeBoolean{mathjax}
+%
 % Set to true/false depending on the package option selections for
-% print/\acro{HTML} output and mathsvg/mathjax:
+% print/\HTML/\EPUB\ output and mathsvg/mathjax:
 %    \begin{macrocode}
 \newbool{warpingprint}
 \newbool{warpingHTML}
 \newbool{mathjax}
 %    \end{macrocode}
-
-
+%
+%
+%
+%
 % \begin{macro}{\warpprintonly} \marg{contents}
 %
 % Only process the contents if producing printed output.
@@ -3784,7 +4311,7 @@
 %
 % \begin{macro}{\warpHTMLonly} \marg{contents}
 %
-% Only process the contents if producing \acro{HTML} output.
+% Only process the contents if producing \HTML\ output.
 % \changes{v0.19}{2016/06/06}{Added.}
 %    \begin{macrocode}
 \newcommand{\warpHTMLonly}[1]{\ifbool{warpingHTML}{#1}{}}
@@ -3795,7 +4322,7 @@
 
 
 % \begin{environment}{warpall}
-% Anything in the |warpall| environment will be generated for print or \acro{HTML} outputs.
+% Anything in the |warpall| environment will be generated for print or \HTML\ outputs.
 %    \begin{macrocode}
 \includecomment{warpall}
 %    \end{macrocode}
@@ -3823,7 +4350,7 @@
 % \end{environment}
 
 % \begin{environment}{warpHTML}
-% Anything in the |warpHTML| environment will be generated for \acro{HTML} output only.
+% Anything in the |warpHTML| environment will be generated for \HTML\ output only.
 %
 % \DescribeOption[lwarp]{warpHTML}
 % If the |warpHTML| option is given, boolean |warpingHTML| is true and boolean |warpingprint| is false,
@@ -3847,7 +4374,7 @@
 %
 % \changes{v0.19}{2016/05/25}{Options: mathsvg and mathjax}
 % \DescribeOption[lwarp]{mathsvg}
-% Option |mathsvg| selects \acro{SVG} math display:
+% Option |mathsvg| selects \SVG\ math display:
 % \index{math>mathsvg option}
 % \index{SVG>mathsvg option}
 % If the |mathsvg| option is given, boolean |mathjax| is false, and may be used for |\ifbool| tests.
@@ -3874,7 +4401,7 @@
 % Option |BaseJobname| sets the \cs{BaseJobname} for this document.
 %
 % This is the \cs{jobname} of the printed version, even if currently
-% compiling the \acro{HTML} version.
+% compiling the \HTML\ version.
 % I.e. this is the \cs{jobname} without |_html| appended.
 % This is used to set \cs{HomeHTMLFileName} if the user did not provide one.
 %    \begin{macrocode}
@@ -3883,8 +4410,19 @@
 
 
 
+% \DescribeOption[lwarp]{lwarpmklang} Sets the language to be assigned
+%	in |lwarpmk|'s configuration files.  This is then used by |lwarpmk| while
+%	processing the glossary.
+%
+% \changes{v0.29}{2017/04/15}{Add: \protect\texttt{lwarpmklang} option for \pkg{lwarp}.}
+%
+%    \begin{macrocode}
+\DeclareStringOption[english]{lwarpmklang}
+%    \end{macrocode}
+
+
 % The default is print output,
-% and \acro{SVG} math if the user chose \acro{HTML} output.
+% and \SVG\ math if the user chose \HTML\ output.
 %    \begin{macrocode}
 \includecomment{warpprint}%
 \excludecomment{warpHTML}%
@@ -3924,8 +4462,10 @@
 % Several packages should only be loaded before \pkg{lwarp}, and
 % others should only be loaded after.
 %
-% Packages which should only be loaded before \pkg{lwarp} have their own \\
-% \hspace*{2em}|lwarp-<packagename>.sty| \\
+% Packages which should only be loaded before \pkg{lwarp} have their own
+%	\begin{sourcedisplay}
+%	|lwarp-<packagename>.sty|
+%	\end{sourcedisplay}
 % which will trigger an error if they are loaded after
 % \pkg{lwarp}.
 % Examples include \pkg{fontspec}, \pkg{inputenc}, \pkg{fontenc},
@@ -4017,6 +4557,7 @@
 \LWR at loadafter{floatflt}
 \LWR at loadafter{ftnright}
 \LWR at loadafter{geometry}
+\LWR at loadafter{glossaries}
 % \LWR at loadafter{graphics}% pre-loaded by xunicode
 % \LWR at loadafter{graphicx}% pre-loaded by xunicode
 \LWR at loadafter{hyperref}
@@ -4057,6 +4598,7 @@
 \LWR at loadafter{soul}
 \LWR at loadafter{subfig}
 \LWR at loadafter{tabularx}
+\LWR at loadafter{tabulary}
 \LWR at loadafter{textpos}
 \LWR at loadafter{theorem}
 \LWR at loadafter{threeparttable}
@@ -4085,7 +4627,7 @@
 % \changes{v0.16}{2016/04/08}{Lwarp no longer selects fonts.}
 
 % These packages are automatically loaded by \pkg{lwarp} when generating
-% \acro{HTML} output.  Some of them are also automatically loaded when
+% \HTML\ output.  Some of them are also automatically loaded when
 % generating print output, but some are not.
 %
 % In the document preamble, create a \env{warpprint} environment, and place
@@ -4151,7 +4693,7 @@
 % ^^A     \setmainfont{DejaVu Serif}
 % ^^A     \setsansfont{DejaVu Sans}
 % ^^A     \setmonofont{DejaVu Sans Mono}
-% The monospaced font is used for \acro{HTML} tags,
+% The monospaced font is used for \HTML\ tags,
 % so turn off its TeX ligatures and common ligatures:
 %    \begin{macrocode}
 \defaultfontfeatures[\rmfamily]{Ligatures={NoCommon,TeX}}
@@ -4179,7 +4721,7 @@
 % ^^A % \pdflatexonly
 % ^^A %
 % ^^A % |pdftotext| works better with a vector font.
-% ^^A % This font choice does not control the HTML file, but it does appear in the
+% ^^A % This font choice does not control the \HTML\ file, but it does appear in the
 % ^^A % images generated from math expressions.
 % ^^A %    \begin{macrocode}
 % ^^A \RequirePackage{lmodern}
@@ -4208,7 +4750,7 @@
 %
 
 % \DescribePackage{microtype}
-% \changes{v0.18}{2016/05/18}{Microtype disabled during HTML generation}
+% \changes{v0.18}{2016/05/18}{Microtype disabled during \HTML\ generation}
 %
 % Older browsers don't
 % \index{ligatures}
@@ -4288,13 +4830,15 @@
 % Tactics to avoid unwanted page breaks and margin overflow:
 % \begin{itemize}
 % \item Uses a very long and wide page to minimize page breaks and margin overflow.
-% \item Will also use a scriptsize font.
-% \item Also uses extra space at the margin to avoid \acro{HTML} tag overflow off the page.
-% \item Will also force a new page before environments.
+% \item Uses a scriptsize font.
+% \item Uses extra space at the margin to avoid \HTML\ tag overflow off the page.
+% \item Forces a new PDF page before some environments.
+% \item Forces line break between major pieces of long tags.
 % \end{itemize}
 %
 % \changes{v0.20}{2017/01/12}{Page geometry set to 6in wide with large margins.}
 % \changes{v0.27}{2017/04/04}{Page geometry modified to reduce line overflow.}
+% \changes{v0.28}{2017/04/13}{Forced oneside to maintain large right margin.}
 %
 % \codehtml
 %    \begin{macrocode}
@@ -4303,6 +4847,8 @@
 left=2in,right=12in,%
 top=1in,bottom=1in,%
 ]{geometry}
+\@twosidefalse
+\@mparswitchfalse
 \end{warpHTML}
 %    \end{macrocode}
 
@@ -4460,7 +5006,7 @@
 
 % \DescribePackage{enumitem}
 %
-% \pkg{enumitem} is patched to support |\newlist| with \acro{HTML}.
+% \pkg{enumitem} is patched to support |\newlist| with \HTML.
 %    \begin{macrocode}
 \RequirePackage{enumitem}
 \setlist[itemize]{leftmargin=0em}
@@ -4507,7 +5053,7 @@
 % \DescribePackage{amsmath}
 % \changes{v0.16}{2016/04/09}{Fix: amsmath options clash}
 %
-% Equation numbers are placed to the left for \acro{HTML}.
+% Equation numbers are placed to the left for \HTML.
 %
 % \pkg{newtxmath} automatically loads \pkg{amsmath},
 % so the options |leqno| and |fleqn| are passed beforehand to be
@@ -4522,7 +5068,7 @@
 
 % \DescribePackage{environ}
 %
-% Used to encapsulate math environments for re-use in \acro{HTML} ALT text.
+% Used to encapsulate math environments for re-use in \HTML\ ALT text.
 %
 %    \begin{macrocode}
 \RequirePackage{environ}
@@ -4537,12 +5083,12 @@
 % \DescribePackage{titleps}
 % \changes{v0.19}{2016/05/27}{titleps: null \cs{pagestyle} and \cs{thispagestyle} for HTML.}
 %
-% Used to place an \acro{HTML} comment into the footer of a page below the footnotes.
+% Used to place an \HTML\ comment into the footer of a page below the footnotes.
 % This comment is used for |lateximage| environments, including math.
 %
 % The |nopatches| option prevents titleps from trying to patch sectioning commands.
 %
-% \cs{pagestyle} and \cs{thispagestyle} are nullified for \acro{HTML} output.
+% \cs{pagestyle} and \cs{thispagestyle} are nullified for \HTML\ output.
 %
 %    \begin{macrocode}
 \RequirePackage[nopatches]{titleps}
@@ -4573,7 +5119,7 @@
 
 % \DescribePackage{xfrac}
 %
-% Patched for \acro{HTML} use.
+% Patched for \HTML\ use.
 % See \cref{sec:xfrac}.
 
 %    \begin{macrocode}
@@ -4602,7 +5148,7 @@
 
 
 
-% \section{Loading Packages}
+% \section{Loading packages}
 %
 %
 % \codehtml
@@ -4758,8 +5304,8 @@
 
 % \begin{macro}{\LWR at copyfile} \marg{source filename} \marg{destination filename}
 %
-% Used to copy the |.toc| file to |.sidetoc| to re-print the \acro{TOC} in
-% the side\acro{TOC} navigation pane.
+% Used to copy the |.toc| file to |.sidetoc| to re-print the \TOC\ in
+% the side\TOC\ navigation pane.
 %    \begin{macrocode}
 \newcommand*{\LWR at copyfile}[2]{%
 \newwrite\copyfile  % open the file to write to
@@ -4787,6 +5333,10 @@
 
 % \section{Debugging messages}
 
+%    \begin{macrocode}
+\begin{warpall}
+%    \end{macrocode}
+
 % \DescribeBoolean{LWR at tracinglwarp} True if tracing is turned on.
 %    \begin{macrocode}
 \newbool{LWR at tracinglwarp}
@@ -4814,7 +5364,83 @@
 % \end{macro}
 
 
+% \DescribeBoolean{HTMLDebugComments} Default false.
+%	Add comments in \HTML\
+%	about closing \tag{div}s, sections, etc.
+%	\index{HTML>conversion settings>debug comments}
+%	\index{debugging>HTML debug comments}
+%	\index{troubleshooting>HTML debug comments}
+%
+% \changes{v0.28}{2017/04/09}{Added boolean \texttt{HTMLDebugComments.}}
+%
+%    \begin{macrocode}
+\newbool{HTMLDebugComments}
+\boolfalse{HTMLDebugComments}
+%    \end{macrocode}
 
+
+
+
+% \section{HTML-conversion output modifications}
+%
+% These booleans modify the \HTML\ output in various ways
+% to improve conversion to \EPUB\ or word processor imports.
+%
+%
+% \DescribeBoolean{FormatEPUB}  Default false.
+%	Changes \HTML\ output for easy \EPUB\ conversion
+%	via an external program. Removes per-file headers, footers, and nav.
+%	Adds footnotes per chapter/section.
+%	\index{EPUB>HTML conversion settings}
+%	\index{HTML>conversion settings>EPUB}
+%
+% \changes{v0.28}{2017/04/09}{Added boolean \texttt{FormatEPUB}.}
+%
+%    \begin{macrocode}
+\newbool{FormatEPUB}
+\boolfalse{FormatEPUB}
+%    \end{macrocode}
+%
+%
+% \DescribeBoolean{FormatWordProcessor} Default false.
+%	Changes \HTML\ output for easier conversion
+%	by a word processor.
+%	Removes headers and nav, prints footnotes per section,
+%	and also forces single-file output and turns off \HTML\ debug
+%	comments.
+%	\index{word processor>HTML conversion settings}
+%	\index{HTML>conversion settings>word processor}
+%
+% \changes{v0.28}{2017/04/09}{Added boolean \texttt{FormatWordProcessor}.}
+%
+%    \begin{macrocode}
+\newbool{FormatWordProcessor}
+\boolfalse{FormatWordProcessor}
+%    \end{macrocode}
+%
+%
+% \DescribeBoolean{HTMLMarkFloats} Default true.
+%	Adds |=== table begin| or |=== figure begin|, and |=== end|
+%	around floats while formatting for word processors.
+%	This helps identify boundaries of floats to be manually converted
+%	to word-processor frames.
+%	(Perhaps some day word processors will have \HTML\ import options
+%	for identifying \tag{div} classes for figures and tables.)
+%	\index{word processor>HTML conversion settings}
+%	\index{HTML>conversion settings>word processor}
+%
+% \changes{v0.28}{2017/04/09}{Added boolean \texttt{HTMLMarkFloats}}
+%
+%    \begin{macrocode}
+\newbool{HTMLMarkFloats}
+\booltrue{HTMLMarkFloats}
+%    \end{macrocode}
+
+%    \begin{macrocode}
+\end{warpall}
+%    \end{macrocode}
+
+
 % \section{Remembering original formatting macros}
 
 % \codehtml
@@ -4824,7 +5450,7 @@
 
 
 % Remember original definitions of formatting commands.
-% Will be changed to \acro{HTML} commands for most uses.
+% Will be changed to \HTML\ commands for most uses.
 % Will be temporarily restored to original meaning inside any lateximage environment.
 % Also nullify unused commands.
 %    \begin{macrocode}
@@ -5131,8 +5757,10 @@
 % |name| has no backslash, |index| can be a number or a text name,
 % and an empty |value| must be |\relax| instead of empty.
 %
-% To assign an empty value: \\
-% \hspace*{2em}|\LWR at setexparray{name}{index}{\relax}|
+% To assign an empty value:
+%	\begin{sourcedisplay}
+%	|\LWR at setexparray{name}{index}{\relax}|
+%	\end{sourcedisplay}
 %
 % \changes{v0.20}{2017/01/07}{Added single-expansion data arrays.}
 %
@@ -5169,7 +5797,7 @@
 \begin{warpHTML}
 %    \end{macrocode}
 
-% \acro{HTML} entites and \acro{HTML} Unicode entities:
+% \HTML\ entites and \HTML\ Unicode entities:
 %    \begin{macrocode}
 \let\LWR at origampersand\&
 %    \end{macrocode}
@@ -5211,7 +5839,7 @@
 %
 
 % The filename of the homepage is set to |\HomeHTMLFileName.html|.
-% The filenames of additional sections start with |\HTMLFileName|, to which is
+% The filenames of additional sections start with |\HTMLfiveName|, to which is
 % appended a section number or a simplified section name, depending on |FileSectionNames|.
 %
 
@@ -5223,7 +5851,7 @@
 
 % \begin{macro}{\BaseJobname}
 % The \cs{jobname} of the printed version, even if currently
-% compiling the \acro{HTML} version.
+% compiling the \HTML\ version.
 % I.e. this is the \cs{jobname} without |_html| appended.
 % This is used to set \cs{HomeHTMLFileName} if the user did not provide one.
 %    \begin{macrocode}
@@ -5231,14 +5859,14 @@
 %    \end{macrocode}
 % \end{macro}
 
-% \begin{macro}{\HTMLFileName}
+% \begin{macro}{\HTMLfiveName}
 % \changes{v0.19}{2016/05/28}{Docs: Escape filename underscores.}
 % \changes{v0.20}{2016/12/18}{No longer escape underscores.}
-% The prefix for all generated \acro{HTML} files other than the home page,
+% The prefix for all generated \HTML\ files other than the home page,
 % defaulting to empty.  See \cref{sec:filenameexamples}.
 %
 %    \begin{macrocode}
-\providecommand*{\HTMLFileName}{}
+\providecommand*{\HTMLfiveName}{}
 %    \end{macrocode}
 % \end{macro}
 %
@@ -5271,7 +5899,7 @@
 % \end{macro}
 
 % \DescribeBoolean{FileSectionNames}
-% Selects how to create \acro{HTML} file names.
+% Selects how to create \HTML\ file names.
 %
 % Defaults to use section names in the filenames.
 %    \begin{macrocode}
@@ -5292,7 +5920,7 @@
 
 
 % \DescribeCounter{LWR at htmlfilenumber}
-% Records the number of each \acro{HTML} file as it is being created.
+% Records the number of each \HTML\ file as it is being created.
 % Number 0 is the home page.
 %    \begin{macrocode}
 \newcounter{LWR at htmlfilenumber}
@@ -5303,12 +5931,12 @@
 % \begin{macro}{\LWR at htmlsectionfilename} \marg{htmlfilenumber or name}
 %
 % \changes{v0.14}{2016/03/28}{Fix: Links to home page.}
-% \changes{v0.17}{2016/04/11}{Fix: Links when entire doc is one HTML page.}
+% \changes{v0.17}{2016/04/11}{Fix: Links when entire doc is one \HTML\ page.}
 % \changes{v0.20}{2016/09/11}{HTMLFileName: removed additional trailing '-', and may be empty.}
 % \changes{v0.20}{2016/09/11}{Sections called ``Index'' or ``index'' have an underscore
 % prepended to their filenames if no prefix.}
 %
-% Prints the filename for a given section: |\HTMLFileName{}filenumber/name.html|
+% Prints the filename for a given section: |\HTMLfiveName{}filenumber/name.html|
 %    \begin{macrocode}
 \newcommand*{\LWR at htmlsectionfilename}[1]{%
 \LWR at traceinfo{LWR at htmlsectionfilename A}%
@@ -5337,12 +5965,12 @@
 }%
 %    \end{macrocode}
 % For a \LaTeX\ section named ``Index'' or ``index'' without a prefix, create a filename
-% with a leading underscore to avoid colliding with the HTML filename |index.html|:
+% with a leading underscore to avoid colliding with the \HTML\ filename |index.html|:
 %    \begin{macrocode}
 {%
 \LWR at traceinfo{LWR at htmlsectionfilename C \LWR at tempone}%
 \ifthenelse{%
-\equal{\HTMLFileName}{} \AND \equal{\LWR at tempone}{Index} \OR \equal{\LWR at tempone}{index}%
+\equal{\HTMLfiveName}{} \AND \equal{\LWR at tempone}{Index} \OR \equal{\LWR at tempone}{index}%
 }%
 {%
 \LWR at traceinfo{prefixing the index name with an underscore.}%
@@ -5350,7 +5978,7 @@
 %    \end{macrocode}
 % Otherwise, create a filename with the chosen prefix:
 %    \begin{macrocode}
-{\HTMLFileName#1.html}%
+{\HTMLfiveName#1.html}%
 }%
 \LWR at traceinfo{LWR at htmlsectionfilename Z}%
 }
@@ -5398,7 +6026,7 @@
 % \begin{macro}{\LWR at topnavigation}
 %
 % Creates a link to the homepage at the top of the page for use when the window is too
-% narrow for the sidetoc.
+% narrow for the side\TOC.
 %    \begin{macrocode}
 \newcommand*{\LWR at topnavigation}{
 \LWR at htmlelementclassline{nav}{topnavigation}{\LinkHome}
@@ -5409,7 +6037,7 @@
 % \begin{macro}{\LWR at botnavigation}
 %
 % Creates a link to the homepage at the bottom of the page for use when the window is too
-% narrow for the sidetoc.
+% narrow for the side\TOC.
 %    \begin{macrocode}
 \newcommand*{\LWR at botnavigation}{
 \LWR at htmlelementclassline{nav}{botnavigation}{\LinkHome}
@@ -5494,7 +6122,32 @@
 
 
 
+% \section{Forcing a new PDF page}
 
+% \codehtml
+%    \begin{macrocode}
+\begin{warpHTML}
+%    \end{macrocode}
+
+
+% \begin{macro}{\LWR at forcenewpage} New \PDF\ page a before major environment.
+%
+% This is used just before major environments, such as \env{verse}.
+% Reduces the chance of an environment overflowing the \HTML\ \PDF\ output page.
+%
+% \changes{v0.28}{2017/04/13}{Forces new PDF page before major environments.}
+%    \begin{macrocode}
+\newcommand{\LWR at forcenewpage}{%
+\LWR at stoppars\LWR at orignewpage\LWR at startpars%
+}
+%    \end{macrocode}
+%    \begin{macrocode}
+\end{warpHTML}
+%    \end{macrocode}
+% \end{macro}
+
+
+
 % \section{HTML tags, spans, divs, elements}
 
 % \codehtml
@@ -5528,7 +6181,7 @@
 % \subsection{HTML tags}
 
 % \begin{macro}{\LWR at htmltagc} \marg{tag}
-% Break ligatures and use upright apostrophes in \acro{HTML} tags.
+% Break ligatures and use upright apostrophes in \HTML\ tags.
 %
 %|\protect| is in case the tag appears in TOC, LOF, LOT.
 %    \begin{macrocode}
@@ -5603,7 +6256,7 @@
 
 % \begin{macro}{\LWR at htmltag} \marg{tag}
 
-% print an HTML tag: \textless{}tag\textgreater{}
+% Print an \HTML\ tag: \textless{}tag\textgreater{}
 %    \begin{macrocode}
 \newcommand*{\LWR at htmltagb}[1]{%
 \LWR at htmltagc{#1}%
@@ -5619,19 +6272,17 @@
 
 % \subsection{Block tags and comments}
 
-% In the following, |\origtexttt| breaks ligatures, which may not be used for \acro{HTML} codes:
+% In the following, |\origttfamily| breaks ligatures, which may not be used for \HTML\ codes:
 %
 % \begin{macro}{\LWR at htmlopencomment}
 % \begin{macro}{\LWR at htmlclosecomment}
 %    \begin{macrocode}
 \newcommand*{\LWR at htmlopencomment}{%
-% \LWR at origtexttt{\LWR at origtextbf{\LWR at origtextless{}!{-}{-}}}%
-\begingroup\LWR at origttfamily\LWR at origtextless{}!{-}{-}\endgroup%
+{\LWR at origttfamily\LWR at origtextless{}!{-}{-}}%
 }
 
 \newcommand*{\LWR at htmlclosecomment}{%
-% \LWR at origtexttt{\LWR at origtextbf{{-}{-}\LWR at origtextgreater{}}}%
-\begingroup\LWR at origttfamily{-}{-}\LWR at origtextgreater{}\endgroup%
+{\LWR at origttfamily{-}{-}\LWR at origtextgreater{}}%
 }
 %    \end{macrocode}
 % \end{macro}
@@ -5638,10 +6289,16 @@
 % \end{macro}
 
 % \begin{macro}{\LWR at htmlcomment} \marg{comment}
+%
+% \changes{v0.28}{2017/04/13}{Breaks ligatures in \HTML\ comments.}
+%
 %    \begin{macrocode}
 \newcommand{\LWR at htmlcomment}[1]{%
 \LWR at htmlopencomment{}%
-\LWR at origtextrm{#1}%
+{%
+\LWR at origttfamily% break ligatures
+#1%
+}%
 \LWR at htmlclosecomment{}}
 %    \end{macrocode}
 % \end{macro}
@@ -5658,7 +6315,7 @@
 %    \end{macrocode}
 % \end{macro}
 
-% \begin{macro}{\LWR at htmlblocktag} \marg{tag}  print a stand-alone \acro{HTML} tag
+% \begin{macro}{\LWR at htmlblocktag} \marg{tag}  print a stand-alone \HTML\ tag
 %    \begin{macrocode}
 \newcommand*{\LWR at htmlblocktag}[1]{%
 \LWR at stoppars%
@@ -5668,20 +6325,10 @@
 %    \end{macrocode}
 % \end{macro}
 
-% \begin{macro}{\LWR at htmlblocktagcomment} \marg{tag} \marg{HTML comment}
-%    \begin{macrocode}
-\NewDocumentCommand{\LWR at htmlblocktagcomment}{m +m}{%
-\LWR at stoppars%
-\LWR at htmltag{#1}\LWR at htmlcomment{#2}\LWR at orignewline%
-\LWR at startpars%
-}
-%    \end{macrocode}
-% \end{macro}
 
 
 % \subsection{Div class and element class}
 
-
 % \begin{macro}{\LWR at subhtmlelementclass} \marg{element} \marg{class} \oarg{style}
 %
 % Factored and reused in several places.
@@ -5721,7 +6368,9 @@
 \newcommand*{\LWR at htmlelementclassend}[2]{%
 \LWR at stoppars%
 \LWR at htmltag{/#1}%
+\ifbool{HTMLDebugComments}{%
 \LWR at htmlcomment{End of #1 ``#2''}%
+}{}%
 \LWR at startpars%
 }
 %    \end{macrocode}
@@ -5797,7 +6446,7 @@
 
 % These are high-level commands which allow the creation of
 % arbitrary block or inline
-% sections which may be formatted with \acro{CSS}.
+% sections which may be formatted with \CSS.
 
 % For other direct-formatting commands, see \cref{sec:directformatting}.
 
@@ -5885,25 +6534,25 @@
 \begin{warpHTML}
 %    \end{macrocode}
 
-% Sections H1, H2, etc.\ do not need a closing \acro{HTML} tag, but we add a comment for readability:
+% Sections H1, H2, etc.\ do not need a closing \HTML\ tag, but we add a comment for readability:
 %    \begin{macrocode}
 \newcommand*{\LWR at printclosepart}
-    {\LWR at htmlcomment{Closing part}}
+    {\ifbool{HTMLDebugComments}{\LWR at htmlcomment{Closing part}}{}}
 \newcommand*{\LWR at printclosechapter}
-    {\LWR at htmlcomment{Closing chapter}}
+    {\ifbool{HTMLDebugComments}{\LWR at htmlcomment{Closing chapter}}{}}
 \newcommand*{\LWR at printclosesection}
-    {\LWR at htmlcomment{Closing section}}
+    {\ifbool{HTMLDebugComments}{\LWR at htmlcomment{Closing section}}{}}
 \newcommand*{\LWR at printclosesubsection}
-    {\LWR at htmlcomment{Closing subsection}}
+    {\ifbool{HTMLDebugComments}{\LWR at htmlcomment{Closing subsection}}{}}
 \newcommand*{\LWR at printclosesubsubsection}
-    {\LWR at htmlcomment{Closing subsubsection}}
+    {\ifbool{HTMLDebugComments}{\LWR at htmlcomment{Closing subsubsection}}{}}
 \newcommand*{\LWR at printcloseparagraph}
-    {\LWR at htmlcomment{Closing paragraph}}
+    {\ifbool{HTMLDebugComments}{\LWR at htmlcomment{Closing paragraph}}{}}
 \newcommand*{\LWR at printclosesubparagraph}
-    {\LWR at htmlcomment{Closing subparagraph}}
+    {\ifbool{HTMLDebugComments}{\LWR at htmlcomment{Closing subparagraph}}{}}
 %    \end{macrocode}
 
-% Lists require closing \acro{HTML} tags:
+% Lists require closing \HTML\ tags:
 %    \begin{macrocode}
 \newcommand*{\LWR at printcloselistitem}
     {\LWR at htmltag{/li}}
@@ -5928,7 +6577,7 @@
 % \section{Paragraph handling}
 % \label{sec:parhanding}
 %
-% These commands generate the HTML paragraph tags when allowed and
+% These commands generate the \HTML\ paragraph tags when allowed and
 % required.
 %
 % Paragraph tags are or are not allowed depending on many conditions.
@@ -5949,7 +6598,7 @@
 
 
 % \DescribeCounter{LWR at spandepth}
-% Do not create paragraph tags inside of an \acro{HTML} span.
+% Do not create paragraph tags inside of an \HTML\ span.
 %    \begin{macrocode}
 \newcounter{LWR at spandepth}
 \setcounter{LWR at spandepth}{0}
@@ -6025,7 +6674,7 @@
 \ifnumcomp{\@listdepth}{>}{0}%
 {%
 %    \end{macrocode}
-% If so,  leave some horizontal room in the \LaTeX{} \acro{PDF} output for list labels:
+% If so,  leave some horizontal room in the \LaTeX{} \PDF\ output for list labels:
 %    \begin{macrocode}
 \LWR at orighspace{1in}%
 }{}%
@@ -6128,7 +6777,7 @@
 
 % \section{Paragraph start/stop handling}
 % \label{sec:parstartstop}
-% These commands allow/disallow the generation of \acro{HTML}
+% These commands allow/disallow the generation of \HTML\
 % paragraph tags.
 %
 % \Cref{sec:parhanding} has the commands which actually generate
@@ -6144,13 +6793,13 @@
 
 
 % \begin{macro}{\LWR at startpars}
-% Begin handling \acro{HTML} paragraphs.
-% This allows an \acro{HTML} paragraph to start, but one has not yet begun.
+% Begin handling \HTML\ paragraphs.
+% This allows an \HTML\ paragraph to start, but one has not yet begun.
 %    \begin{macrocode}
 \newcommand*{\LWR at startpars}%
 {%
 %    \end{macrocode}
-% See if currently handling \acro{HTML} paragraphs:
+% See if currently handling \HTML\ paragraphs:
 %    \begin{macrocode}
 \ifbool{LWR at doingstartpars}%
 %    \end{macrocode}
@@ -6185,17 +6834,17 @@
 
 
 % \begin{macro}{\LWR at stoppars}
-% Stop handling \acro{HTML} paragraphs.
-% Any currently open \acro{HTML} paragraph is closed, and no more will be opened.
+% Stop handling \HTML\ paragraphs.
+% Any currently open \HTML\ paragraph is closed, and no more will be opened.
 %    \begin{macrocode}
 \newcommand*{\LWR at stoppars}%
 {%
 %    \end{macrocode}
-% See if currently handling \acro{HTML} paragraphs:
+% See if currently handling \HTML\ paragraphs:
 %    \begin{macrocode}
 \ifbool{LWR at doingapar}%
 %    \end{macrocode}
-% if currently in an \acro{HTML} paragraph:
+% if currently in an \HTML\ paragraph:
 %    \begin{macrocode}
 {%
 %    \end{macrocode}
@@ -6204,7 +6853,7 @@
 \unskip%
 \LWR at htmltagc{/\LWR at tagregularparagraph}%
 %    \end{macrocode}
-% No longer have an open HTML paragraph:
+% No longer have an open \HTML\ paragraph:
 %    \begin{macrocode}
 \global\boolfalse{LWR at doingapar}%
 %    \end{macrocode}
@@ -6215,11 +6864,11 @@
 
 }% an intentionally blank line
 %    \end{macrocode}
-% If was not in an \acro{HTML} paragraph:
+% If was not in an \HTML\ paragraph:
 %    \begin{macrocode}
 {}%
 %    \end{macrocode}
-% See if currently allowing \acro{HTML} paragraphs:
+% See if currently allowing \HTML\ paragraphs:
 %    \begin{macrocode}
 \ifbool{LWR at doingstartpars}%
 %    \end{macrocode}
@@ -6320,9 +6969,9 @@
 \begin{warpHTML}
 %    \end{macrocode}
 
-% \begin{macro}{\LWR at currentcss} The \acro{CSS} filename to use.
+% \begin{macro}{\LWR at currentcss} The \CSS\ filename to use.
 % This may be changed mid-document using \cs{NewCSS},
-% allowing different \acro{CSS} files to be used
+% allowing different \CSS\ files to be used
 % for different sections of the document.
 
 %    \begin{macrocode}
@@ -6332,7 +6981,7 @@
 
 % \begin{macro}{\NewCSS} \marg{new-css-filename.css}
 %
-% Assigns the \acro{CSS} file to be used by the following \acro{HTML} pages.
+% Assigns the \CSS\ file to be used by the following \HTML\ pages.
 %    \begin{macrocode}
 \newcommand*{\LWR at newcssb}[1]{%
 \renewcommand*{\LWR at currentcss}{#1}
@@ -6356,48 +7005,63 @@
 
 
 
-% \section{HTML meta description}
+% \section{HTML meta description and author}
+%
 % \changes{v0.20}{2016/06/27}{Added \cs{NewHTMLdescription}.}
+% \changes{v0.28}{2017/04/06}{Added \cs{HTMLauthor}.}
 
-% \codehtml
+
+% \codeall
 %    \begin{macrocode}
-\begin{warpHTML}
+\begin{warpall}
 %    \end{macrocode}
 
-% \begin{macro}{\LWR at currentHTMLdescription} The \acro{HTML} meta description to use.
+% \begin{macro}{\HTMLauthor} \marg{authorname} \qquad The author to place into an \HTML\ meta tag.
 %
-% This is placed inside an \acro{HTML} meta tag at the start of each file.
-% This may be changed mid-document using \cs{NewHTMLdescription},
-% allowing different \acro{HTML} descriptions to be used
-% for different sections of the document.
+% \index{HTML>meta tag>author}
+% \index{author>HTML meta tag}
+% \index{meta tag, HTML>author}
 %
-% Do not use double quotes, and do not exceed 150 characters.
+%    \begin{macrocode}
+\newcommand{\theHTMLauthor}{\theauthor}
 
-%    \begin{macrocode}
-\newcommand{\LWR at currentHTMLdescription}{}
+\newcommand{\HTMLauthor}[1]{\renewcommand{\theHTMLauthor}{#1}}
 %    \end{macrocode}
 % \end{macro}
 
-% \begin{macro}{\NewHTMLdescription} \marg{New \acro{HTML} meta description.}
+%    \begin{macrocode}
+\end{warpall}
+%    \end{macrocode}
+
+
+% \codeall
+%    \begin{macrocode}
+\begin{warpall}
+%    \end{macrocode}
+
+% This is placed inside an \HTML\ meta tag at the start of each file.
+% This may be changed mid-document using \cs{NewHTMLdescription},
+% allowing different \HTML\ descriptions to be used
+% for different sections of the document.
 %
-% Assigns the \acro{HTML} file's description meta tag
+% Do not use double quotes, and do not exceed 150 characters.\watchout
+
+% \begin{macro}{\NewHTMLdescription} \marg{New \HTML\ meta description.} \qquad
+% Assigns the \HTML\ file's description meta tag.
+%
 % \index{HTML>meta tag>description}
 % \index{description>HTML meta tag}
 % \index{meta tag, HTML>description}
+%
 %    \begin{macrocode}
+\newcommand{\LWR at currentHTMLdescription}{}
+
 \newcommand{\NewHTMLdescription}[1]{%
 \renewcommand{\LWR at currentHTMLdescription}{#1}
 }
 
-\end{warpHTML}
+\end{warpall}
 %    \end{macrocode}
-%
-% \codeprint
-%    \begin{macrocode}
-\begin{warpprint}
-\newcommand{\NewHTMLdescription}[1]{}
-\end{warpprint}
-%    \end{macrocode}
 % \end{macro}
 
 
@@ -6415,12 +7079,12 @@
 % as thanks in the titlepage.  Each of these is handle differently.
 %
 % \subsection{Regular page footnotes}
-% In \acro{HTML} documents, footnotes are placed at the
+% In \HTML\ documents, footnotes are placed at the
 % bottom of the web page using the \LaTeX\ box \cs{LWR at footnotes}.
 % Using this instead of the original \cs{footins} box
 % avoids having footnotes be printed by the output routine,
-% since footnotes should be printed per \acro{HTML} page
-% instead of per \acro{PDF} page.
+% since footnotes should be printed per \HTML\ page
+% instead of per \PDF\ page.
 %
 % See \cref{sec:footnotesregular} for the implementation.
 %
@@ -6500,6 +7164,7 @@
 %    \begin{macrocode}
 \newcommand*{\LWR at printpendingfootnotes}{%
 \ifvoid\LWR at footnotes\else
+\LWR at forcenewpage
 \begin{BlockClass}{footnotes}
 \LWR at origmedskip
 \unvbox\LWR at footnotes
@@ -6508,6 +7173,15 @@
 \fi
 }
 %    \end{macrocode}
+%
+% Used to print footnotes before sections only if formatting for an \EPUB\ or word processor:
+%    \begin{macrocode}
+\newcommand*{\LWR at epubprintpendingfootnotes}{%
+\ifthenelse{\boolean{FormatEPUB}\OR\boolean{FormatWordProcessor}}%
+{\LWR at printpendingfootnotes}%
+{}%
+}
+%    \end{macrocode}
 
 %    \begin{macrocode}
 \end{warpHTML}
@@ -6545,9 +7219,9 @@
 % \begin{itemize}
 % \item Files are split according to |FileDepth| and |CombineHigherDepths|.
 % \item Filenames are sanitized by |\LWR at filenamenoblanks|.
-% \item |\LWR at newhtmlfile| finishes an \acro{HTML} page,
+% \item |\LWR at newhtmlfile| finishes an \HTML\ page,
 %	adds a comment to tell where and how to split the file,
-%	then starts a new \acro{HTML} page.
+%	then starts a new \HTML\ page.
 % \end{itemize}
 
 
@@ -6557,8 +7231,8 @@
 %    \end{macrocode}
 
 % \DescribeCounter{FileDepth} \marg{section depth} determines how deeply
-% to break into new \acro{HTML} files, similar to |tocdepth|.
-% The default of -5 produces one large \acro{HTML} file.
+% to break into new \HTML\ files, similar to |tocdepth|.
+% The default of -5 produces one large \HTML\ file.
 %    \begin{macrocode}
 \newcounter{FileDepth}
 \setcounter{FileDepth}{-5}
@@ -6719,12 +7393,13 @@
 
 
 % \begin{macro}{\LWR at newhtmlfile} \marg{section name}
-% \changes{v0.18}{2016/04/23}{Sidetoc after title, improving responsive design.}
+% \changes{v0.18}{2016/04/23}{side\TOC\ after title, improving responsive design.}
 % \changes{v0.21}{2017/02/22}{Skip title if not given.}
+% \changes{v0.28}{2017/04/06}{If \texttt{FormatEPUB} or \texttt{FormatWordProcessor}: skips headers, footers, nav.}
 %
-% Finishes the current \acro{HTML} page with footnotes, footer, navigation,
-% then starts a new \acro{HTML} page with an \acro{HTML} comment telling where to
-% split the page and what the new filename and \acro{CSS} are, then adds
+% Finishes the current \HTML\ page with footnotes, footer, navigation,
+% then starts a new \HTML\ page with an \HTML\ comment telling where to
+% split the page and what the new filename and \CSS\ are, then adds
 % navigation, side TOC, header, and starts the text body.
 %    \begin{macrocode}
 \newcommand*{\LWR at newhtmlfile}[1]{
@@ -6737,24 +7412,36 @@
 
 \LWR at printpendingfootnotes
 
+%    \end{macrocode}
+%
+% No footer between files if \EPUB:
+%
+%    \begin{macrocode}
+\ifbool{FormatEPUB}
+{}
+{
 \LWR at htmlelement{footer}
 
 \LWR at pagebottom
 
 \LWR at htmlelementend{footer}
+}
 %    \end{macrocode}
-
-% No bottom navigation if are finishing the home page:
-% Presumably has a table-of-contents printed.
+%
+% No bottom navigation if are finishing the home page or
+% formatting for \EPUB\ or a word-processor.
 %    \begin{macrocode}
-\ifnumcomp{\value{LWR at htmlfilenumber}}{>}{0}{\LWR at botnavigation}{}
+\ifthenelse{\boolean{FormatEPUB}\OR\boolean{FormatWordProcessor}}
+{}
+{\ifnumcomp{\value{LWR at htmlfilenumber}}{>}{0}{\LWR at botnavigation}{}}
 %    \end{macrocode}
 
-% End of this \acro{HTML} file:
+% End of this \HTML\ file:
 %    \begin{macrocode}
 \LWR at stoppars
 \LWR at htmltag{/body}\LWR at orignewline
 \LWR at htmltag{/html}\LWR at orignewline
+\LWR at orignewpage
 
 \addtocounter{LWR at htmlfilenumber}{1}%
 %    \end{macrocode}
@@ -6769,14 +7456,14 @@
 {\renewcommand*{\LWR at thisfilename}{\theLWR at htmlfilenumber}}
 %    \end{macrocode}
 
-% Include an \acro{HTML} comment to instruct lwarpmk
+% Include an \HTML\ comment to instruct lwarpmk
 % where to split the files apart.
 % Uses pipe-separated fields for |split_html.gawk|.
 % Uses monospaced font with ligatures disabled for everything except the title.
 %    \begin{macrocode}
 \LWR at htmlblockcomment{%
-\LWR at origtexttt{|Start file|%
-\LWR at htmlsectionfilename{\LWR at thisfilename}|}%
+|Start file|%
+\LWR at htmlsectionfilename{\LWR at thisfilename}|%
 }
 %    \end{macrocode}
 
@@ -6784,24 +7471,67 @@
 %    \begin{macrocode}
 \LWR at stoppars
 
+%    \end{macrocode}
+%
+%
+%    \begin{macrocode}
 \LWR at filestart{ — #1}% there is an EMdash in front of the #1
 
-\LWR at topnavigation
+%    \end{macrocode}
+%
+% No navigation between files if formatting for an \EPUB\ or word processor:
+%    \begin{macrocode}
+\ifthenelse{\boolean{FormatEPUB}\OR\boolean{FormatWordProcessor}}
+{}
+{\LWR at topnavigation}
 
+%    \end{macrocode}
+%
+% No header if between files if formatting for an \EPUB\ or word processor:
+%    \begin{macrocode}
+\ifthenelse{\boolean{FormatEPUB}\OR\boolean{FormatWordProcessor}}
+{}
+{
 \LWR at htmlelement{header}
 
 \LWR at pagetop
 
 \LWR at htmlelementend{header}
+}
 
-\ifcsvoid{thetitle}{}{\LWR at printthetitle}
+%    \end{macrocode}
+%
+% Print title only if there is one.
+% Skip if formatting for an \EPUB\ or word processor:
+%    \begin{macrocode}
+\ifthenelse{\boolean{FormatEPUB}\OR\boolean{FormatWordProcessor}}
+{}
+{\ifcsvoid{thetitle}{}{\LWR at printthetitle}}
 
-\LWR at sidetoc
+%    \end{macrocode}
+%
+% No side\TOC\ if formatting for an \EPUB\ or word processor:
+%    \begin{macrocode}
+\ifthenelse{\boolean{FormatEPUB}\OR\boolean{FormatWordProcessor}}
+{}
+{\LWR at sidetoc}
 
+%    \end{macrocode}
+%
+% Start of the \tag{textbody}:
+%    \begin{macrocode}
 \LWR at htmlelementclass{section}{textbody}
 
+%    \end{macrocode}
+%
+% Keep paragraph tags disabled for now:
+%    \begin{macrocode}
 \LWR at stoppars
 
+%    \end{macrocode}
+%
+% Track the page numbers:
+%    \begin{macrocode}
 \setcounter{LWR at latestautopage}{\value{page}}
 }
 %    \end{macrocode}
@@ -6819,7 +7549,7 @@
 %
 % Sectioning and cross-references have been emulated from scratch, rather
 % than try to patch several layers of existing \LaTeX{} code and packages.
-% Formatting is handled by \acro{CSS}, so the emulated code has much less
+% Formatting is handled by \CSS, so the emulated code has much less
 % work to do than the print versions.
 %
 % Section names and the resulting filenames with accented characters
@@ -6850,7 +7580,7 @@
 %
 % Declare the main matter section of the document.  Does not reset the page number,
 % \watchout
-% which must be consecutive arabic numbers for the \acro{HTML} conversion.
+% which must be consecutive arabic numbers for the \HTML\ conversion.
 %    \begin{macrocode}
 \newbool{LWR at mainmatter}
 \DeclareDocumentCommand{\mainmatter}{}{%
@@ -6947,7 +7677,7 @@
 %
 % \DescribeCounter{LWR at prevFileDepth} Remembers the previous |LWR at FileDepth|.
 %
-% Initialized to a deep level so that any section will trigger a new \acro{HTML}
+% Initialized to a deep level so that any section will trigger a new \HTML\
 % page after the home page.
 %    \begin{macrocode}
 \newcounter{LWR at prevFileDepth}
@@ -6970,15 +7700,16 @@
 %    \begin{macrocode}
 \global\boolfalse{LWR at minipagethispar}%
 %    \end{macrocode}
-% Generate a new LaTeX page so that TOC and index page number points to the section:
+% Start a new \HTML\ file if not starred, and is a shallow sectioning depth:
 %    \begin{macrocode}
+\LWR at traceinfo{LWR at section: testing whether to start a new HTML file}%
+\IfBooleanTF{#1}{% starred
+%    \end{macrocode}
+% Generate a new LaTeX page so that \TOC\ and index page number points to the section:
+%    \begin{macrocode}
 \LWR at orignewpage%
 
-%    \end{macrocode}
-% Start a new \acro{HTML} file if not starred, and is a shallow sectioning depth:
-%    \begin{macrocode}
-\LWR at traceinfo{LWR at section: testing about to start a new HTML file}%
-\IfBooleanTF{#1}{}{% not starred
+}{% not starred
 \ifthenelse{%
 \cnttest{\csuse{LWR at depth#4}}{<=}{\value{FileDepth}}%
 \AND%
@@ -6988,7 +7719,7 @@
 \)%
 }%
 %    \end{macrocode}
-% If so: start a new \acro{HTML} file:
+% If so: start a new \HTML\ file:
 %    \begin{macrocode}
 {% new file
 \LWR at traceinfo{LWR at section: new HTML file}%
@@ -7006,9 +7737,15 @@
 {\LWR at newhtmlfile{#2}}%
 }% new file
 %    \end{macrocode}
-% Else: No new \acro{HTML} file:
+% Else: No new \HTML\ file:
 %    \begin{macrocode}
-{}% not new file
+{% not new file
+%    \end{macrocode}
+% Generate a new LaTeX page so that \TOC\ and index page number points to the section:
+%    \begin{macrocode}
+\LWR at orignewpage%
+
+}% not new file
 }% not starred
 %    \end{macrocode}
 % Remember this section's name for \cs{nameref}:
@@ -7020,7 +7757,9 @@
 % ex: ``section'' ``Introduction''
 %    \begin{macrocode}
 
+\ifbool{HTMLDebugComments}{%
 \LWR at htmlcomment{Opening #4 ``#3''{}}
+}{}
 
 %    \end{macrocode}
 % For inline sections paragraph and subparagraph, start a new paragraph now:
@@ -7124,13 +7863,13 @@
 {}%
 %    \end{macrocode}
 % If not starred, remember the previous depth to
-% possibly trigger a new \acro{HTML} page.
+% possibly trigger a new \HTML\ page.
 %
-% A starred section does not trigger a new \acro{HTML} page at the beginning
+% A starred section does not trigger a new \HTML\ page at the beginning
 % of this macro, so it should not affect it here at the end either.
 % This became an issue when a \cs{listoftables} was tested in the middle of
 % the document.  The \cs{chapter*} for the list was not allowing
-% a new \acro{HTML} page for the section following it
+% a new \HTML\ page for the section following it
 % while |CombineHigherDepths| was true.
 %    \begin{macrocode}
 \IfBooleanTF{#1}{}{% not starred
@@ -7151,6 +7890,7 @@
 {}
 {%
 \DeclareDocumentCommand{\part}{s o m}{%
+\LWR at epubprintpendingfootnotes%
 \LWR at stoppars%
 
 \LWR at startnewdepth{\LWR at depthpart}{\LWR at printclosepart}%
@@ -7163,6 +7903,8 @@
 
 
 % \begin{macro}{\chapter} * \oarg{TOC name} \marg{name}
+%
+% \changes{v0.28}{2017/04/06}{If \EPUB, prints footnotes before each section.}
 %    \begin{macrocode}
 \@ifundefined{chapter}
 {}
@@ -7169,6 +7911,7 @@
 {%
 \DeclareDocumentCommand{\chapter}{s o m}{%
 \LWR at traceinfo{chapter #3}%
+\LWR at epubprintpendingfootnotes%
 \LWR at stoppars%
 \LWR at startnewdepth{\LWR at depthchapter}{\LWR at printclosechapter}%
 
@@ -7184,6 +7927,7 @@
 % \begin{macro}{\section} * \oarg{TOC name} \marg{name}
 %    \begin{macrocode}
 \DeclareDocumentCommand{\section}{s o m}{%
+\LWR at epubprintpendingfootnotes%
 \LWR at stoppars%
 
 \LWR at startnewdepth{\LWR at depthsection}{\LWR at printclosesection}%
@@ -7198,6 +7942,7 @@
 % \begin{macro}{\subsection} * \oarg{TOC name} \marg{name}
 %    \begin{macrocode}
 \DeclareDocumentCommand{\subsection}{s o m}{%
+\LWR at epubprintpendingfootnotes%
 \LWR at stoppars%
 
 \LWR at startnewdepth{\LWR at depthsubsection}{\LWR at printclosesubsection}%
@@ -7212,6 +7957,7 @@
 % \begin{macro}{\subsubsection} * \oarg{TOC name} \marg{name}
 %    \begin{macrocode}
 \DeclareDocumentCommand{\subsubsection}{s o m}{%
+\LWR at epubprintpendingfootnotes%
 \LWR at stoppars%
 
 \LWR at startnewdepth{\LWR at depthsubsubsection}%
@@ -7228,6 +7974,7 @@
 % \begin{macro}{\paragraph} * \oarg{TOC name} \marg{name}
 %    \begin{macrocode}
 \DeclareDocumentCommand{\paragraph}{s o m}{%
+\LWR at epubprintpendingfootnotes%
 \LWR at stoppars%
 
 \LWR at startnewdepth{\LWR at depthparagraph}{\LWR at printcloseparagraph}%
@@ -7242,6 +7989,7 @@
 % \begin{macro}{\subparagraph} * \oarg{TOC name} \marg{name}
 %    \begin{macrocode}
 \DeclareDocumentCommand{\subparagraph}{s o m}{%
+\LWR at epubprintpendingfootnotes%
 \LWR at stoppars%
 
 \LWR at startnewdepth{\LWR at depthsubparagraph}{\LWR at printclosesubparagraph}%
@@ -7268,7 +8016,7 @@
 \begin{warpHTML}
 %    \end{macrocode}
 
-% \begin{macro}{\MetaLanguage} Default language for the \acro{HTML} |lang| tag.
+% \begin{macro}{\MetaLanguage} Default language for the \HTML\ |lang| tag.
 % \index{language HTML metadata}
 %    \begin{macrocode}
 \newcommand*{\MetaLanguage}{en-US}
@@ -7278,10 +8026,11 @@
 
 % \begin{macro}{\LWR at filestart} \marg{title\_suffix}
 
-% Creates the opening \acro{HTML} tags.
+% Creates the opening \HTML\ tags.
 % \changes{v0.19}{2016/05/25}{lwarp\_mathjax.txt loaded.}
 % \changes{v0.20}{2016/06/27}{Adds meta description.}
 % \changes{v0.21}{2017/02/22}{Skip title if not given.}
+% \changes{v0.28}{2017/04/06}{Adds \HTML\ meta author.}
 %
 %    \begin{macrocode}
 \newcommand*{\LWR at filestart}[1]{
@@ -7303,7 +8052,7 @@
 \RenewDocumentCommand{\LWR at htmlspanclass}{m o +m}{##3}
 \DeclareExpandableDocumentCommand{\InlineClass}{m o m}{##3}
 %    \end{macrocode}
-% Create the page's \acro{HTML} header:
+% Create the page's \HTML\ header:
 %    \begin{macrocode}
 \LWR at htmltag{!DOCTYPE html}\LWR at orignewline
 %    \end{macrocode}
@@ -7319,6 +8068,14 @@
 %    \begin{macrocode}
 \LWR at htmltag{meta charset="UTF-8" /}\LWR at orignewline
 %    \end{macrocode}
+%
+% Author:
+%    \begin{macrocode}
+\ifcsempty{theHTMLauthor}{}{
+\LWR at htmltag{meta name="author" content="\theHTMLauthor" /}\LWR at orignewline
+}
+%    \end{macrocode}
+%
 % \pkg{lwarp} is the generator:
 % \index{HTML>meta tag>generator}
 % \index{generator>HTML meta tag}
@@ -7364,7 +8121,7 @@
 link rel="stylesheet" type="text/css" href="\LWR at currentcss" /}%
 \LWR at orignewline
 %    \end{macrocode}
-% Optional MathJax support.  The \acro{HTML} tags must be turned off
+% Optional MathJax support.  The \HTML\ tags must be turned off
 % during the verbatim input, and the paragraph handling which was
 % turned on at the end of verbatim input must be immediately turned off
 % again.
@@ -7410,17 +8167,29 @@
 % \begin{macro}{\LWR at LwarpStart}
 % \changes{v0.19}{2016/06/01}{Enabled \textbackslash\textbackslash{} equal to \cs{newline}.}
 % \changes{v0.21}{2017/02/22}{Changed \texttt{lateximages} to a \texttt{.txt} file.}
+% \changes{v0.28}{2017/04/09}{\texttt{FormatWordProcessor} forces single-file output.}
 % Executed at the beginning of the entire document.
 %    \begin{macrocode}
 \newcommand*{\LWR at LwarpStart}
 {%
 %    \end{macrocode}
+%
+% If formatting for a word processor,
+%	force filedepth to single-file only,
+%	force \HTML\ debug comments off.
+%    \begin{macrocode}
+\ifbool{FormatWordProcessor}{%
+\setcounter{FileDepth}{-5}%
+\boolfalse{HTMLDebugComments}%
+}{}
+%    \end{macrocode}
+%
 % Expand and detokenize \cs{HomeHTMLFileName} and \cs{HTMLFileName}:
 %    \begin{macrocode}
 \edef\LWR at strresult{\HomeHTMLFileName}
 \edef\HomeHTMLFileName{\detokenize\expandafter{\LWR at strresult}}
-\edef\LWR at strresult{\HTMLFileName}
-\edef\HTMLFileName{\detokenize\expandafter{\LWR at strresult}}
+\edef\LWR at strresult{\HTMLfiveName}
+\edef\HTMLfiveName{\detokenize\expandafter{\LWR at strresult}}
 %    \end{macrocode}
 % Force onecolumn:
 %    \begin{macrocode}
@@ -7430,7 +8199,7 @@
 %    \begin{macrocode}
 \LWR at origscriptsize%
 %    \end{macrocode}
-% In \acro{PDF} output, don't allow line breaks to interfere with \acro{HTML} tags:
+% In \PDF\ output, don't allow line breaks to interfere with \HTML\ tags:
 %    \begin{macrocode}
 \LWR at origraggedright%
 \let\\\LWR at endofline%
@@ -7450,7 +8219,7 @@
 \immediate\openout\LWR at file=lateximages.txt
 %    \end{macrocode}
 %
-% Removes space after the caption in the \acro{HTML}:
+% Removes space after the caption in the \HTML:
 %    \begin{macrocode}
 \setlength{\belowcaptionskip}{-3ex}
 %    \end{macrocode}
@@ -7458,7 +8227,7 @@
 %    \begin{macrocode}
 \renewcommand{\ps at plain}{}
 %    \end{macrocode}
-% Not used in the \acro{HTML} environment:
+% Not used in the \HTML\ environment:
 % \DescribeMacro{\centering}
 % \DescribeMacro{\raggedleft}
 % \DescribeMacro{\raggedright}
@@ -7488,7 +8257,7 @@
 % \cs{ltx at label} is used in \pkg{amsmath} environments and is also
 % patched by \pkg{cleveref}.
 % \index{label>in HTML}
-% \margintag{Label in \acro{HTML}}
+% \margintag{Label in \HTML}
 % \changes{v0.20}{2017/01/30}{Fix: math cross references.}
 %    \begin{macrocode}
 \let\LWR at origltx@label\ltx at label
@@ -7515,7 +8284,7 @@
 \global\boolfalse{LWR at doingapar}
 \global\boolfalse{LWR at doingstartpars}
 %    \end{macrocode}
-% Start a new \acro{HTML} file and a header:
+% Start a new \HTML\ file and a header:
 %    \begin{macrocode}
 \LWR at filestart{}
 \LWR at htmltag{header}\LWR at orignewline
@@ -7550,7 +8319,7 @@
 %    \begin{macrocode}
 \catcode`\&=\active
 %    \end{macrocode}
-% Allow \acro{HTML} paragraphs to begin:
+% Allow \HTML\ paragraphs to begin:
 %    \begin{macrocode}
 \LWR at startpars
 }
@@ -7590,7 +8359,9 @@
 
 
 % \begin{macro}{\LWR at LwarpEnd}
-% Final stop of all \acro{HTML} output:
+% Final stop of all \HTML\ output:
+%
+% \changes{v0.28}{2017/04/06}{If \texttt{FormatEPUB} or \texttt{FormatWordProcessor}, no bottom nav.}
 %    \begin{macrocode}
 \newcommand*{\LWR at LwarpEnd}
 {
@@ -7616,15 +8387,21 @@
 \LWR at htmlelementend{footer}
 %    \end{macrocode}
 
-% No bottom navigation if are finishing the home page: \\
-% Presumably has a table-of-contents printed.
+% No bottom navigation if are finishing the home page,
+% or if formatting for an \EPUB\ or word processor.
+%
+% Presumably has a table-of-contents.
 %    \begin{macrocode}
+\ifthenelse{\boolean{FormatEPUB}\OR\boolean{FormatWordProcessor}}
+{}
+{
 \ifnumcomp{\value{LWR at htmlfilenumber}}{>}{0}{\LWR at botnavigation}{}
+}
 %    \end{macrocode}
 %    \begin{macrocode}
 \LWR at stoppars% final stop of all paragraphs
 %    \end{macrocode}
-% Finish the HTML file:
+% Finish the \HTML\ file:
 %    \begin{macrocode}
 \LWR at htmltag{/body}\LWR at orignewline
 \LWR at htmltag{/html}\LWR at orignewline
@@ -7712,7 +8489,7 @@
 %
 % \subsection{Setting the title, etc.}
 %
-% The following provide setting commands for both \acro{HTML} and print outputs.
+% The following provide setting commands for both \HTML\ and print outputs.
 %
 % \DescribeMacro{@published}
 % \DescribeMacro{@title}
@@ -7751,7 +8528,7 @@
 % with \cs{and} placing commas between multiple authors.
 % Thus, these commands are to be used in the main text whenever the user
 % wishes to refer to the document's title and such.  One practical use for this
-% is to place the authors at the bottom of each \acro{HTML} page, such as:
+% is to place the authors at the bottom of each \HTML\ page, such as:
 %
 % \DescribeMacro{\SetPageBottom} \marg{text}
 % \begin{Verbatim}[gobble=2,frame=lines,obeytabs,tabsize=4]
@@ -7883,11 +8660,14 @@
 %
 %
 % \begin{environment}{titlepage}
-% Sets up a titlepage div with a \LaTeX{} \acro{PDF} minipage inside.
+% Sets up a titlepage div with a \LaTeX{} \PDF\ minipage inside.
 %    \begin{macrocode}
 \renewenvironment*{titlepage}
-    {\BlockClass{titlepage}\LWR at subminipage}
-    {\LWR at endsubminipage\endBlockClass}
+{
+\LWR at forcenewpage
+\BlockClass{titlepage}\LWR at subminipage
+}
+{\LWR at endsubminipage\endBlockClass}
 %    \end{macrocode}
 % \end{environment}
 %
@@ -7896,7 +8676,7 @@
 \renewenvironment*{titlingpage}
 {%
 %    \end{macrocode}
-% Start an HTML titlepage div:
+% Start an \HTML\ titlepage div:
 %    \begin{macrocode}
 \begin{titlepage}
 %    \end{macrocode}
@@ -7908,7 +8688,7 @@
 {
 %    \end{macrocode}
 % At the end of the environment,
-% end the HTML titlepage div:
+% end the \HTML\ titlepage div:
 %    \begin{macrocode}
 \end{titlepage}
 %    \end{macrocode}
@@ -7956,7 +8736,7 @@
 %
 % The following are for printing the title, etc.
 % in a \env{titlepage} or a \env{titlingpage}
-% in \acro{HTML}:
+% in \HTML:
 %
 % \codehtml
 %    \begin{macrocode}
@@ -7965,7 +8745,7 @@
 %
 %
 %
-% Patch the pre/post title/author/date to add \acro{HTML} tags,
+% Patch the pre/post title/author/date to add \HTML\ tags,
 % then initilize:
 %    \begin{macrocode}
 \newcommand{\prepublished}[1]{%
@@ -8057,7 +8837,7 @@
 % \begin{macro}{\LWR at printthetitle}
 %
 % A private version which prints the title without footnotes,
-% used to title each \acro{HTML} page.
+% used to title each \HTML\ page.
 %    \begin{macrocode}
 \newcommand*{\LWR at printthetitle}
 {
@@ -8295,10 +9075,10 @@
 % \subsection{\protect\textbackslash{}maketitle for HTML output}
 % \label{sec:titlehtml}
 %
-% An \acro{HTML} div of class |titlepage| is created, inside of which
-% a \LaTeX{} \acro{PDF} minipage is generated (without \acro{HTML} tags),
+% An \HTML\ div of class |titlepage| is created, inside of which
+% a \LaTeX{} \PDF\ minipage is generated (without \HTML\ tags),
 % allowing the |\thanks| footnotes to be generated immediately at the end
-% of the title page during \acro{HTML} output.  This is desirable when
+% of the title page during \HTML\ output.  This is desirable when
 % a large table of contents immediately follows the title.
 %
 % |\thanks| are a form of footnotes used in the title page.
@@ -8363,7 +9143,7 @@
 
 % \begin{macro}{\@fnsymbol} \marg{counter}
 %
-% Re-defined to use an \acro{HTML} entity for the double vertical bar symbol.
+% Re-defined to use an \HTML\ entity for the double vertical bar symbol.
 % The original definition used \cs{\textbar} which was not being found by \cmds{pdftotext}.
 %    \begin{macrocode}
 \def\@fnsymbol#1{\ensuremath{\ifcase#1\or *\or \dagger\or \ddagger\or
@@ -8372,16 +9152,16 @@
 %    \end{macrocode}
 % \end{macro}
 %
-%\begin{macro}{\maketitle} Creates an \acro{HTML} titlepage div
+%\begin{macro}{\maketitle} Creates an \HTML\ titlepage div
 %	and typesets the title, etc.
 %
 % Code from the \pkg{titling} package is adapted, simplified, and
-% modified for \acro{HTML} output.
+% modified for \HTML\ output.
 %
 %    \begin{macrocode}
 \renewcommand*{\maketitle}{%
 %    \end{macrocode}
-% An \acro{HTML} titlepage div is used for all classes.
+% An \HTML\ titlepage div is used for all classes.
 %    \begin{macrocode}
 \begin{titlepage}
 %    \end{macrocode}
@@ -8397,7 +9177,7 @@
 %    \begin{macrocode}
 \@thanks
 %    \end{macrocode}
-% Close the \acro{HTML} titlepage div:
+% Close the \HTML\ titlepage div:
 %    \begin{macrocode}
 \end{titlepage}
 %    \end{macrocode}
@@ -8408,7 +9188,7 @@
 %    \end{macrocode}
 % \end{macro}
 
-% \begin{macro}{\@maketitle} Typesets the title, etc. for \acro{HTML}:
+% \begin{macro}{\@maketitle} Typesets the title, etc. for \HTML:
 %    \begin{macrocode}
 \DeclareDocumentCommand{\@maketitle}{}{%
 	\maketitlehooka
@@ -8436,7 +9216,7 @@
 
 
 % \begin{macro}{\LWR at titlingmaketitle}
-% \cs{maketitle} for use inside an \acro{HTML} \env{titlingpage} environment.
+% \cs{maketitle} for use inside an \HTML\ \env{titlingpage} environment.
 %    \begin{macrocode}
 \newcommand*{\LWR at titlingmaketitle}{%
 %    \end{macrocode}
@@ -8457,7 +9237,7 @@
 %
 % Sets the type of footnote marks used by |\thanks|,
 % where type is `arabic', `roman', `fnsymbol', etc.  Modified to
-% use the \LaTeX{} \acro{PDF} minipage which is included with the title page.
+% use the \LaTeX{} \PDF\ minipage which is included with the title page.
 %    \begin{macrocode}
 \renewcommand{\thanksmarkseries}[1]{%
 \def\@mpbsmarkseries{%
@@ -8501,6 +9281,7 @@
 %    \begin{macrocode}
 \DeclareDocumentEnvironment{abstract}{}
 {
+\LWR at forcenewpage
 \BlockClass{abstract}
 \BlockClassSingle{abstracttitle}{\abstractname}
 }
@@ -8574,11 +9355,17 @@
 % \begin{environment}{quote}
 %    \begin{macrocode}
 \renewenvironment*{quote}
-{\LWR at htmlblocktag{blockquote}}
+{
+\LWR at forcenewpage
+\LWR at htmlblocktag{blockquote}
+}
 {\LWR at htmlblocktag{/blockquote}}
 
 \renewenvironment*{quotation}
-{\LWR at htmlblocktag{blockquotation}}
+{
+\LWR at forcenewpage
+\LWR at htmlblocktag{blockquotation}
+}
 {\LWR at htmlblocktag{/blockquotation}}
 %    \end{macrocode}
 % \end{environment}
@@ -8598,14 +9385,14 @@
 \begin{warpall}
 %    \end{macrocode}
 %
-% The following lengths may be set in either print or \acro{HTML} output,
-% but are only used in \acro{HTML}.
+% The following lengths may be set in either print or \HTML\ output,
+% but are only used in \HTML.
 % This allows the user to set \cs{vleftskip} and \cs{leftmargini} for
-% print output, and optionally select different values for \acro{HTML}.
+% print output, and optionally select different values for \HTML.
 %
 
 % \DescribeLength{HTMLvleftskip}
-% Sets \cs{vleftskip} inside a \env{verse} environment in \acro{HTML}.
+% Sets \cs{vleftskip} inside a \env{verse} environment in \HTML.
 %    \begin{macrocode}
 \newlength{\HTMLvleftskip}
 \setlength{\HTMLvleftskip}{1em}
@@ -8612,7 +9399,7 @@
 %    \end{macrocode}
 
 % \DescribeLength{HTMLleftmargini}
-% Sets \cs{leftmargini} inside a \env{verse} environment in \acro{HTML}.
+% Sets \cs{leftmargini} inside a \env{verse} environment in \HTML.
 %    \begin{macrocode}
 \newlength{\HTMLleftmargini}
 \setlength{\HTMLleftmargini}{4.5em}
@@ -8640,7 +9427,10 @@
 %
 %    \begin{macrocode}
 \AfterEndPreamble{
-\AtBeginEnvironment{verbatim}{\LWR at atbeginverbatim{verbatim}\unskip\vspace*{-\baselineskip}}
+\AtBeginEnvironment{verbatim}{%
+\LWR at forcenewpage
+\LWR at atbeginverbatim{verbatim}\unskip\vspace*{-\baselineskip}%
+}
 \AfterEndEnvironment{verbatim}{\unskip\vspace*{-\baselineskip}\LWR at afterendverbatim}
 }
 %    \end{macrocode}
@@ -8661,7 +9451,7 @@
 %    \end{macrocode}
 %
 %
-% \DescribeLength{\VerbatimHTMLWidth} Width to use in HTML Verbatim environment.
+% \DescribeLength{\VerbatimHTMLWidth} Width to use in \HTML\ |Verbatim| environment.
 %
 % This width is used when placing line numbers to the right.
 % Ignored during print output.
@@ -8678,7 +9468,7 @@
 %    \end{macrocode}
 %
 % \DescribeBoolean{LWR at verbtags} Used to temporarily turn off verbatim tags
-%	while doing \env{VerbatimInput} in the \acro{HTML} head.
+%	while doing \env{VerbatimInput} in the \HTML\ head.
 %    \begin{macrocode}
 \newbool{LWR at verbtags}
 \booltrue{LWR at verbtags}
@@ -8697,7 +9487,7 @@
 
 % \begin{macro}{\LWR at atbeginverbatim} \marg{class}
 %
-% Encloses a verbatim environment with the given \acro{CSS} class.
+% Encloses a verbatim environment with the given \CSS\ class.
 %    \begin{macrocode}
 \newcommand*{\LWR at atbeginverbatim}[1]
 {%
@@ -8706,7 +9496,7 @@
 %    \begin{macrocode}
 \setlength{\parskip}{0ex}%
 %    \end{macrocode}
-% Stop generating \acro{HTML} paragraph tags:
+% Stop generating \HTML\ paragraph tags:
 %    \begin{macrocode}
 \LWR at stoppars%
 %    \end{macrocode}
@@ -8716,11 +9506,11 @@
 %    \end{macrocode}
 % Use a mono-spaced font to preserve horizontal positioning.
 % If horizontal alignment is important for the user, use a mono-spaced font
-% in the \acro{CSS} for the |verse| class.
+% in the \CSS\ for the |verse| class.
 %    \begin{macrocode}
 \LWR at origttfamily%
 %    \end{macrocode}
-% Do not produce \acro{HTML} tags for \cs{hspace} inside a verse |par|.
+% Do not produce \HTML\ tags for \cs{hspace} inside a verse |par|.
 % Restore plain \LaTeX{} \cs{hspace} functionality:
 %    \begin{macrocode}
 \let\hspace\LWR at orighspace%
@@ -8760,7 +9550,7 @@
 %
 % \begin{environment}{VerbatimClass} \marg{class} \oarg{Verbatim options}
 %
-% Creates a \env{Verbatim} enclosed in a \acro{DIV} of the given class.
+% Creates a \env{Verbatim} enclosed in a \tag{div} of the given class.
 %    \begin{macrocode}
 \NewDocumentEnvironment{VerbatimClass}{m O{}}
 {%
@@ -8794,6 +9584,7 @@
 %
 %    \begin{macrocode}
 \renewcommand*{\Verbatim}{%
+\LWR at forcenewpage
 \renewcommand*{\LWR at Verbatimclass}{fancyvrb}%
 \LWR at origVerbatim%
 }
@@ -8955,6 +9746,7 @@
 %    \begin{macrocode}
 \AtBeginEnvironment{BVerbatim}
 {
+\LWR at forcenewpage
 \LWR at atbeginverbatim{bverbatim}
 
 }
@@ -9015,15 +9807,15 @@
 
 % \section{Theorems}
 %
-% \changes{v0.25}{2017/03/17}{Basic \LaTeX\ theorems: improved \acro{CSS}.}
+% \changes{v0.25}{2017/03/17}{Basic \LaTeX\ theorems: improved \CSS.}
 %
 %
 % \DescribeMacro{\newtheorem} \marg{text} \oarg{counter} -or- \oarg{oldname} \marg{text}
 %
-% A few minor changes are made to supply \acro{HTML} tags.
+% A few minor changes are made to supply \HTML\ tags.
 %
 % \begin{itemize}
-% \item The entire theorem is placed into a div of class |theorem|.
+% \item The entire theorem is placed into a div of class |theoremcontents|.
 % \item The label for each theorem is placed inside a span of class |theoremlabel|.
 % \item The contents are placed inside a div of class |theoremcontents|.
 % \end{itemize}
@@ -9036,6 +9828,7 @@
 % \begin{macro}{\@begintheorem} \marg{name} \marg{number}
 %    \begin{macrocode}
 \renewcommand{\@begintheorem}[2]{%
+\LWR at forcenewpage
 \BlockClass{theoremcontents}
 \InlineClass{theoremlabel}{#1\ #2\ }
 }
@@ -9044,6 +9837,7 @@
 % \begin{macro}{\@opargbegintheorem} \marg{name} \marg{number} \marg{oparg}
 %    \begin{macrocode}
 \renewcommand{\@opargbegintheorem}[3]{%
+\LWR at forcenewpage
 \BlockClass{theoremcontents}
 \InlineClass{theoremlabel}{#1\ #2\ (#3)\ }
 }
@@ -9102,7 +9896,7 @@
 
 % To have a blank item, use |\mbox{}|.
 % This forces a new line in print output, matching the new line which
-% will appear in \acro{HTML} output.
+% will appear in \HTML\ output.
 % Ex:
 %\begin{Verbatim}[gobble=2,frame=lines,obeytabs,tabsize=4]
 %\begin{itemize}
@@ -9138,7 +9932,7 @@
 
 % \subsection{Enumerate}
 
-% An \acro{HTML} unordered list is used with customized \LaTeX-generated labels.
+% An \HTML\ unordered list is used with customized \LaTeX-generated labels.
 
 % \begin{environment}{enumerate} \oarg{enumitem options}
 %    \begin{macrocode}
@@ -9333,7 +10127,7 @@
 
 % \DescribeBoolean{LWR at intabularmetadata}
 % True if are in a tabular but not in a data cell.
-% Used to prevent extra \acro{HTML} breaks if not inside table data.
+% Used to prevent extra \HTML\ breaks if not inside table data.
 %    \begin{macrocode}
 \newbool{LWR at intabularmetadata}
 \boolfalse{LWR at intabularmetadata}
@@ -9405,7 +10199,7 @@
 % \begin{macro}{&} Will behave depending on whether it is being used inside \env{tabular}.
 %
 % |&| is redefined to test whether it is inside a tabular environment,
-% in which case it performs special processing for \acro{HTML} conversion.
+% in which case it performs special processing for \HTML\ conversion.
 % If not, it behaves normally.
 %
 % The |\catcode| allows the |&| character to be redefined.
@@ -9442,7 +10236,7 @@
 % \pkg{tikz} has been loaded.
 %
 % \cs{LWR at lwarpStart} finally makes |&| active at the beginning of the
-% \acro{HTML} conversion.
+% \HTML\ conversion.
 % \end{macro}
 %
 
@@ -9774,7 +10568,7 @@
 
 % \subsection{Parsing the column specifications}
 
-% \acro{HTML} \acro{CSS} cannot exactly match the \LaTeX{} concept of a baseline for
+% \HTML\ \CSS\ cannot exactly match the \LaTeX{} concept of a baseline for
 % a table row.
 % \watchout
 % \Cref{tab:baseline} shows the \LaTeX{} results for various
@@ -9801,10 +10595,10 @@
 % \end{table}
 %
 % \Cref{tab:columnconversions} describes how each kind of column is
-% converted to \acro{HTML}.
+% converted to \HTML.
 %
 % \begin{table}
-% \caption{Tabular \acro{HTML} column conversions\label{tab:columnconversions}}
+% \caption{Tabular \HTML\ column conversions\label{tab:columnconversions}}
 % \index{tabular>HTML colummn conversion}
 % \index{HTML>tabular column conversion}
 %
@@ -9813,21 +10607,21 @@
 % \hrule
 % \begin{description}[parsep=.5ex]
 % \item [l, r, c:] Converted to table cells without paragraph tags. \\
-% Uses \acro{CSS} |vertical-align:middle| so that top or bottom-aligned cells may go above or below this cell.
+% Uses \CSS\ |vertical-align:middle| so that top or bottom-aligned cells may go above or below this cell.
 % \item [p:] Converted to table cells with paragraph tags.
 % Ref: \Cref{tab:baseline},
 % \LaTeX{} places the top line of a parbox
-% aligned with the rest of the text line, so \acro{CSS} |vertical-align:bottom| is used to
-% have the \acro{HTML} result appear with the paragraph extending below the L, R, C cells at the middle, if possible.
-% This may be confusing as a P cell may not top-align with an L,R,C cell in the \acro{HTML}
+% aligned with the rest of the text line, so \CSS\ |vertical-align:bottom| is used to
+% have the \HTML\ result appear with the paragraph extending below the L, R, C cells at the middle, if possible.
+% This may be confusing as a P cell may not top-align with an L,R,C cell in the \HTML\
 % conversion, especially in the presence of a B cell, and two P cells side-by-side will
 % be aligned at the bottom instead of the top.
-% Some adjustment of the \acro{CSS} may be desired, changing
+% Some adjustment of the \CSS\ may be desired, changing
 % |td.tdp|, |td.tdP|, |td.tdprule|, and |td.tdPrule| to |vertical-align: middle|.
 % Another possibility is to change L,R,C, and P to |vertical-align: top| and not worry
 % about the alignment of B and M cells or trying to approximate \LaTeX{} baselines.
-% \item [m:] With paragraph tags, \acro{CSS} |vertical-align:middle|.
-% \item [b:] With paragraph tags, \acro{CSS} |vertical-align:top| so that the bottom of the
+% \item [m:] With paragraph tags, \CSS\ |vertical-align:middle|.
+% \item [b:] With paragraph tags, \CSS\ |vertical-align:top| so that the bottom of the
 % text is closest to the middle of the text line.
 % \item [P, M, B:] Horizontally-centered versions.
 % \item [S:] Converted to 'r'.  From the \pkg{siunitx} package.
@@ -9859,6 +10653,7 @@
 %	Added tabular \texttt{D}, \texttt{!!}, \texttt{X} columns.}
 %
 % \changes{v0.23}{2017/03/02}{Fix for vert bar column type.}
+% \changes{v0.28}{2017/04/11}{Added L, C, R, J column types.}
 %
 %    \begin{macrocode}
 \newcommand*{\LWR at parsetablecols}[1]{%
@@ -9926,6 +10721,10 @@
 \IfStrEq{\LWR at strresult}{l}{\LWR at parsenormalcolumn{l}}{}%
 \IfStrEq{\LWR at strresult}{c}{\LWR at parsenormalcolumn{c}}{}%
 \IfStrEq{\LWR at strresult}{r}{\LWR at parsenormalcolumn{r}}{}%
+\IfStrEq{\LWR at strresult}{L}{\LWR at parsenormalcolumn{l}}{}%
+\IfStrEq{\LWR at strresult}{C}{\LWR at parsenormalcolumn{c}}{}%
+\IfStrEq{\LWR at strresult}{R}{\LWR at parsenormalcolumn{r}}{}%
+\IfStrEq{\LWR at strresult}{J}{\LWR at parsenormalcolumn{l}}{}%
 \IfStrEq{\LWR at strresult}{S}{\LWR at parsenormalcolumn{r}}{}%
 \IfStrEq{\LWR at strresult}{\detokenize{@}}{\LWR at parseatcolumn}{}%
 \IfStrEq{\LWR at strresult}{!}{\LWR at parsebangcolumn}{}%
@@ -9946,6 +10745,7 @@
 \IfStrEq{\LWR at strresult}{X}{\LWR at parsenormalcolumn{X}}{}%
 %    \end{macrocode}
 % \begin{docsidebar}
+%	\raggedright
 % Many people define centered versions ``|P|'', ``|M|'', and ``|B|'': \\
 % \hspace*{1em}|\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}|
 % \end{docsidebar}
@@ -10027,7 +10827,7 @@
 %    \begin{macrocode}
 \LWR at strresult%
 %    \end{macrocode}
-% If this column has a cmidrule, add ``rule'' to the end of the \acro{HTML} class tag:
+% If this column has a cmidrule, add ``rule'' to the end of the \HTML\ class tag:
 %    \begin{macrocode}
 \ifthenelse{\equal{\LWR at getexparray{LWR at midrules}{\theLWR at tablecolspos}}{Y}}{rule}{}%
 "{}}%
@@ -10153,7 +10953,7 @@
 %    \begin{macrocode}
 \StrChar{#1}{\theLWR at tablemulticolspos}[\LWR at strresult]%
 %    \end{macrocode}
-% Add to the \acro{HTML} tag depending on which column type is found:
+% Add to the \HTML\ tag depending on which column type is found:
 %    \begin{macrocode}
 \IfStrEq{\LWR at strresult}{l}{l}{}%
 \IfStrEq{\LWR at strresult}{c}{c}{}%
@@ -10332,7 +11132,7 @@
 %    \begin{macrocode}
 \LWR at parsemulticolumnalignment{#2}{\LWR at printmccoltype}%
 %    \end{macrocode}
-% If this column has a cmidrule, add ``rule'' to the end of the \acro{HTML} class tag.
+% If this column has a cmidrule, add ``rule'' to the end of the \HTML\ class tag.
 %
 % If this position had a ``Y'' then add ``rule''.
 %    \begin{macrocode}
@@ -10415,7 +11215,7 @@
 }%
 }{}%
 %    \end{macrocode}
-% Create an \acro{HTML} caption.  Afterwards, maybe make a LOT entry.
+% Create an \HTML\ caption.  Afterwards, maybe make a LOT entry.
 %    \begin{macrocode}
 \LWR at htmlblocktag{figcaption}%
 \csuse{fnum@\LTcaptype}\CaptionSeparator#3%
@@ -10510,7 +11310,7 @@
 %    \begin{macrocode}
 \StrChar{\LWR at tablecolspec}{\theLWR at tablecolspos}%
 %    \end{macrocode}
-% If this column has a cmidrule, add ``rule'' to the end of the \acro{HTML} class tag:
+% If this column has a cmidrule, add ``rule'' to the end of the \HTML\ class tag:
 %    \begin{macrocode}
 \ifthenelse{\equal{\LWR at getexparray{LWR at midrules}{\theLWR at tablecolspos}}{Y}}{rule}{}%
 "{}}
@@ -10536,7 +11336,7 @@
 % \subsection{Checking for a new table cell}
 
 % \begin{macro}{\LWR at tabledatacolumntag}
-% Open a new \acro{HTML} table cell unless the next token is for a macro
+% Open a new \HTML\ table cell unless the next token is for a macro
 % which does not create data, such as |\hline|, |\toprule|, etc:
 %    \begin{macrocode}
 \newbool{LWR at exitingtabular}
@@ -10668,6 +11468,7 @@
 % Create the |table| tag:
 %    \begin{macrocode}
 \global\booltrue{LWR at intabularmetadata}%
+\LWR at forcenewpage
 \LWR at htmlblocktag{table}%
 %    \end{macrocode}
 % Parse the table columns:
@@ -10778,7 +11579,7 @@
 % \smallskip
 % \begin{description}[nosep]
 % \raggedright
-% \item [Original \LaTeX:] \hfill (print and \acro{HTML})
+% \item [Original \LaTeX:] \hfill (print and \HTML)
 %	\begin{description}
 %	\item [\cs{refstepcounter}:] Steps the couunter and sets \cs{@currentlabel}.
 %	\item [\cs{@currentlabel}:] \cs{p@<ctr>}\cs{the<ctr>} Updated by \cs{refstepcounter}.
@@ -10789,9 +11590,9 @@
 %	\item [\cs{ref}:] Returns the first part of \cs{r@<label>}.
 %	\item [\cs{pageref}:] Returns the second part of \cs{r@<label>}.
 %	\end{description}
-% \item [Added by \pkg{lwarp}:] \hfill (\acro{HTML} only)
+% \item [Added by \pkg{lwarp}:] \hfill (\HTML\ only)
 %	\begin{description}
-%	\item [\cs{label}:] Adds \acro{HTML} tags (\cref{sec:labels}),
+%	\item [\cs{label}:] Adds \HTML\ tags (\cref{sec:labels}),
 %		plus \cs{splabel} data (\cref{sec:zrefsetup}):
 %		\begin{description}
 %		\item [zLWR at name:] The section name for this label.
@@ -10801,16 +11602,16 @@
 %		\end{description}
 %	\item [\cs{nameref}:] Emualted from \pkg{hyperref} for \pkg{lwarp}.
 %		See \cref{sec:references}.
-%	\item [\cs{ref} and \cs{nameref}:] Adds \acro{HTML} tags.
+%	\item [\cs{ref} and \cs{nameref}:] Adds \HTML\ tags.
 %		See \cref{sec:references}.
 %	\end{description}
-% \item [Added by \pkg{amsmath}:] \hfill (print and \acro{HTML})
+% \item [Added by \pkg{amsmath}:] \hfill (print and \HTML)
 %	\begin{description}
 %	\item [\cs{label}:] Execution is delayed until the math environment is completed.
 %	\item [\cs{ltx at label}:] \LaTeX\ \cs{label},
-%		(\acro{HTML:}patched by \pkg{lwarp},) later patched by \pkg{cleveref}.
+%		(\HTML: patched by \pkg{lwarp},) later patched by \pkg{cleveref}.
 %	\end{description}
-% \item [Added by \pkg{cleverref}:] \hfill (print and \acro{HTML})
+% \item [Added by \pkg{cleverref}:] \hfill (print and \HTML)
 %	\begin{description}
 %	\item [\cs{refstepcounter:}] Added: sets \cs{cref at currentlabel}.
 %	\item [\cs{cref at currentlabel}:] (|<type>|=|<ctr>| unless an alias is used):
@@ -10825,7 +11626,7 @@
 %	\item [Cross-referencing names:] \cs{crefname} and \cs{Crefname} assign
 %		human-readable names for references to this counter type.
 %	\end{description}
-% \item [Additionally patched by \pkg{lwarp}:] \hfill (\acro{HTML} only)
+% \item [Additionally patched by \pkg{lwarp}:] \hfill (\HTML\ only)
 %	\begin{description}
 %	\item [\cs{cref}, etc.:] Modified for \pkg{lwarp}.
 %		See \cref{sec:cleveref}.
@@ -10983,11 +11784,11 @@
 
 
 % \begin{macro}{\LWR at subsublabel} \marg{label} \quad
-% Creates an \acro{HTML} id tag.
+% Creates an \HTML\ id tag.
 %    \begin{macrocode}
 \newcommand*{\LWR at subsublabel}[1]{%
 %    \end{macrocode}
-% Create an \acro{HTML} id tag unless are inside a lateximage,
+% Create an \HTML\ id tag unless are inside a lateximage,
 % since it would appear in the image:
 %    \begin{macrocode}
 \ifthenelse{\cnttest{\value{LWR at lateximagedepth}}{>}{0}}%
@@ -10994,7 +11795,7 @@
 {}%
 {% not lateximage
 %    \end{macrocode}
-% If not doing a lateximage, create an \acro{HTML} ID tag:
+% If not doing a lateximage, create an \HTML\ ID tag:
 % (To be factored\dots)
 %    \begin{macrocode}
 \ifbool{LWR at doingstartpars}%
@@ -11020,7 +11821,7 @@
 %
 % \begin{macro}{\LWR at newlabel} \marg{label} \oarg{type}
 %
-% \cs{label} during \acro{HTML} output when not in math mode,
+% \cs{label} during \HTML\ output when not in math mode,
 % removing extra spaces around the label, as done by regular \LaTeX\ \cs{label}.
 %
 % \pkg{clevereref} later encases this to add its own cross-referencing.
@@ -11060,12 +11861,14 @@
 % \begin{macro}{\LWR at startref} \marg{label} \quad
 % (Common code for |\ref| and |\nameref|.)
 %
-% Open an \acro{HTML} tag reference to a filename, \# character, and a label.
+% Open an \HTML\ tag reference to a filename, \# character, and a label.
 %
+% \changes{v0.28}{2017/04/13}{Removed space.}
+%
 %    \begin{macrocode}
 \newcommand*{\LWR at startref}[1]
 {%
-\edef\LWR at lidref{\LWR at lateximagedepthref{#1}}
+\edef\LWR at lidref{\LWR at lateximagedepthref{#1}}%
 \LWR at traceinfo{LWR at startref A: !#1!}%
 %    \end{macrocode}
 % Create the filename part of the link:
@@ -11087,7 +11890,7 @@
 % so create a link with an unknown destination:
 %    \begin{macrocode}
 {%
-\LWR at traceinfo{LWR at startref D0: ??}
+\LWR at traceinfo{LWR at startref D0: ??}%
 ??}%
 %    \end{macrocode}
 % If |LWR at lateximagedepth| is known.
@@ -11188,7 +11991,7 @@
 
 
 % \begin{macro}{\Nameref} \marg{label}
-% In print, adds the page number.  In \acro{HTML}, does not.
+% In print, adds the page number.  In \HTML, does not.
 %    \begin{macrocode}
 \let\Nameref\nameref
 %    \end{macrocode}
@@ -11220,7 +12023,7 @@
 % Create a link with a text name:
 
 % \begin{macro}{\LWR at subhyperref} \marg{URL} \marg{text}
-% \changes{v0.18}{2016/04/14}{Improved HTML output linebreaks.}
+% \changes{v0.18}{2016/04/14}{Improved \HTML\ output linebreaks.}
 %    \begin{macrocode}
 \NewDocumentCommand{\LWR at subhyperref}{m +m}{%
 \LWR at htmltag{a href="{#1}" target="\_{}blank"\LWR at orignewline}#2\LWR at htmltag{/a}%
@@ -11230,7 +12033,7 @@
 % \end{macro}
 
 % \begin{macro}{\LWR at subhyperrefclass} \marg{URL} \marg{text} \marg{htmlclass}
-% \changes{v0.18}{2016/04/14}{Improved HTML output linebreaks.}
+% \changes{v0.18}{2016/04/14}{Improved \HTML\ output linebreaks.}
 %    \begin{macrocode}
 \NewDocumentCommand{\LWR at subhyperrefclass}{m +m m}{%
 \LWR at htmltag{a href="{#1}"
@@ -11376,6 +12179,11 @@
 % Begins a \cs{newfloat} environment.
 %    \begin{macrocode}
 \NewDocumentCommand{\LWR at floatbegin}{m o}{%
+\ifthenelse{\boolean{FormatWordProcessor}\AND\boolean{HTMLMarkFloats}}{%
+
+=== #1 begin
+
+}{}%
 \LWR at stoppars
 %    \end{macrocode}
 % There is a new float, so increment the unique float counter:
@@ -11391,7 +12199,7 @@
 %    \begin{macrocode}
 \LWR at origraggedright
 %    \end{macrocode}
-% Open an \acro{HTML} |figure| tag:
+% Open an \HTML\ |figure| tag:
 %    \begin{macrocode}
 \LWR at htmltag{figure id="autofloat-\arabic{LWR at thisfloat}" class="#1"}
 %    \end{macrocode}
@@ -11424,6 +12232,11 @@
 \endgroup%
 \boolfalse{LWR at freezethisfloat}%
 \LWR at startpars%
+\ifthenelse{\boolean{FormatWordProcessor}\AND\boolean{HTMLMarkFloats}}{%
+
+=== end
+
+}{}%
 }
 %    \end{macrocode}
 % \end{macro}
@@ -11493,16 +12306,16 @@
 
 % \subsubsection{Caption and LOF linking and tracking}
 
-% When a new \acro{HTML} file is marked in the \LaTeX\ \acro{PDF} file,
+% When a new \HTML\ file is marked in the \LaTeX\ \PDF\ file,
 % the \LaTeX\ page number at that point is stored in |LWR at latestautopage|,
 % (and the associated filename is remembered by the special \LaTeX\ labels).
-% This page number is used to generate an |autofloat| \acro{HTML} \acro{ID}
-% in the \acro{HTML} output at the start of the new \acro{HTML} file.
-% Meanwhile, there is a float counter used to generate an \acro{HTML} |autofloat|
-% \acro{ID}s at the start of the float itself in the \acro{HTML} file.
+% This page number is used to generate an |autofloat| \HTML\ \tag{id}
+% in the \HTML\ output at the start of the new \HTML\ file.
+% Meanwhile, there is a float counter used to generate an \HTML\ |autofloat|
+% \tag{id} at the start of the float itself in the \HTML\ file.
 % The |autopage| and |autofloat| values to use for each float are written to the
 % |.lof|, etc. files just before each float's entry.  These values are used
-% by \cs{l at figure}, etc. to create the \acro{HTML} links in the List of Figures, etc.
+% by \cs{l at figure}, etc. to create the \HTML\ links in the List of Figures, etc.
 %
 % \DescribeCounter{LWR at nextautofloat} Tracks autofloat for floats.
 % \DescribeCounter{LWR at nextautopage} Tracks autopage for floats.
@@ -11518,7 +12331,7 @@
 %
 % This is written to the |.lof| file just before each float's usual entry.
 % The autopage and autofloat are remembered for \cs{l at figure} to use when
-% creating the \acro{HTML} links.
+% creating the \HTML\ links.
 %
 %    \begin{macrocode}
 \newcommand*{\LWRsetnextfloat}[2]{%
@@ -11529,11 +12342,11 @@
 % \end{macro}
 
 % \DescribeCounter{LWR at latestautopage}
-% Updated each time a new \acro{HTML} file is begun.
+% Updated each time a new \HTML\ file is begun.
 % \cs{LWRsetnextfloat} is written with this and the autofloat
 % by the modified \cs{addcontentsline} just before each float's entry.
 %    \begin{macrocode}
-\newcounter{LWR at latestautopage}% updated each new HTML file
+\newcounter{LWR at latestautopage}
 \setcounter{LWR at latestautopage}{1}
 %    \end{macrocode}
 
@@ -11544,7 +12357,7 @@
 %    \end{macrocode}
 
 % \begin{macro}{\LWR at caption@begin}
-% Low-level patches to create \acro{HTML} tags for captions.
+% Low-level patches to create \HTML\ tags for captions.
 %    \begin{macrocode}
 \newcommand{\LWR at caption@begin}
 {
@@ -11563,7 +12376,7 @@
 \RenewDocumentEnvironment{minipage}{O{t} o O{t} m}{}{}%
 \RenewDocumentCommand{\parbox}{O{t} o O{t} m +m}{##5}%
 %    \end{macrocode}
-% Enclose the original caption code inside an \acro{HTML} tag:
+% Enclose the original caption code inside an \HTML\ tag:
 %    \begin{macrocode}
 \LWR at htmlblocktag{figcaption}%
 \LWR at origcaption@begin%
@@ -11572,13 +12385,13 @@
 % \end{macro}
 
 % \begin{macro}{\LWR at caption@end}
-% Low-level patches to create \acro{HTML} tags for captions.
+% Low-level patches to create \HTML\ tags for captions.
 %    \begin{macrocode}
 \newcommand{\LWR at caption@end}
 {%
 \LWR at origcaption@end%
 %    \end{macrocode}
-% Subcaptions were being over-written by the closing \acro{HTML} tag:
+% Subcaptions were being over-written by the closing \HTML\ tag:
 %    \begin{macrocode}
 \vspace*{\baselineskip}%
 %    \end{macrocode}
@@ -11594,7 +12407,7 @@
 
 % \begin{macro}{\caption at begin}
 % \begin{macro}{\caption at end}
-% Low-level patches to create \acro{HTML} tags for captions.
+% Low-level patches to create \HTML\ tags for captions.
 %    \begin{macrocode}
 \AtBeginDocument{
 \let\caption at begin\LWR at caption@begin
@@ -11607,7 +12420,7 @@
 
 % \begin{macro}{\captionlistentry}
 % Tracks the float number for this caption used outside a float.
-% Patched to create an \acro{HTML} anchor.
+% Patched to create an \HTML\ anchor.
 %    \begin{macrocode}
 \let\LWR at origcaptionlistentry\captionlistentry
 
@@ -11656,7 +12469,7 @@
 
 % \begin{macro}{\captionof}
 % Patched to track the float number since this is used outside a float,
-% and also create an \acro{HTML} anchor for the virtual float.
+% and also create an \HTML\ anchor for the virtual float.
 %    \begin{macrocode}
 \AtBeginDocument{
 \let\LWR at origcaptionof\captionof
@@ -11685,13 +12498,13 @@
 %
 % The |.toc|, |.lof|, and |.lot| files are named by the source code \cs{jobname}.
 %
-% In \acro{HTML}, the printed tables are placed inside a div of class |.toc|, |.lof|, or |.lot|.
+% In \HTML, the printed tables are placed inside a div of class |.toc|, |.lof|, or |.lot|.
 %
 % A ``sidetoc'' is provided which prints a subset of the TOC on the side of each page other
 % than the homepage.
 %
 % The regular \LaTeX{} infrastructure is used for TOC,
-% along with some patches to generate \acro{HTML} output.
+% along with some patches to generate \HTML\ output.
 
 % \codehtml
 %    \begin{macrocode}
@@ -11704,13 +12517,13 @@
 % \begin{macro}{\LWR at myshorttoc} \marg{toc/lof/lot}
 % \changes{v0.18}{2016/05/19}{Reorganize \cs{HomeHTMLFilename} logic.}
 %
-% Reads in and prints the \acro{TOC}/\acro{LOF}/\acro{LOT} at the current position.
+% Reads in and prints the \TOC/\LOF/\LOT\ at the current position.
 % While doing so, makes the |@| character into a normal letter to allow
 % formatting commands in the section names.
 
 % Unlike in regular \LaTeX{}, the file is not reset after being read, since
-% the \acro{TOC} may be referred to again in each \acro{HTML} page, and is
-% used for the side\acro{TOC}.
+% the \TOC\ may be referred to again in each \HTML\ page, and is
+% used for the side\TOC.
 %    \begin{macrocode}
 \newcommand*{\LWR at myshorttoc}[1]{
 \LWR at ensuredoingapar
@@ -11736,7 +12549,7 @@
 % \fi
 \makeatletter
 %    \end{macrocode}
-% Read in the \acro{TOC} file:
+% Read in the \TOC\ file:
 %    \begin{macrocode}
 \@input{\jobname.#1}
 % \makeatother
@@ -11769,7 +12582,7 @@
 %    \begin{macrocode}
 \@ifundefined{chapter}{\section*{#2}}{\chapter*{#2}}
 %    \end{macrocode}
-% Create a new \acro{HTML} |nav| containing the TOC/LOF/LOT:
+% Create a new \HTML\ |nav| containing the TOC/LOF/LOT:
 %    \begin{macrocode}
 \LWR at htmlelementclass{nav}{#1}
 %    \end{macrocode}
@@ -11785,7 +12598,7 @@
 % \end{macro}
 
 %
-% Patch \cs{@starttoc} to encapsulate the \acro{TOC} inside \acro{HTML} tags:
+% Patch \cs{@starttoc} to encapsulate the \TOC\ inside \HTML\ tags:
 %    \begin{macrocode}
 \let\LWR at orig@starttoc\@starttoc
 
@@ -11802,24 +12615,35 @@
 \let\LWR at origtableofcontents\tableofcontents
 \let\LWR at origlistoffigures\listoffigures
 \let\LWR at origlistoftables\listoftables
+
 \renewcommand*{\tableofcontents}{%
 %    \end{macrocode}
-% Copy the |.toc| file to |.sidetoc| for printing the sidetoc.
+% Do not print the table of contents if formatting for a word processor,
+% which will presumably auto-generate its own updated table of contents:
+%    \begin{macrocode}
+\ifbool{FormatWordProcessor}{}{
+%    \end{macrocode}
+% Copy the |.toc| file to |.sidetoc| for printing the side\TOC.
 % The original |.toc| file is renewed when \cs{tableofcontents} is finished.
 %    \begin{macrocode}
 \LWR at copyfile{\jobname.toc}{\jobname.sidetoc}%
 \LWR at printpendingfootnotes
-\LWR at origtableofcontents%
+\LWR at origtableofcontents
 }
+}
 \renewcommand*{\listoffigures}{
+\ifbool{FormatWordProcessor}{}{
 \LWR at printpendingfootnotes
 \LWR at origlistoffigures
 }
+}
 
 \renewcommand*{\listoftables}{
+\ifbool{FormatWordProcessor}{}{
 \LWR at printpendingfootnotes
 \LWR at origlistoftables
 }
+}
 %    \end{macrocode}
 
 
@@ -11849,11 +12673,12 @@
 %
 % It may be renamed by redefining \cs{sidetocname}, and may contain paragraphs.
 %
-% \acro{CSS} may be used to format the sideTOC:
+% \CSS\ may be used to format the sideTOC:
 %
 % \begin{docsidebar}[CSS related to sideTOC:]
+%	\raggedright
 % \begin{description}[parsep=0ex]
-% \item [|nav.sidetoc|:] The entire sideTOC.
+% \item [|nav.sidetoc|:] The entire side\TOC.
 % \item [|div.sidetoctitle|:] The title.
 % \item [|div.sidetoccontents|:] The table of contents.
 % \end{description}
@@ -11878,7 +12703,7 @@
 %    \end{macrocode}
 
 % \begin{macro}{\sidetocname}
-% Holds the default name for the sidetoc.
+% Holds the default name for the side\TOC.
 %
 %    \begin{macrocode}
 \newcommand{\sidetocname}{Contents}
@@ -11899,10 +12724,11 @@
 % Creates the actual side-TOC.
 %    \begin{macrocode}
 \newcommand*{\LWR at sidetoc}{
+\LWR at forcenewpage
 \LWR at stoppars
 
 %    \end{macrocode}
-% The entire sideTOC is placed into a |nav| of class |sidetoc|.
+% The entire side\TOC\ is placed into a |nav| of class |sidetoc|.
 %    \begin{macrocode}
 \LWR at htmlelementclass{nav}{sidetoc}
 
@@ -11966,8 +12792,8 @@
 \ifthenelse{\cnttest{#1}{<=}{\value{tocdepth}}}{%
 \LWR at startpars%
 %    \end{macrocode}
-% Create an \acro{HTML} link to filename\#autosec-(page), with text of the caption,
-% of the given \acro{HTML} class.
+% Create an \HTML\ link to filename\#autosec-(page), with text of the caption,
+% of the given \HTML\ class.
 %    \begin{macrocode}
 \LWR at subhyperrefclass{%
 \LWR at htmlrefsectionfilename{autopage-#4}\#autosec-#4}{#3}{toc#2}%
@@ -11978,13 +12804,13 @@
 %    \end{macrocode}
 % \end{macro}
 
-% \DescribeCounter{lofdepth} \acro{TOC} depth for figures.
+% \DescribeCounter{lofdepth} \TOC\ depth for figures.
 %    \begin{macrocode}
 \newcounter{lofdepth}
 \setcounter{lofdepth}{1}
 %    \end{macrocode}
 
-% \DescribeCounter{lotdepth} \acro{TOC} depth for tables.
+% \DescribeCounter{lotdepth} \TOC\ depth for tables.
 %    \begin{macrocode}
 \newcounter{lotdepth}
 \setcounter{lotdepth}{1}
@@ -12022,9 +12848,9 @@
 \ifthenelse{\cnttest{#1}{<=}{\arabic{#3depth}}}{%
 \LWR at startpars%
 %    \end{macrocode}
-% Create an \acro{HTML} link to
+% Create an \HTML\ link to
 % filename\#autofloat-(float number), with text of the caption,
-% of the given \acro{HTML} class.
+% of the given \HTML\ class.
 %    \begin{macrocode}
 \LWR at subhyperrefclass{%
 \LWR at htmlrefsectionfilename{autopage-\arabic{LWR at nextautopage}}%
@@ -12057,7 +12883,7 @@
 
 
 
-% \section{Index}
+% \section{Index and glossary}
 
 % See:\\
 % \href{http://tex.stackexchange.com/questions/187038/how-to-mention-section-number-in-index-created-by-imakeidx}
@@ -12064,11 +12890,26 @@
 %   {\texttt{http://tex.stackexchange.com/questions/187038/\\
 %		\hspace*{2em}how-to-mention-section-number-in-index-created-by-imakeidx}}
 
+% Index links are tracked by the counter |LWR at autoindex|.
+% This counter is used to create a label for each index entry, and
+% a reference to this label for each entry in the index listing.
+% This method allows each index entry to link directly to its exact position in the document.
+
 % \codehtml
 %    \begin{macrocode}
 \begin{warpHTML}
 %    \end{macrocode}
 
+
+%    \begin{macrocode}
+\newcounter{LWR at autoindex}
+\setcounter{LWR at autoindex}{0}
+
+\newcounter{LWR at autoglossary}
+\setcounter{LWR at autoglossary}{0}
+%    \end{macrocode}
+
+
 % \begin{macro}{\LWR at indexsection}
 %
 % Controls whether the index will be in a section or a chapter, depending on
@@ -12133,7 +12974,36 @@
 % \end{macro}
 
 
+% \begin{macro}{\@wrindex} \marg{term} \qquad
+% Redefined to write the |LWR at latestautopage| counter instead of |page|
+% \changes{v0.28}{2017/04/13}{Improved indexing.}
+%    \begin{macrocode}
+\def\@wrindex#1{%
+\addtocounter{LWR at autoindex}{1}%
+\LWR at newlabel{LWRindex-\theLWR at autoindex}%
+\protected at write\@indexfile{}%
+{\string\indexentry{#1}{\theLWR at autoindex}}%
+\endgroup
+\@esphack}
+%    \end{macrocode}
+% \end{macro}
 
+
+% \begin{macro}{\@wrglossary} \marg{term} \qquad
+% Redefined to write the |LWR at latestautopage| counter instead of |page|
+%    \begin{macrocode}
+\def\@wrglossary#1{%
+\addtocounter{LWR at autoglossary}{1}%
+\LWR at newlabel{LWRglossary-\theLWR at autoglossary}%
+\protected at write\@glossaryfile{}%
+{\string\glossaryentry{#1}{\theLWR at autoglossary}}%
+\endgroup
+\@esphack}
+%    \end{macrocode}
+% \end{macro}
+
+
+
 % \begin{macro}{\hyperindexref} \marg{autosecnumber}
 %
 % |\hyperindexref{web address}| is inserted into |*.ind| by
@@ -12140,18 +13010,10 @@
 % the xindy style file |lwarp_html.xdy|
 %
 % \changes{v0.20}{2016/12/19}{Print mode provided in case hyperref not used.}
+% \changes{v0.28}{2017/04/13}{Improved indexing.}
 %    \begin{macrocode}
 \newcommand*{\hyperindexref}[1]{
-\LWR at htmltag{a href="%
-%    \end{macrocode}
-% Create an \acro{HTML} reference to the autosection:
-%    \begin{macrocode}
-\LWR at htmlrefsectionfilename{autopage-#1}\#autosec-#1"{}}%
-%    \end{macrocode}
-% Add the section number and section name, then close the tag:
-%    \begin{macrocode}
-\LWR at origref{autopage-#1}\enskip\LWR at nameref{autopage-#1}%
-\LWR at htmltag{/a}%
+\nameref{LWRindex-#1}%
 }
 %    \end{macrocode}
 % \end{macro}
@@ -12205,7 +13067,7 @@
 
 
 % \DescribeMacro{\$}
-%	Plain dollar signs appearing in the \acro{HTML} output may be interpreted
+%	Plain dollar signs appearing in the \HTML\ output may be interpreted
 %	by MathJax to be math shifts.
 %	For a plain text dollar |\$|, print it inside a span to avoid
 %	it being interpreted by MathJax, unless are inside a lateximage,
@@ -12226,7 +13088,7 @@
 
 %
 % \DescribeCounter{LWR at externalfilecnt}
-% Counter for the external files which are generated and then referenced from the \acro{HTML}:
+% Counter for the external files which are generated and then referenced from the \HTML:
 %    \begin{macrocode}
 \newcounter{LWR at externalfilecnt}
 %    \end{macrocode}
@@ -12237,12 +13099,14 @@
 
 %    \begin{macrocode}
 \let\LWR at origdollar=$
-\let\secondorigdollar=$% balance for editor syntax highlighting
+\let\LWR at secondorigdollar=$% balance for editor syntax highlighting
 %    \end{macrocode}
 
 %    \begin{macrocode}
 \let\LWR at origopenparen\(
 \let\LWR at origcloseparen\)
+\let\LWR at origopenbracket\[
+\let\LWR at origclosebracket\]
 %    \end{macrocode}
 
 % \DescribeObject{\$}
@@ -12362,7 +13226,7 @@
 % and number for the following equations.
 %
 % These MathJax commands are printed inside ``\cs{(}'' and ``\cs{)}'' characters.
-% They are printed to \acro{HTML} output, not interpreted by \LaTeX.
+% They are printed to \HTML\ output, not interpreted by \LaTeX.
 %    \begin{macrocode}
 \newcommand*{\LWR at syncmathjax}{%
 %    \end{macrocode}
@@ -12391,7 +13255,7 @@
 \addtocounter{LWR at nextequation}{1}
 %    \end{macrocode}
 % Place the MathJax command inside ``\cs{(}'' and ``\cs{)}'' characters,
-% to be printed to \acro{HTML}, not interpreted by \LaTeX.
+% to be printed to \HTML, not interpreted by \LaTeX.
 %    \begin{macrocode}
 \BlockClassSingle{hidden}{
 \textbackslash(
@@ -12407,7 +13271,7 @@
 
 
 % \begin{macro}{\LWR at restoremathlatexformatting}
-% While producing math, use regular \LaTeX\ formatting instead of \acro{HTML} tags.
+% While producing math, use regular \LaTeX\ formatting instead of \HTML\ tags.
 %    \begin{macrocode}
 \newcommand*{\LWR at restoremathlatexformatting}{%
 \let\hspace\LWR at orighspace%
@@ -12434,17 +13298,17 @@
 % \begin{macro}{\LWR at hidelatexequation} \marg{environment} \marg{contents}
 %
 % Creates the \LaTeX{} version of the equation
-% inside an \acro{HTML} comment.
+% inside an \HTML\ comment.
 %    \begin{macrocode}
 \NewDocumentCommand{\LWR at hidelatexequation}{m +m}{%
 %    \end{macrocode}
-% Stop \acro{HTML} paragraph handling and open an \acro{HTML} comment:
+% Stop \HTML\ paragraph handling and open an \HTML\ comment:
 %    \begin{macrocode}
 \LWR at stoppars
 \LWR at htmlopencomment
 
 %    \end{macrocode}
-% Start the LaTeX math environment inside the \acro{HTML} comment:
+% Start the LaTeX math environment inside the \HTML\ comment:
 %    \begin{macrocode}
 \begingroup
 \csuse{LWR at orig#1}
@@ -12454,9 +13318,9 @@
 %    \begin{macrocode}
 \LWR at restoremathlatexformatting
 %    \end{macrocode}
-% ^^A When a label is encountered, the HTML comment is closed,
+% ^^A When a label is encountered, the \HTML\ comment is closed,
 % ^^A the label is generated in an HTML-output context,
-% ^^A then the HTML comment is opened again.
+% ^^A then the \HTML\ comment is opened again.
 % See \cs{LWR at htmlmathlabel} in \cref{sec:amsmathsupport}.
 %
 % Print the contents of the equation:
@@ -12463,13 +13327,13 @@
 %    \begin{macrocode}
 #2
 %    \end{macrocode}
-% End the \LaTeX{} math environment inside the \acro{HTML} comment:
+% End the \LaTeX{} math environment inside the \HTML\ comment:
 %    \begin{macrocode}
 \csuse{LWR at origend#1}
 \endgroup
 
 %    \end{macrocode}
-% Close the \acro{HTML} comment and resume \acro{HTML} paragraph handling:
+% Close the \HTML\ comment and resume \HTML\ paragraph handling:
 %    \begin{macrocode}
 \LWR at htmlclosecomment
 \LWR at startpars
@@ -12483,7 +13347,7 @@
 %
 % Given the name of a math environment and its contents,
 % create a MathJax instance.
-% The contents are printed to \acro{HTML} output, not interpreted by \LaTeX.
+% The contents are printed to \HTML\ output, not interpreted by \LaTeX.
 %    \begin{macrocode}
 \NewDocumentCommand{\LWR at addmathjax}{m +m}{%
 
@@ -12492,7 +13356,7 @@
 %    \begin{macrocode}
 \textbackslash{}begin\{#1\}
 %    \end{macrocode}
-% Print the contents, sanitizing for \acro{HTML} special characters.
+% Print the contents, sanitizing for \HTML\ special characters.
 %    \begin{macrocode}
 \LWR at HTMLsanitizeexpand{\detokenize\expandafter{#2}}
 %    \end{macrocode}
@@ -12527,7 +13391,7 @@
 % which stores the contents of its environment in a
 % macro called \cs{BODY}.
 %
-% For \acro{SVG} math output, 
+% For \SVG\ math output, 
 % the contents are typeset using the original \env{equation}
 % inside a \env{lateximage}, along with an ALT tag
 % containing a detokenized copy of the \LaTeX\ source for
@@ -12534,9 +13398,9 @@
 % the math.
 %
 % For MathJax output, the contents are typeset in an
-% original \env{equation} environment placed inside a \acro{HTML}
+% original \env{equation} environment placed inside a \HTML\
 % comment, with special processing for \cs{label}s.
-% The contents are also printed to the \acro{HTML} output
+% The contents are also printed to the \HTML\ output
 % for processing by the MathJax script.
 %    \begin{macrocode}
 \NewEnviron{equation}{%
@@ -12552,13 +13416,13 @@
 %    \begin{macrocode}
 \LWR at syncmathjax
 %    \end{macrocode}
-% Print the \LaTeX\ math inside an \acro{HTML} comment:
+% Print the \LaTeX\ math inside an \HTML\ comment:
 %    \begin{macrocode}
 \LWR at hidelatexequation{equation}{\BODY}
 }
 %    \end{macrocode}
 % SVG output:
-% Create the |lateximage| along with an \acro{HTML} ALT tag
+% Create the |lateximage| along with an \HTML\ ALT tag
 % having an equation number, the \LaTeX{} equation environment
 % commmands, and the contents of the environment's \cs{BODY}.
 %    \begin{macrocode}
@@ -12580,7 +13444,7 @@
 }
 
 %    \end{macrocode}
-% After the environment, if MathJax, print the math to the \acro{HTML} output
+% After the environment, if MathJax, print the math to the \HTML\ output
 % for MathJax processing:
 %    \begin{macrocode}
 }[\ifbool{mathjax}{\LWR at addmathjax{equation}{\BODY}}{}]
@@ -12622,7 +13486,7 @@
 \LWR at traceinfo{LWR at htmlmathlabel #1}%
 \ifbool{mathjax}{%
 %    \end{macrocode}
-% The combined \LaTeX\ \& \acro{HTML} label is printed in a \cs{text} field:
+% The combined \LaTeX\ \& \HTML\ label is printed in a \cs{text} field:
 %    \begin{macrocode}
 \text{
 %    \end{macrocode}
@@ -12631,9 +13495,9 @@
 %    \begin{macrocode}
 \ifbool{LWR at amsmultline}{}{\hspace*{\totwidth@}}
 %    \end{macrocode}
-% Temporarily end the \acro{HTML} comment,
-% insert the \LaTeX{} \& \acro{HTML} label, then
-% resume the \acro{HTML} comment.
+% Temporarily end the \HTML\ comment,
+% insert the \LaTeX{} \& \HTML\ label, then
+% resume the \HTML\ comment.
 % \cs{@firstofone} is required to remove extra braces
 %	introduced by the \pkg{amsmath} package.)
 %    \begin{macrocode}
@@ -12651,7 +13515,7 @@
 
 
 % \begin{macro}{\LWR at beginhideamsmath}
-% Starts hiding \LaTeX\ math inside an \acro{HTML} comment.
+% Starts hiding \LaTeX\ math inside an \HTML\ comment.
 %    \begin{macrocode}
 \newcommand*{\LWR at beginhideamsmath}{
 \LWR at stoppars
@@ -12665,7 +13529,7 @@
 % \end{macro}
 
 % \begin{macro}{\LWR at endhideamsmath}
-% Ends hiding \LaTeX\ math inside an \acro{HTML} comment.
+% Ends hiding \LaTeX\ math inside an \HTML\ comment.
 %    \begin{macrocode}
 \newcommand*{\LWR at endhideamsmath}{
 \endgroup
@@ -12686,14 +13550,14 @@
 % The following \pkg{amsmath} environments already collect their contents
 % in \cs{@envbody} for further processing.
 %
-% For \acro{SVG} math: Each envrionment is encapsulated inside a \env{lateximage} environment,
+% For \SVG\ math: Each envrionment is encapsulated inside a \env{lateximage} environment,
 % along with a special |LWRAMSMATHBODY| argument
-% telling \env{lateximage} to use as the \acro{HTML} ALT tag the environment's contents which
+% telling \env{lateximage} to use as the \HTML\ ALT tag the environment's contents which
 % were automatically captured by the \AmS{} environment.
 %
 % For MathJax: Each environment is syched with \LaTeX's equation numbers,
-% typeset with \LaTeX\ inside an \acro{HTML} comment, then
-% printed to \acro{HTML} output for MathJax to process.
+% typeset with \LaTeX\ inside an \HTML\ comment, then
+% printed to \HTML\ output for MathJax to process.
 %
 
 % \begin{environment}{multline}
@@ -12931,17 +13795,17 @@
 
 % \section{Lateximages}
 
-% A |\lateximage| is typeset on its own \acro{PDF} page inside an \acro{HTML} comment
+% A |\lateximage| is typeset on its own \PDF\ page inside an \HTML\ comment
 % which starts on the preceeding page and ends on following page, and instructions are written to
-% |lateximage.txt| for |lwarpmk| to extract the |\lateximage| from the page of the \acro{PDF} file
+% |lateximage.txt| for |lwarpmk| to extract the |\lateximage| from the page of the \PDF\ file
 % then generate an accompanying |.svg| file image file.  Meanwhile, instructions to
-% show this image are placed into the \acro{HTML} file after the comment.
+% show this image are placed into the \HTML\ file after the comment.
 %
-% An \acro{HTML} span is created to hold both the \acro{HTML} comment,
+% An \HTML\ span is created to hold both the \HTML\ comment,
 % which will have the |pdftotext| conversion,
 % and also the link to the final |.svg| image.
 %
-% A \LaTeX\ label is used to remember which \acro{PDF} page has the image.
+% A \LaTeX\ label is used to remember which \PDF\ page has the image.
 % A label is used because footnotes, endnotes, and pagenotes may cause the image to appear
 % at a later time.  The label is declared along with the image, and so it correctly remembers
 % where the image finally ended up.
@@ -12982,7 +13846,7 @@
 %
 %
 % \DescribeCounter{LWR at LIpage}
-% Used to reference the \acro{PDF} page number of a lateximage
+% Used to reference the \PDF\ page number of a lateximage
 % to be written into |lateximages.txt|.
 %    \begin{macrocode}
 \newcounter{LWR at LIpage}
@@ -13002,7 +13866,7 @@
 % \begin{macro}{\LateximageFontSizeName}
 % \changes{v0.19}{2016/05/29}{Add: User-adjustable math/lateximage font size.}
 % Declares how large to write text in the |\lateximage|.  The |.svg| file text size
-% should blend well with the surrounding \acro{HTML} text size.
+% should blend well with the surrounding \HTML\ text size.
 %
 % \emph{Do not include the leading backslash in the name.}
 %    \begin{macrocode}
@@ -13025,7 +13889,7 @@
 %
 % Math expressions are converted to |lateximage|s, and some math environments may contain
 % ``\&'', ``\textless'', or ``\textgreater'', which should not be allowed
-% inside an \acro{HTML} ALT tag, so must convert them to \acro{HTML} entities.
+% inside an \HTML\ ALT tag, so must convert them to \HTML\ entities.
 %
 % Two versions follow, depending on expansion needs.
 % There may be a better way\dots
@@ -13119,7 +13983,7 @@
 \setcounterpageref{LWR at LIpage}{LWRlateximage\theLWR at lateximagenumber}%
 \LWR at traceinfo{lateximage: LWR at LIpage is \arabic{LWR at LIpage}}%
 %    \end{macrocode}
-% Create an \acro{HTML} span which will hold the comment which contains the |pdftotext| translation
+% Create an \HTML\ span which will hold the comment which contains the |pdftotext| translation
 % of the image's page, and also will hold the link to the |.svg| file:
 %    \begin{macrocode}
 \LWR at htmltag{span id="lateximage\arabic{LWR at lateximagenumber}" %
@@ -13130,13 +13994,13 @@
 \immediate\write\LWR at file{|\theLWR at LIpage|\theLWR at externalfilecnt|}%
 %    \end{macrocode}
 % Place an open comment tag at the bottom of page; footnotes will be above this tag.
-% This will hide any traces of the lateximage \acro{PDF} page which were picked up by
+% This will hide any traces of the lateximage \PDF\ page which were picked up by
 % |pdftotext|.
 %    \begin{macrocode}
 \LWR at htmlopencomment%
 \addtocounter{LWR at lateximagedepth}{1}%
 %    \end{macrocode}
-% Start the new \acro{PDF} page:
+% Start the new \PDF\ page:
 %    \begin{macrocode}
 \LWR at orignewpage%
 %    \end{macrocode}
@@ -13145,8 +14009,8 @@
 \LWR at origminipage{6in}%
 \csuse{LWR at orig\LateximageFontSizeName}%
 %    \end{macrocode}
-% Temporarily restore formatting to its \acro{PDF} definitions:
-% Do not produce \acro{HTML} tags for \cs{hspace}, etc. inside a lateximage.
+% Temporarily restore formatting to its \PDF\ definitions:
+% Do not produce \HTML\ tags for \cs{hspace}, etc. inside a lateximage.
 %    \begin{macrocode}
 \let\hspace\LWR at orighspace%
 \let\rule\LWR at origrule%
@@ -13183,13 +14047,13 @@
 %    \begin{macrocode}
 {% end of outer-most lateximage
 %    \end{macrocode}
-% Finish the lateximage minipage and start a new \acro{PDF} page:
+% Finish the lateximage minipage and start a new \PDF\ page:
 %    \begin{macrocode}
 \LWR at origendminipage%
 \LWR at orignewpage%
 \LWR at origscriptsize%
 %    \end{macrocode}
-% Close the \acro{HTML} comment which encapsulated any traces of the lateximage picked up by |pdftotext|:
+% Close the \HTML\ comment which encapsulated any traces of the lateximage picked up by |pdftotext|:
 %    \begin{macrocode}
 \LWR at htmlclosecomment{}\LWR at orignewline%
 \LWR at traceinfo{lateximage: The page after the image is \arabic{page}}%
@@ -13219,10 +14083,12 @@
 %    \begin{macrocode}
 \LWR at ensuredoingapar%
 %    \end{macrocode}
-% Close the \acro{HTML} span which has the |pdftotext| comment and also the link to the |.svg| image:
+% Close the \HTML\ span which has the |pdftotext| comment and also the link to the |.svg| image:
 %    \begin{macrocode}
 \LWR at htmltag{/span}%
+\ifbool{HTMLDebugComments}{%
 \LWR at htmlcomment{End of lateximage}%
+}{}%
 % \LWR at orignewline% Removed to prevent extra space.
 %    \end{macrocode}
 % Undo one lateximage level:
@@ -13253,10 +14119,13 @@
 
 
 % \begin{environment}{center}
-% Replace \env{center} functionality with \acro{CSS} tags:
+% Replace \env{center} functionality with \CSS\ tags:
 %    \begin{macrocode}
 \renewenvironment*{center}
-{\BlockClass{center}}
+{
+\LWR at forcenewpage
+\BlockClass{center}
+}
 {\endBlockClass}
 %    \end{macrocode}
 % \end{environment}
@@ -13264,7 +14133,10 @@
 % \begin{environment}{flushright}
 %    \begin{macrocode}
 \renewenvironment*{flushright}
-{\BlockClass{flushright}}
+{
+\LWR at forcenewpage
+\BlockClass{flushright}
+}
 {\endBlockClass}
 %    \end{macrocode}
 % \end{environment}
@@ -13272,7 +14144,10 @@
 % \begin{environment}{flushleft}
 %    \begin{macrocode}
 \renewenvironment*{flushleft}
-{\BlockClass{flushleft}}
+{
+\LWR at forcenewpage
+\BlockClass{flushleft}
+}
 {\endBlockClass}
 %    \end{macrocode}
 % \end{environment}
@@ -13370,7 +14245,7 @@
 %
 % A scaled image in \LaTeX{} by default takes only as much space
 % on the page as it
-% requires, but \acro{HTML} browsers use as much space as the
+% requires, but \HTML\ browsers use as much space as the
 % \watchout[whitespace]
 % original unscaled image would have taken,
 % with the scaled image over- or under-flowing the area.
@@ -13379,7 +14254,7 @@
 \renewcommand*{\unitspace}{}
 %    \end{macrocode}
 
-% Used to store the user's selected dimensions and \acro{HTML} class.
+% Used to store the user's selected dimensions and \HTML\ class.
 %
 % The class defaults to ``inlineimage'' unless changed by a |class=xyx| option.
 %    \begin{macrocode}
@@ -13397,7 +14272,7 @@
 % Set the actions of each of the key/value combinations for
 % \cs{includegraphics}.  Many are ignored.
 %
-% If an optional width was given, set an \acro{HTML} style:
+% If an optional width was given, set an \HTML\ style:
 %    \begin{macrocode}
 \define at key{igraph}{width}{%
 \setlength{\LWR at igwidth}{#1}%
@@ -13427,7 +14302,7 @@
 }
 %    \end{macrocode}
 %
-% If an optional height was given, set an \acro{HTML} style:
+% If an optional height was given, set an \HTML\ style:
 %    \begin{macrocode}
 \define at key{igraph}{height}{%
 \setlength{\LWR at igheight}{#1}%
@@ -13558,8 +14433,15 @@
 \newcommand*{\LWR at expgraphicsfilename}{}
 %    \end{macrocode}
 
-% \begin{macro}{\LWR at includegraphicsb} \oarg{options} \marg{filename}
-% \changes{v0.18}{2016/04/14}{Improved HTML output linebreaks.}
+% \begin{macro}{\LWR at includegraphicsb} * \oarg{2: options} \oarg{3: options} \marg{4: filename}
+%
+% \pkg{graphics} syntax is \cs{includegraphics} * \oarg{llx,lly} \oarg{urx,ury} \marg{file}
+%
+% \pkg{graphicx} syntax is \cs{includegraphics} \oarg{key values} \marg{file}
+%
+% If |#3| is empty, only one optional argument was given, thus \pkg{graphicx} syntax.
+%
+% \changes{v0.18}{2016/04/14}{Improved \HTML\ output linebreaks.}
 % \changes{v0.18}{2016/05/17}{Fix: \cs{linewidth}, \cs{textwidth}, \cs{textheight}
 %	inside a minipage.}
 % \changes{v0.18}{2016/05/17}{em, ex, \%, px dimensions preserved.}
@@ -13566,12 +14448,13 @@
 % \changes{v0.18}{2016/05/17}{Add: svgz file extension.}
 % \changes{v0.20}{2016/08/20}{Fix: \cs{linewidth} in a floatrow.}
 % \changes{v0.20}{2017/01/12}{Fix: Expands filename.}
+% \changes{v0.28}{2017/04/12}{Adapts to \pkg{graphics} syntax.}
+% \changes{v0.29}{2017/04/15}{Fix: Error when no optional arguments.}
 %    \begin{macrocode}
-
-\newcommand*{\LWR at includegraphicsb}[2][]
+\NewDocumentCommand{\LWR at includegraphicsb}{s o o m}
 {%
 %    \end{macrocode}
-% Start the image tag on a new line, allow \acro{PDF} output word wrap:
+% Start the image tag on a new line, allow \PDF\ output word wrap:
 %    \begin{macrocode}
 \LWR at origtilde \LWR at orignewline%
 %    \end{macrocode}
@@ -13595,7 +14478,7 @@
 % |\detokenize\expandafter| allows underscore characters in filenames.
 %
 %    \begin{macrocode}
-\edef\LWR at expgraphicsfilename{#2}
+\edef\LWR at expgraphicsfilename{#4}
 \renewcommand*{\LWR at imageextension}{}%
 \IfFileExists{\detokenize\expandafter\thisgraphicspath\LWR at expgraphicsfilename.jpg}%
 {\renewcommand*{\LWR at imageextension}{.jpg}}{}%
@@ -13619,7 +14502,7 @@
 {\renewcommand*{\LWR at imageextension}{.SVGZ}}{}%
 %    \end{macrocode}
 %
-% Convert a \acro{PDF} extension to \acro{SVG}, leave the result in |\LWR at strresult|:
+% Convert a \PDF\ extension to \SVG, leave the result in |\LWR at strresult|:
 %
 % Must also |\detokenize| |.pdf| and |.svg| comparison strings.
 %    \begin{macrocode}
@@ -13646,12 +14529,15 @@
 \renewcommand*{\LWR at igclass}{inlineimage}%
 %    \end{macrocode}
 % 
-% Options are in |#1|
-% 
+% If |#3| is empty, only one optional argument was given, thus \pkg{graphicx} syntax:
 %    \begin{macrocode}
-\setkeys{igraph}{#1}%
+\IfValueTF{#3}{}{%
+\IfValueTF{#2}%
+{\setkeys{igraph}{#2}}%
+{\setkeys{igraph}{}}%
+}%
 %    \end{macrocode}
-% Create the \acro{HTML} reference with the graphicspath, filename, extension,
+% Create the \HTML\ reference with the graphicspath, filename, extension,
 % alt tag, style, and class.
 %
 % The \cs{LWR at origtilde} adds space between tags in case this
@@ -13711,7 +14597,7 @@
 
 % Handles width and height, converted to fixed width and heights.
 
-% Converts any |.pdf| references to |.svg| for \acro{HTML}
+% Converts any |.pdf| references to |.svg| for \HTML\
 
 % The user should always refer to |.pdf| in the document source.
 
@@ -13719,7 +14605,7 @@
 \renewcommand*{\includegraphics}
 {%
 %    \end{macrocode}
-% This graphic should trigger an \acro{HTML} paragraph even if alone,
+% This graphic should trigger an \HTML\ paragraph even if alone,
 % so ensure that are doing paragraph handling:
 %    \begin{macrocode}
 \LWR at ensuredoingapar%
@@ -13760,7 +14646,7 @@
 % \begin{macro}{\LWR at originname} \marg{letter}
 %
 % Given one \LaTeX{} origin key value,
-% translate into an \acro{HTML} origin word:
+% translate into an \HTML\ origin word:
 %    \begin{macrocode}
 \newcommand*{\LWR at originname}[1]{%
 \ifthenelse{\equal{#1}{t}}{top}{}%
@@ -13776,7 +14662,7 @@
 % \begin{macro}{\LWR at originnames} \marg{letters}
 %
 % Given one- or two-letter \LaTeX{} origin key values,
-% translate into \acro{HTML} origin words:
+% translate into \HTML\ origin words:
 %    \begin{macrocode}
 \newcommand*{\LWR at originnames}[1]{%
 \StrChar{#1}{1}[\LWR at strresult]%
@@ -13817,7 +14703,7 @@
 %    \begin{macrocode}
 \setkeys{krotbox}{#1}%
 %    \end{macrocode}
-% Select |inline-block| so that \acro{HTML} will transform this span:
+% Select |inline-block| so that \HTML\ will transform this span:
 %    \begin{macrocode}
 \LWR at htmltagc{span style="display: inline-block; %
 %    \end{macrocode}
@@ -13853,7 +14739,7 @@
 %    \begin{macrocode}
 \NewDocumentCommand{\LWR at scalebox}{m o m}{%
 %    \end{macrocode}
-% Select |inline-block| so that \acro{HTML} will transform this span:
+% Select |inline-block| so that \HTML\ will transform this span:
 %    \begin{macrocode}
 \LWR at htmltagc{span style="display: inline-block; %
 %    \end{macrocode}
@@ -13894,7 +14780,7 @@
 
 % \subsection{Null functions}
 %
-% These functions are not supported by \pkg{lwarp}'s \acro{HTML} conversion.
+% These functions are not supported by \pkg{lwarp}'s \HTML\ conversion.
 
 % \codehtml
 %    \begin{macrocode}
@@ -13916,27 +14802,6 @@
 
 
 
-
-
-% ^^A \RequirePackage[version=3]{mhchem}
-% ^^A 
-% ^^A 
-% ^^A % use before and after environment hooks
-% ^^A \let\LWR at origce\ce
-% ^^A 
-% ^^A \renewcommand{\ce}[1]{
-% ^^A \begin{lateximage}
-% ^^A \LWR at origce{#1}
-% ^^A \end{lateximage}
-% ^^A }
-% ^^A 
-% ^^A 
-% ^^A \RequirePackage{rsphrase}
-
-
-
-
-
 % \section{Cleverref}
 % \label{sec:cleveref}
 
@@ -13947,9 +14812,9 @@
 % \margintag{loading order}
 % automatically preloaded at the end of the preamble via \cs{AtEndPreamble}
 % and \cs{AfterEndPreamble}.
-% This is done because the \acro{HTML} conversion requires \pkg{cleveref}.
+% This is done because the \HTML\ conversion requires \pkg{cleveref}.
 % The user's document may not require \pkg{cleveref}, thus the user
-% may never explicitly load it, so during \acro{HTML} output \pkg{lwarp} loads it last.
+% may never explicitly load it, so during \HTML\ output \pkg{lwarp} loads it last.
 % If the user's document preamble uses \pkg{cleveref} options, or functions such as
 % \cs{crefname}, then \pkg{cleveref} may be loaded in the user's preamble near the
 % end, and \pkg{lwarp}'s additional loading of \pkg{cleveref} will have no effect.
@@ -14106,7 +14971,7 @@
 
 % \section{Boxes and Minipages}
 %
-% A \acro{CSS} flexbox is used for minipages and parboxes,
+% A \CSS\ flexbox is used for minipages and parboxes,
 % allowing external and internal vertical positioning.
 %
 %
@@ -14179,15 +15044,15 @@
 % \end{macro}
 
 % \begin{macro}{\LWR at subminipage}
-% Used to create a \acro{PDF} minipage without creating an \acro{HTML} minipage.
+% Used to create a \PDF\ minipage without creating an \HTML\ minipage.
 % This allows footnotes to appear at the bottom of the minipage instead of
-% the bottom of the \acro{HTML} page.
+% the bottom of the \HTML\ page.
 %    \begin{macrocode}
 \newcommand*{\LWR at subminipage}{%
 \LWR at stoppars
 \LWR at origminipage{6in}
 %    \end{macrocode}
-% |\raggedright| cancels hyphenation, which will be done by \acro{HTML} instead.
+% |\raggedright| cancels hyphenation, which will be done by \HTML\ instead.
 %    \begin{macrocode}
 \LWR at origraggedright%
 %    \end{macrocode}
@@ -14211,7 +15076,7 @@
 % \end{macro}
 
 
-% \DescribeBoolean{LWR at minipagefullwidth} Should the next minipage have no \acro{HTML} |width|?
+% \DescribeBoolean{LWR at minipagefullwidth} Should the next minipage have no \HTML\ |width|?
 %    \begin{macrocode}
 \newbool{LWR at minipagefullwidth}
 \boolfalse{LWR at minipagefullwidth}
@@ -14218,7 +15083,7 @@
 %    \end{macrocode}
 %
 % \begin{macro}{\minipagefullwidth} Requests that the next minipage
-% have no |width| tag in \acro{HTML}:
+% have no |width| tag in \HTML:
 % \changes{v0.19}{2016/05/28}{Added: No width tag for the next minipage in HTML.}
 %
 % \codehtml
@@ -14295,6 +15160,7 @@
 % Create the |<div>| tag with optional alignment style:
 %    \begin{macrocode}
 \LWR at traceinfo{minipage: creating div class}%
+\LWR at orignewpage%
 \LWR at htmltag{div class="minipage" style="%
 \ifthenelse{\equal{#1}{t}}{vertical-align: bottom ; }{}%
 \ifthenelse{\equal{#1}{c}}{vertical-align: middle ; }{}%
@@ -14328,13 +15194,13 @@
 % Set the user-accessible minipage and text width and height values inside the minipage.
 % These do not affect the actual size of the large minipage created by
 % \cs{LWR at origminipage} above, but are used by any reference to \cs{linewidth}, etc.
-% inside the \acro{PDF} minipage being created here.
+% inside the \PDF\ minipage being created here.
 %    \begin{macrocode}
 \setlength{\linewidth}{#4}% the original width
 \setlength{\textwidth}{6in}%
 \setlength{\textheight}{9in}%
 %    \end{macrocode}
-% |\raggedright| cancels hyphenation, which will be done by \acro{HTML} instead.
+% |\raggedright| cancels hyphenation, which will be done by \HTML\ instead.
 %    \begin{macrocode}
 \LWR at origraggedright%
 %    \end{macrocode}
@@ -14489,8 +15355,9 @@
 % \end{macro}
 
 % \begin{macro}{\textup} \marg{text}
+% \changes{v0.28}{2017/04/13}{Fixed span class.}
 %    \begin{macrocode}
-\renewcommand{\textup}[1]{\LWR at htmlspan{textup}{#1}}
+\renewcommand{\textup}[1]{\InlineClass{textup}{#1}}
 %    \end{macrocode}
 % \end{macro}
 
@@ -14671,7 +15538,7 @@
 \let\LWR at origmedskip\medskip
 %    \end{macrocode}
 
-% Direct-formatting space commands become \acro{HTML} entities:
+% Direct-formatting space commands become \HTML\ entities:
 %    \begin{macrocode}
 \renewcommand*{\,}{\HTMLunicode{202f}}	% HTML thin non-breakable space
 %    \end{macrocode}
@@ -14715,7 +15582,7 @@
 
 
 % \begin{macro}{\newline}
-% Uses \acro{HTML} |<br />| tag
+% Uses \HTML\ |<br />| tag
 %    \begin{macrocode}
 \newcommand*{\LWR at newlinebr}{\unskip\LWR at htmltag{br /}\LWR at orignewline}%
 \let\newline\LWR at newlinebr
@@ -14732,6 +15599,7 @@
 %
 % Inside |tabular|, |\\| is temporarily changed to \cs{LWR at tabularendofline}.
 %    \begin{macrocode}
+\let\LWR at origendofline\\
 \NewDocumentCommand{\LWR at endofline}{s o}
 {%
 \newline%
@@ -14749,7 +15617,7 @@
 % \index{space>horizontal between minipages}
 % \index{horizontal space>between minipages}
 % Minipages are often placed side-by-side inside figures, with a bit of
-% horizontal space to separate them.  Since \acro{HTML} does not allow
+% horizontal space to separate them.  Since \HTML\ does not allow
 % a \tag{div} to be inside a |p|, paragraphs must be turned off during the
 % generation of the minipage, then turned on after the minipage is complete.
 % When this occurs between side-by-side minipages, |lwarp| correctly
@@ -14770,10 +15638,10 @@
 % |LWR at minipagethispar| is set, telling the following horizontal
 % whitespace commands to try to surpress their surrounding paragraph
 % tags.  |LWR at minipagethispar| is cleared at the next
-% end of paragraph, when the \acro{HTML} paragraph closing tag is
+% end of paragraph, when the \HTML\ paragraph closing tag is
 % generated.
 %
-% Placed just before \cs{hspace}, \cs{quad}, or \cs{qquad}'s \acro{HTML} output.
+% Placed just before \cs{hspace}, \cs{quad}, or \cs{qquad}'s \HTML\ output.
 %    \begin{macrocode}
 \newcommand*{\LWR at minipagestartpars}{%
 \ifbool{LWR at minipagethispar}%
@@ -14785,7 +15653,7 @@
 % \end{macro}
 
 % \begin{macro}{\LWR at minipagestoppars}
-% Placed just after \cs{hspace}, \cs{quad}, or \cs{qquad}'s \acro{HTML} output.
+% Placed just after \cs{hspace}, \cs{quad}, or \cs{qquad}'s \HTML\ output.
 %    \begin{macrocode}
 \newcommand*{\LWR at minipagestoppars}{%
 \ifbool{LWR at minipagethispar}%
@@ -14843,7 +15711,7 @@
 % Handles special minipage \& horizontal space interactions.
 % \changes{v0.18}{2016/05/13}{\cs{hspace} supported.}
 % \changes{v0.19}{2016/05/29}{Fix: \cs{hspace} length computations.}
-% \changes{v0.20}{2016/08/22}{Add: Supports HTML thin breakable space.}
+% \changes{v0.20}{2016/08/22}{Add: Supports \HTML\ thin breakable space.}
 % \changes{v0.24}{2017/03/14}{Add: \cs{hspace} \cs{fill} converts to 2em}
 %
 % Prints a span of a given width.  Ignores the optional star.
@@ -14868,7 +15736,7 @@
 %    \begin{macrocode}
 \LWR at minipagestoppars%
 %    \end{macrocode}
-% Support the HTML thin wrappable space:
+% Support the \HTML\ thin wrappable space:
 %    \begin{macrocode}
 \ifthenelse{\dimtest{\LWR at tempwidth}{=}{.16667em}}
 {%
@@ -14905,7 +15773,7 @@
 
 
 % \begin{macro}{\linebreak} \oarg{num} \qquad
-% Inserts an \acro{HTML} |br| tag.
+% Inserts an \HTML\ |br| tag.
 %    \begin{macrocode}
 \renewcommand*{\linebreak}[1][]{\newline}
 %    \end{macrocode}
@@ -15001,13 +15869,13 @@
 width:\printlength{\LWR at tempwidth}; %
 height:\printlength{\LWR at tempheight}; %
 %    \end{macrocode}
-% The raise height is converted to a \acro{CSS} transform.
-% The |*2| raise multiplier is to approximately match \acro{HTML} output's X height.
+% The raise height is converted to a \CSS\ transform.
+% The |*2| raise multiplier is to approximately match \HTML\ output's X height.
 % Conversion to a \LaTeX\ length allows a typical \LaTeX\ expression to be
 % used as an argument for the raise, whereas printing the raise argument
-% directly to \acro{HTML} output without conversion to a \LaTeX\ length
+% directly to \HTML\ output without conversion to a \LaTeX\ length
 % limits the allowable syntax.  To do:\ A superior method would compute a
-% ratio of \LaTeX\ ex height, then print that to \acro{HTML} with an ex unit.
+% ratio of \LaTeX\ ex height, then print that to \HTML\ with an ex unit.
 %    \begin{macrocode}
 \IfValueTF{#1}%
 {%
@@ -15080,13 +15948,13 @@
 
 % \section{\textbackslash{}LaTeX and other logos}
 
-% Logos for \acro{HTML} and print modes:
+% Logos for \HTML\ and print modes:
 %
 % Some of these logos may be redefined in a later package,
 % so after loading other packages, and at the beginning of the document, their definitions
 % are finally |\let| in |\LWR at LwarpStart|.
 %
-% For \acro{CSS} conversions, see: \\
+% For \CSS\ conversions, see: \\
 % \url{http://edward.oconnor.cx/2007/08/tex-poshlet} \\
 % \url{http://nitens.org/taraborelli/texlogo}
 %
@@ -15103,9 +15971,9 @@
 % \begin{macro}{\TeX} \TeX
 % \nopagebreak
 %
-% |latexlogo| is a \acro{CSS} class used to properly typeset the E and A in \LaTeX{} and friends.
+% |latexlogo| is a \CSS\ class used to properly typeset the E and A in \LaTeX{} and friends.
 %
-% |latexlogofont| is a \acro{CSS} class used to select the font for the rest of the logo in
+% |latexlogofont| is a \CSS\ class used to select the font for the rest of the logo in
 % \LaTeX, \LuaTeX, \ConTeXt, etc.
 %    \begin{macrocode}
 \newcommand*{\LWR at TeX}
@@ -15140,10 +16008,10 @@
 % \begin{macro}{\XeLaTeX} \XeTeX, \XeLaTeX
 % \nopagebreak
 %
-% |xetexlogo| is a \acro{CSS} class which aligns the backwards E in \XeTeX{} and spaces \TeX{}
+% |xetexlogo| is a \CSS\ class which aligns the backwards E in \XeTeX{} and spaces \TeX{}
 % appropriately.
 %
-% |xelatexlogo| is a \acro{CSS} class which aligns the backwards E in \XeLaTeX{} and spaces
+% |xelatexlogo| is a \CSS\ class which aligns the backwards E in \XeLaTeX{} and spaces
 % \LaTeX{} appropriately.
 %    \begin{macrocode}
 \newcommand*{\Xe}
@@ -15174,7 +16042,7 @@
 % \begin{macro}{\AmS} \AmS
 % \nopagebreak
 %
-% |amslogo| is a \acro{CSS} class used for the \AmS logo.
+% |amslogo| is a \CSS\ class used for the \AmS logo.
 %    \begin{macrocode}
 \AtBeginDocument{\DeclareDocumentCommand{\AmS}{}
 {\InlineClass{amslogo}{\textit{A\textsubscript{M}S}}}}
@@ -15188,7 +16056,7 @@
 % \begin{macro}{\LyX} \LyX
 % \nopagebreak
 %
-% |lyxlogo| is a \acro{CSS} class used for the \LyX logo.
+% |lyxlogo| is a \CSS\ class used for the \LyX logo.
 %    \begin{macrocode}
 \newcommand*{\LyX}{\InlineClass{lyxlogo}{LyX}}
 %    \end{macrocode}
@@ -15229,7 +16097,7 @@
 
 % \begin{macro}{\LWR at LwarpStart}
 % \begin{macro}{\LWR at LwarpEnd}
-% Automatically sets up the \acro{HTML}-related actions for the start and end of the
+% Automatically sets up the \HTML-related actions for the start and end of the
 % document.
 %    \begin{macrocode}
 \AfterEndPreamble{\LWR at LwarpStart}
@@ -15265,10 +16133,12 @@
 % htmlfilename = ""   -- or "projectname" if numbered HTML files
 % \end{Verbatim}
 %
+% \changes{v0.29}{2017/04/15}{File \protect\texttt{lwarpmk.conf}: Add: \protect\texttt{language} option for config files.}
+%
 % Defaults unless already over-ridden by the user:
 %    \begin{macrocode}
 \providecommand*{\HomeHTMLFileName}{\BaseJobname}
-\providecommand*{\HTMLFileName}{}
+\providecommand*{\HTMLfiveName}{}
 \providecommand*{\UseLatexmk}{false}
 %    \end{macrocode}
 
@@ -15296,8 +16166,9 @@
 \immediate\write\LWR at file{%
 homehtmlfilename = "\HomeHTMLFileName"%
 }
-\immediate\write\LWR at file{htmlfilename = "\HTMLFileName"}
+\immediate\write\LWR at file{htmlfilename = "\HTMLfiveName"}
 \immediate\write\LWR at file{uselatexmk = "\UseLatexmk"}
+\immediate\write\LWR at file{language = "\LWR at lwarpmklang"}
 \immediate\closeout\LWR at file
 \end{warpprint}
 %    \end{macrocode}
@@ -15370,10 +16241,10 @@
 %
 %	\cs{BaseJobname} is also written to |<project>_html.tex| as an option
 %	given for the \pkg{lwarp} and \pkg{lwarp-newproject} packages during the
-%	creation of \acro{HTML} output.
+%	creation of \HTML\ output.
 %
 %	\cs{BaseJobname} is the \cs{jobname} of the printed version, even while compiling
-%	the \acro{HTML} version, where \cs{jobname} has |_html| appended.
+%	the \HTML\ version, where \cs{jobname} has |_html| appended.
 %
 % \DescribeOption[lwarp-newproject]{lwarpmk} Tells |lwarp-newproject| to
 %	generate a local copy of |lwarpmk| called |lwarpmk.lua|.
@@ -15380,6 +16251,10 @@
 %	Useful for archiving for future use.
 %	This file may be made executable and acts just like |lwarpmk|.
 %
+% \DescribeOption[lwarp-newproject]{lwarpmklang} Sets the language to be assigned
+%	in |lwarpmk|'s configuration files.  This is then used by |lwarpmk| while
+%	processing the glossary.
+%
 % In the document source:
 % \begin{Verbatim}[gobble=2,frame=lines,obeytabs,tabsize=4,formatcom={\unskip}]
 % \documentclass{article} % or book, report
@@ -15387,7 +16262,7 @@
 % (font selection, input encoding)
 % ...
 % \newcommand*{\HomeHTMLFileName}{index}, or {projectname}
-% \newcommand*{\HTMLFileName}{}
+% \newcommand*{\HTMLfiveName}{}
 % \usepackage{lwarp-newproject}
 % \usepackage{lwarp}
 % ...
@@ -15445,11 +16320,15 @@
 %    \end{macrocode}
 
 % Process options:
+%
+% \changes{v0.29}{2017/04/15}{Add: \protect\texttt{lwarpmklang} option for \pkg{lwarp-newproject}.}
+%
 %    \begin{macrocode}
 \DeclareVoidOption{warpprint}{\booltrue{LWRNP at genconf}}
 \DeclareVoidOption{warpHTML}{\boolfalse{LWRNP at genconf}}
 \DeclareVoidOption{lwarpmk}{\includecomment{LWR at createlwarpmk}}
 \DeclareStringOption[\jobname]{BaseJobname}
+\DeclareStringOption[english]{lwarpmklang}
 
 \booltrue{LWRNP at genconf}% warpprint
 
@@ -15457,8 +16336,6 @@
 %    \end{macrocode}
 
 
-
-
 % Assign the \cs{BaseJobname} if the user hasn't provided one:
 %    \begin{macrocode}
 \providecommand*{\BaseJobname}{\LWRNP at BaseJobname}
@@ -15469,7 +16346,7 @@
 % \ifbool{LWRNP at genconf}{
 \providecommand*{\HomeHTMLFileName}{\BaseJobname}
 % }{}
-\providecommand*{\HTMLFileName}{}
+\providecommand*{\HTMLfiveName}{}
 \providecommand*{\UseLatexmk}{false}
 %    \end{macrocode}
 % 
@@ -15481,7 +16358,7 @@
 
 % \subsection{project\_html.tex}
 %
-% \DescribeFile{project_html.tex} Used to allow an \acro{HTML} version of the
+% \DescribeFile{project_html.tex} Used to allow an \HTML\ version of the
 % document to exist alongside the print version.
 %
 % Only write |\jobname_html.tex| if generating the print version.
@@ -15509,6 +16386,7 @@
 %
 % \DescribeFile{project.lwarpmkconf} The configuration file for |lwarpmk|.
 %
+% \changes{v0.29}{2017/04/15}{File \protect\texttt{*.lwarpmkconf}: Add: \protect\texttt{language} option for config files.}
 %
 %    \begin{macrocode}
 \ifbool{LWRNP at genconf}{
@@ -15532,8 +16410,9 @@
 \immediate\write\LWR at file{%
 homehtmlfilename = "\HomeHTMLFileName"%
 }
-\immediate\write\LWR at file{htmlfilename = "\HTMLFileName"}
+\immediate\write\LWR at file{htmlfilename = "\HTMLfiveName"}
 \immediate\write\LWR at file{uselatexmk = "\UseLatexmk"}
+\immediate\write\LWR at file{language = "\LWRNP at lwarpmklang"}
 \immediate\closeout\LWR at file
 }{}
 %    \end{macrocode}
@@ -15544,10 +16423,10 @@
 % \subsection{lwarp.css}
 
 % \DescribeFile{lwarp.css}
-% This is the base \acro{css} layer used by \pkg{lwarp}.
+% This is the base \CSS\ layer used by \pkg{lwarp}.
 %
 % This must be present both when compiling the project
-% and also when distributing the \acro{HTML} files.
+% and also when distributing the \HTML\ files.
 %
 % \changes{v0.26}{2017/03/30}{\texttt{lwarp.css}: Improved responsive
 %	\texttt{marginpar} and \texttt{marginblock}.}
@@ -16742,11 +17621,11 @@
 % \subsection{lwarp\_sagebrush.css}
 
 % \DescribeFile{lwarp_sagebrush.css}
-% An optional \acro{css} which may be used for
+% An optional \CSS\ which may be used for
 % a semi-modern appearance.
 %
 % If used, this must be present both when compiling the project
-% and also when distributing the \acro{HTML} files.
+% and also when distributing the \HTML\ files.
 %
 %    \begin{macrocode}
 \begin{VerbatimOut}{lwarp_sagebrush.css}
@@ -16989,11 +17868,11 @@
 % \subsection{lwarp\_formal.css}
 
 % \DescribeFile{lwarp_formal.css}
-% An optional \acro{css} which may be used for
+% An optional \CSS\ which may be used for
 % a more formal appearance.
 %
 % If used, this must be present both when compiling the project
-% and also when distributing the \acro{HTML} files.
+% and also when distributing the \HTML\ files.
 %
 %    \begin{macrocode}
 \begin{VerbatimOut}{lwarp_formal.css}
@@ -17210,10 +18089,10 @@
 % \subsection{sample\_project.css}
 
 % \DescribeFile{sample_project.css}
-% The project-specific \acro{css} file.  Use with \cs{NewCSS}.
+% The project-specific \CSS\ file.  Use with \cs{NewCSS}.
 %
 % If used, this must be present both when compiling the project
-% and also when distributing the \acro{HTML} files.
+% and also when distributing the \HTML\ files.
 %
 %    \begin{macrocode}
 \begin{VerbatimOut}{sample_project.css}
@@ -17241,7 +18120,7 @@
 %
 % This must be present when compiling the project,
 % but does not need to be present when distributing
-% the resulting \acro{HTML} files.
+% the resulting \HTML\ files.
 %
 %    \begin{macrocode}
 \begin{VerbatimOut}{lwarp_html.xdy}
@@ -17264,8 +18143,11 @@
 %
 % This must be present when compiling the project,
 % but does not need to be present when distributing
-% the resulting \acro{HTML} files.
-
+% the resulting \HTML\ files.
+%
+% \changes{v0.28}{2017/04/11}{File lwarp\_mathjax.txt: Updated CDN repository.}
+%
+%
 %    \begin{macrocode}
 \begin{VerbatimOut}{lwarp_mathjax.txt}
 <!-- https://groups.google.com/forum/#!topic/
@@ -17350,9 +18232,18 @@
 });
 </script>
 
+<!-- Alternative CDN provider: -->
+<script type="text/javascript" async
+  src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML-full">
+</script>
+
+<!-- No longer supported after April 30, 2017: -->
+<!--
 <script
   src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML-full">
 </script>
+-->
+
 \end{VerbatimOut}
 % \end{Verbatim}% for syntax highlighting
 %    \end{macrocode}
@@ -17367,13 +18258,14 @@
 \begin{LWR at createlwarpmk}
 %    \end{macrocode}
 
-% \DescribeFile{lwarpmk} Creates a local copy of |lwarpmk|:
+% \DescribeProgram{lwarpmk} Creates a local copy of |lwarpmk|:
 %
 % \changes{v0.21}{2017/02/11}{lwarpmk: Fix: \protect\texttt{lwarpmk again} for Windows.}
 % \changes{v0.21}{2017/02/22}{lwarpmk: Fix: \protect\texttt{lwarpmk limages} for Windows.}
 % \changes{v0.21}{2017/02/22}{lwarpmk: Fix: \protect\texttt{lwarpmk} uses \texttt{lateximages} text file instead of shell script.}
+% \changes{v0.28}{2017/04/14}{lwarpmk: Add: \protect\texttt{printglossary} and \protect\texttt{htmlglossary} commands.}
+% \changes{v0.29}{2017/04/15}{lwarpmk: Add: \protect\texttt{language} option for config files.}
 %
-%
 %    \begin{macrocode}
 \begin{VerbatimOut}{lwarpmk.lua}
 #!/usr/bin/env texlua
@@ -17382,7 +18274,7 @@
 
 -- Print the usage of the lwarpmk command:
 
-printversion = "v0.27"
+printversion = "v0.29"
 
 function printhelp ()
 print ("lwarpmk: Use lwarpmk -h or lwarpmk --help for help.") ;
@@ -17393,8 +18285,10 @@
 
 lwarpmk print [project]: Compile a print version.
 lwarpmk printindex [project]: Process the index for the print version.
+lwarpmk printglossary [project]: Process the glossary for the print version.
 lwarpmk html [project]: Compile an HTML version.
 lwarpmk htmlindex [project]: Process the index for the html version.
+lwarpmk htmlglossary [project]: Process the glossary for the html version.
 lwarpmk again [project]: Touch the source code to trigger recompiles.
 lwarpmk limages [project]: Process the "lateximages" created by lwarp.sty.
 lwarpmk pdftohtml [project]:
@@ -17401,7 +18295,7 @@
     For use with latexmk or a Makefile:
     Convert project_html.pdf to project_html.html and
     individual HTML files.
-lwarpmk clean [project]: Remove project.aux, .toc, .lof, .lot, .idx, .ind, .log
+lwarpmk clean [project]: Remove project.aux, .toc, .lof/t, .idx, .ind, .log, .gl*
 lwarpmk cleanall [project]: Remove auxiliary files and also project.pdf, *.html
 lwarpmk -h: Print this help message.
 lwarpmk --help: Print this help message.
@@ -17422,6 +18316,7 @@
 homehtmlfilename = "index"  (or perhaps the project name)
 htmlfilename = ""  (or "projectname" - filename prefix)
 uselatexmk = "false"  (or "true" to use latexmk to build PDFs)
+languge = "english"  (use a language supported by xindy)
 --
 Filenames must contain only letters, numbers, underscore, or dash.
 Values must be in "quotes".
@@ -17464,6 +18359,8 @@
 local conffile = "lwarpmk.conf"
 -- Optional configuration filename:
 if arg[2] ~= nil then conffile = arg[2]..".lwarpmkconf" end
+-- Default language:
+language = "english"
 -- Verify the file exists:
 if (lfs.attributes(conffile,"mode")==nil) then -- file not exists
 print("lwarpmk: " .. conffile .." does not exist.")
@@ -17508,6 +18405,7 @@
 elseif ( cvarname == "homehtmlfilename" ) then homehtmlfilename = cvalue
 elseif ( cvarname == "htmlfilename" ) then htmlfilename = cvalue
 elseif ( cvarname == "uselatexmk" ) then uselatexmk = cvalue
+elseif ( cvarname == "language" ) then language = cvalue
 else
 print ( linenum .. " : " .. line ) ;
 print ("lwarpmk: Incorrect variable name \"" .. cvarname .. "\" in " .. conffile ..".\n" ) ;
@@ -17606,7 +18504,8 @@
         sourcename ..".lot " .. sourcename .. "_html.lot " ..
         sourcename ..".idx " .. sourcename .. "_html.idx " ..
         sourcename ..".ind " .. sourcename .. "_html.ind " ..
-        sourcename ..".log " .. sourcename .. "_html.log "
+        sourcename ..".log " .. sourcename .. "_html.log " ..
+        sourcename ..".gl* " .. sourcename .. "_html.gl* "
         )
 end
 
@@ -17701,6 +18600,22 @@
 print ("lwarpmk: " .. sourcename ..".tex is ready to be recompiled.")
 print ("lwarpmk: Done.")
 
+-- lwarp printglossary:
+-- Compile the glossary then touch the source
+-- to trigger a recompile of the document:
+
+elseif arg[1] == "printglossary" then
+loadconf ()
+print ("lwarpmk: Processing the glossary.")
+
+os.execute("xindy -L " .. language .. " -C utf8 -I xindy -M " .. sourcename ..
+    " -t " .. sourcename .. ".glg -o " .. sourcename .. ".gls "
+    .. sourcename .. ".glo")
+print ("lwarpmk: Forcing an update of " .. sourcename ..".tex.")
+refreshdate ()
+print ("lwarpmk: " .. sourcename ..".tex is ready to be recompiled.")
+print ("lwarpmk: Done.")
+
 -- lwarpmk html:
 
 elseif arg[1] == "html" then
@@ -17752,6 +18667,23 @@
 print ("lwarpmk: " .. sourcename ..".tex is ready to be recompiled.")
 print ("lwarpmk: Done.")
 
+-- lwarpmk htmlglossary:
+-- Compile the glossary then touch the source
+-- to trigger a recompile of the document:
+
+elseif arg[1] == "htmlglossary" then
+loadconf ()
+print ("lwarpmk: Processing the glossary.")
+
+os.execute("xindy -L " .. language .. " -C utf8 -I xindy -M " ..sourcename ..
+    "_html -t " .. sourcename .. "_html.glg -o " ..sourcename ..
+    "_html.gls " ..sourcename .. "_html.glo")
+
+print ("lwarpmk: Forcing an update of " .. sourcename ..".tex.")
+refreshdate ()
+print ("lwarpmk: " .. sourcename ..".tex is ready to be recompiled.")
+print ("lwarpmk: Done.")
+
 -- lwarpmk limages:
 -- Scan the lateximages.txt file to create lateximages,
 -- then touch the source to trigger a recompile.
@@ -17776,7 +18708,7 @@
 print ("lwarpmk: Done.")
 
 -- lwarpmk clean:
--- Remove project.aux, .toc, .lof, .lot, .idx, .ind, .log
+-- Remove project.aux, .toc, .lof, .lot, .idx, .ind, .log, .gl*
 
 elseif arg[1] == "clean" then
 loadconf ()
@@ -17784,7 +18716,7 @@
 print ("lwarpmk: Done.")
 
 -- lwarpmk cleanall
--- Remove project.aux, .toc, .lof, .lot, .idx, .ind, .log
+-- Remove project.aux, .toc, .lof, .lot, .idx, .ind, .log, .gl*
 --    and also project.pdf, *.html
 
 elseif arg[1] == "cleanall" then
@@ -17863,7 +18795,10 @@
 
 %    \begin{macrocode}
 \AtBeginDocument{
-\BeforeBeginEnvironment{abstract}{\BlockClass{abstract}}
+\BeforeBeginEnvironment{abstract}{
+\LWR at forcenewpage
+\BlockClass{abstract}
+}
 \AfterEndEnvironment{abstract}{\endBlockClass}
 }
 
@@ -17981,8 +18916,6 @@
 %    \begin{macrocode}
 \LWR at ProvidesPackagePass{algorithmicx}
 %    \end{macrocode}
-
-
 %
 %
 % Inside the \env{algorithmic} environment, level indenting is converted to a \tag{span}
@@ -18046,7 +18979,10 @@
 
 %    \begin{macrocode}
 \AfterEndPreamble{
-\AtBeginEnvironment{alltt}{\LWR at atbeginverbatim{alltt}\unskip\vspace*{-\baselineskip}}
+\AtBeginEnvironment{alltt}{%
+\LWR at forcenewpage
+\LWR at atbeginverbatim{alltt}\unskip\vspace*{-\baselineskip}%
+}
 \AfterEndEnvironment{alltt}{\unskip\vspace*{-\baselineskip}\LWR at afterendverbatim}
 }
 %    \end{macrocode}
@@ -18134,7 +19070,7 @@
 }
 %    \end{macrocode}
 
-% Patched to enclose with \acro{CSS}:
+% Patched to enclose with \CSS:
 %    \begin{macrocode}
 \newcommand{\LWR at haveamsthmname}{
 \renewcommand{\thmname}[1]{\InlineClass{amsthmname\LWR at thisthmstyle}{##1}}
@@ -18153,9 +19089,10 @@
 \LWR at haveamsthmnote
 %    \end{macrocode}
 %
-% Patches for \acro{CSS}:
+% Patches for \CSS:
 %    \begin{macrocode}
 \def\@begintheorem#1#2[#3]{%
+\LWR at forcenewpage% new
   \BlockClass{amsthmbody\LWR at thisthmstyle}% new
   \deferred at thm@head{
 	\the\thm at headfont \thm at indent
@@ -18170,7 +19107,7 @@
   \ignorespaces}
 %    \end{macrocode}
 %
-% Patched for \acro{CSS}:
+% Patched for \CSS:
 %    \begin{macrocode}
 \def\@endtheorem{\endBlockClass\endtrivlist\@endpefalse }
 %    \end{macrocode}
@@ -18185,9 +19122,10 @@
 }
 %    \end{macrocode}
 %
-% Patched for \acro{CSS}:
+% Patched for \CSS:
 %    \begin{macrocode}
 \renewenvironment{proof}[1][\proofname]{\par
+\LWR at forcenewpage% new
 	\BlockClass{amsthmproof}% new
   \pushQED{\qed}%
   \normalfont \topsep6\p@\@plus6\p@\relax
@@ -18217,7 +19155,7 @@
 % \section{Bookmark}
 %
 % \DescribePackage{bookmark}
-% \pkg{bookmark} is emulated during \acro{HTML} output, and
+% \pkg{bookmark} is emulated during \HTML\ output, and
 % the \pkg{bookmark} package is ignored.
 
 % \changes{v0.20}{2017/01/03}{\pkg{bookmark}: Added.}
@@ -18258,7 +19196,7 @@
 %
 %
 % \DescribePackage{booktabs}
-% \pkg{booktabs} is emulated during \acro{HTML} output, and
+% \pkg{booktabs} is emulated during \HTML\ output, and
 % the \pkg{booktabs} package is ignored.
 
 % \codehtml
@@ -18418,7 +19356,7 @@
 % \changes{v0.22}{2017/02/24}{\pkg{dcolumn}: Added.}
 %
 % \DescribePackage{dcolumn}
-% \pkg{dcolumn} is emulated during \acro{HTML} output, and
+% \pkg{dcolumn} is emulated during \HTML\ output, and
 % the \pkg{dcolumn} package is ignored.
 %
 %    \begin{macrocode}
@@ -18447,7 +19385,7 @@
 % \changes{v0.20}{2017/01/11}{\pkg{draftwatermark}: Added.}
 %
 % \DescribePackage{draftwatermark}
-% \pkg{draftwatermark} is emulated during \acro{HTML} output, and
+% \pkg{draftwatermark} is emulated during \HTML\ output, and
 % the \pkg{draftwatermark} package is ignored.
 
 % \codehtml
@@ -18485,7 +19423,7 @@
 % \changes{v0.25}{2017/03/16}{\pkg{ellipsis}: Added.}
 %
 % \DescribePackage{ellipsis}
-% \pkg{ellipsis} is emulated during \acro{HTML} output, and
+% \pkg{ellipsis} is emulated during \HTML\ output, and
 % the \pkg{ellipsis} package is ignored.
 
 %    \begin{macrocode}
@@ -18635,7 +19573,7 @@
 %
 %
 % \DescribePackage{epigraph}
-% \pkg{epigraph} is emulated during \acro{HTML} output, and
+% \pkg{epigraph} is emulated during \HTML\ output, and
 % the \pkg{epigraph} package is ignored.
 
 % \codehtml
@@ -18669,7 +19607,7 @@
 {\endBlockClass}
 %    \end{macrocode}
 %
-% Use \acro{CSS} to format epigraphs.
+% Use \CSS\ to format epigraphs.
 %
 % The following are null commands for source compatibility:
 %    \begin{macrocode}
@@ -18708,7 +19646,7 @@
 % \changes{v0.20}{2017/01/11}{\pkg{eso-pic}: Added.}
 %
 % \DescribePackage{eso-pic}
-% \pkg{eso-pic} is emulated during \acro{HTML} output, and
+% \pkg{eso-pic} is emulated during \HTML\ output, and
 % the \pkg{eso-pic} package is ignored.
 
 % \codehtml
@@ -18757,7 +19695,7 @@
 % \changes{v0.20}{2017/01/11}{\pkg{everypage}: Added.}
 %
 % \DescribePackage{everypage}
-% \pkg{everypage} is emulated during \acro{HTML} output, and
+% \pkg{everypage} is emulated during \HTML\ output, and
 % the \pkg{everypage} package is ignored.
 
 % \codehtml
@@ -18878,7 +19816,7 @@
 % \label{sec:float}
 %
 % \DescribePackage{float}
-% \pkg{float} is emulated during \acro{HTML} output, and
+% \pkg{float} is emulated during \HTML\ output, and
 % the \pkg{float} package is ignored.
 %
 % \changes{v0.20}{2017/01/22}{Improved float caption type handling.}
@@ -18993,7 +19931,7 @@
 \DeclareDocumentEnvironment{KFLT at marginfloat}{O{-1.2ex} m}
 {% start
 \LWR at maybeincthisfloat%
-% \BlockClass{marginblock}
+\LWR at forcenewpage
 \LWR at stoppars%
 \LWR at htmltag{div class="marginblock" id="autofloat-\arabic{LWR at thisfloat}"}
 \LWR at startpars%
@@ -19000,7 +19938,6 @@
 \captionsetup{type=#2}%
 }
 {
-% \endBlockClass
 \LWR at htmldivclassend{div}
 }
 
@@ -19032,7 +19969,7 @@
 % \label{sec:floatrow}
 %
 % \DescribePackage{floatrow}
-% \pkg{floatrow} is emulated during \acro{HTML} output, and
+% \pkg{floatrow} is emulated during \HTML\ output, and
 % the \pkg{floatrow} package is ignored.
 
 % \codehtml
@@ -19207,6 +20144,7 @@
 %    \begin{macrocode}
 \newenvironment*{floatrow}[1][2]
 {
+\LWR at forcenewpage
 \BlockClass{floatrow}
 %    \end{macrocode}
 % While inside the floatrow, divide the \cs{linewidth} by the number of floats.
@@ -19308,7 +20246,7 @@
 % ^^A \begin{macro}{\floatfoot} \marg{text}
 %
 % Places additional text inside a float,
-% inside a \acro{CSS} \tag{div} of class |floatfoot|.
+% inside a \CSS\ \tag{div} of class |floatfoot|.
 %    \begin{macrocode}
 \NewDocumentCommand{\floatfoot}{s +m}{%
 \begin{BlockClass}{floatfoot}
@@ -19334,6 +20272,7 @@
 %    \end{macrocode}
 % The row of floats is placed into a \tag{div} of class |floatrow|:
 %    \begin{macrocode}
+\LWR at forcenewpage
 \BlockClass{floatrow}
 %    \end{macrocode}
 % While inside the floatrow, |LWR at insubfloatrow| is set true,
@@ -19436,7 +20375,7 @@
 % \changes{v0.26}{2017/03/27}{\pkg{footmisc}: Added.}
 %
 % \DescribePackage{footmisc}
-% \pkg{footmisc} is emulated during \acro{HTML} output, and
+% \pkg{footmisc} is emulated during \HTML\ output, and
 % the \pkg{footmisc} package is ignored.
 %
 %    \begin{macrocode}
@@ -19625,11 +20564,13 @@
 %    \begin{macrocode}
 
 \renewenvironment{framed}{%
+\LWR at forcenewpage
 \BlockClass{framed}%
 }
 {\endBlockClass}
 
 \renewenvironment{oframed}{%
+\LWR at forcenewpage
 \BlockClass{framed}%
 }
 {\endBlockClass}
@@ -19637,6 +20578,7 @@
 
 \renewenvironment{shaded}{%
 \convertcolorspec{named}{shadecolor}{HTML}\LWR at tempcolor%
+\LWR at forcenewpage
 \BlockClass{framed}[background: \#\LWR at tempcolor]%
 }
 {\endBlockClass}
@@ -19643,6 +20585,7 @@
 
 \renewenvironment{shaded*}{%
 \convertcolorspec{named}{shadecolor}{HTML}\LWR at tempcolor%
+\LWR at forcenewpage
 \BlockClass{framed}[background: \#\LWR at tempcolor]%
 }
 {\endBlockClass}
@@ -19649,6 +20592,7 @@
 
 
 \renewenvironment{leftbar}{%
+\LWR at forcenewpage
 	\BlockClass{framedleftbar}
   \def\FrameCommand{}%
   \MakeFramed {}
@@ -19658,6 +20602,7 @@
 
 \renewenvironment{snugshade}{%
 \convertcolorspec{named}{shadecolor}{HTML}\LWR at tempcolor%
+\LWR at forcenewpage
 \BlockClass{snugframed}[background: \#\LWR at tempcolor]%
 }
 {\endBlockClass}
@@ -19664,6 +20609,7 @@
 
 \renewenvironment{snugshade*}{%
 \convertcolorspec{named}{shadecolor}{HTML}\LWR at tempcolor%
+\LWR at forcenewpage
 \BlockClass{snugframed}[background: \#\LWR at tempcolor]%
 }
 {\endBlockClass}
@@ -19685,6 +20631,7 @@
 %    \begin{macrocode}
 \renewcommand{\CustomFBox}[7]{%
 \convertcolorspec{named}{TFFrameColor}{HTML}\LWR at tempcolor%
+\LWR at forcenewpage
 \begin{BlockClass}{framed}[border: 3px solid \#\LWR at tempcolor]%
 \ifthenelse{\isempty{#1}}{}{% not empty
 \begin{BlockClass}{framedtitle}[background: \#\LWR at tempcolor]%
@@ -19809,9 +20756,42 @@
 % \fi
 %
 %
+%
+%
 % \clearpage
 %
 % \iffalse
+%<*glossaries>
+% \fi
+%
+% \part{lwarp-glossaries.sty}
+
+% \section{Glossaries}
+%
+% \DescribePackage{glossaries}
+% \limitsglossaries
+%
+% \changes{v0.28}{2017/04/14}{\pkg{glossaries}: Added.}
+%
+% \codehtml
+%
+%    \begin{macrocode}
+\PassOptionsToPackage{xindy}{glossaries}
+\LWR at ProvidesPackagePass{glossaries}
+\setupglossaries{nonumberlist}
+\setglossarystyle{index}
+%    \end{macrocode}
+%
+% \iffalse
+%</glossaries>
+% \fi
+%
+%
+%
+%
+% \clearpage
+%
+% \iffalse
 %<*graphics>
 % \fi
 
@@ -19820,15 +20800,15 @@
 % \section{Graphics}
 %
 % \DescribePackage{graphics}
-% \pkg{graphics} is not used.
-% The user is required to use \pkg{graphicx} instead.
-
+% \pkg{graphics} is emulated.
+%
+% \changes{v0.28}{2017/04/12}{\pkg{graphics}: Added.}
+%
 % \codehtml
 %    \begin{macrocode}
-\LWR at loadnever{graphics}{graphicx}
+\LWR at ProvidesPackageDrop{graphics}
 %    \end{macrocode}
-
-
+%
 % \iffalse
 %</graphics>
 % \fi
@@ -19835,6 +20815,8 @@
 %
 %
 %
+%
+%
 % \iffalse
 %<*graphicx>
 % \fi
@@ -19844,9 +20826,8 @@
 % \section{Graphicx}
 %
 % \DescribePackage{graphicx}
-% \pkg{graphicx} is emulated during \acro{HTML} output, and
-% the \pkg{graphicx} package is ignored.
-
+% \pkg{graphicx} is emulated.
+%
 % \codehtml
 %    \begin{macrocode}
 \LWR at ProvidesPackageDrop{graphicx}
@@ -19870,7 +20851,7 @@
 % \section{Hyperref}
 %
 % \DescribePackage{hyperref}
-% \pkg{hyperref} is emulated during \acro{HTML} output, and
+% \pkg{hyperref} is emulated during \HTML\ output, and
 % the \pkg{hyperref} package is ignored.
 
 % \changes{v0.20}{2017/01/03}{\pkg{hyperref}: Additional user macros.}
@@ -19913,7 +20894,7 @@
 %
 %
 % ^^A \begin{macro}{\hyperdef} \marg{1: category} \marg{2: name} \marg{3: text}
-% Creates an HTML anchor to |category.name| with the given text.
+% Creates an \HTML\ anchor to |category.name| with the given text.
 %
 %    \begin{macrocode}
 \NewDocumentCommand{\hyperdef}{m m +m}{%
@@ -19928,7 +20909,7 @@
 % ^^A \begin{macro}{\LWR at hyperrefb} \marg{1: URL} \marg{2: category}
 % ^^A							\marg{3: name} \marg{4: text}
 %
-% Creates an HTML link to |URL#category.name| with the given text.
+% Creates an \HTML\ link to |URL#category.name| with the given text.
 %    \begin{macrocode}
 \NewDocumentCommand{\LWR at hyperrefb}{m m m +m}{%
 \LWR at htmltag{a href="#1\LWR at hashmark#2.#3"}%
@@ -19941,7 +20922,7 @@
 
 % ^^A \begin{macro}{\LWR at hyperrefc} \oarg{label} \marg{text}
 %
-% Creates text as an HTML link to the \LaTeX\ label.
+% Creates text as an \HTML\ link to the \LaTeX\ label.
 %    \begin{macrocode}
 \NewDocumentCommand{\LWR at hyperrefc}{O{label} +m}{
 \LWR at startref{#1}%
@@ -19995,7 +20976,7 @@
 
 % ^^A \begin{macro}{\autoref} * \marg{label}
 %
-% For \acro{HTML}, \cs{cleverref} is used instead.
+% For \HTML, \cs{cleverref} is used instead.
 %
 %    \begin{macrocode}
 \NewDocumentCommand{\autoref}{s m}{%
@@ -20007,7 +20988,7 @@
 %
 % ^^A \begin{macro}{\autopageref} \marg{label}
 %
-% For \acro{HTML}, \cs{cleverref} is used instead.
+% For \HTML, \cs{cleverref} is used instead.
 %
 %    \begin{macrocode}
 \NewDocumentCommand{\autopageref}{s m}{%
@@ -20308,7 +21289,7 @@
 \DeclareDocumentEnvironment{KFLT at marginfloat}{O{-1.2ex} m}
 {% start
 \LWR at maybeincthisfloat%
-% \BlockClass{marginblock}
+\LWR at forcenewpage
 \LWR at stoppars%
 \LWR at htmltag{div class="marginblock" id="autofloat-\arabic{LWR at thisfloat}"}
 \LWR at startpars%
@@ -20315,7 +21296,6 @@
 \captionsetup{type=#2}%
 }
 {
-% \endBlockClass
 \LWR at htmldivclassend{div}
 }
 %    \end{macrocode}
@@ -20479,7 +21459,7 @@
 % \changes{v0.25}{2017/03/16}{\pkg{lips}: Added.}
 %
 % \DescribePackage{lips}
-% \pkg{lips} is emulated during \acro{HTML} output, and
+% \pkg{lips} is emulated during \HTML\ output, and
 % the \pkg{lips} package is ignored.
 
 %    \begin{macrocode}
@@ -20581,6 +21561,7 @@
 %    \begin{macrocode}
 \LWR at traceinfo{About to create verbatim.}%
 \let\lsthk at EveryPar\relax%
+\LWR at forcenewpage
 \LWR at atbeginverbatim{programlisting}%
 
 \let\lsthk at EveryPar\LWR at origlsthkEveryPar%
@@ -20676,7 +21657,7 @@
             {\begingroup
 \LWR at traceinfo{at the selected position}%
 %    \end{macrocode}
-% These space and box commands are not needed for \acro{HTML} output:
+% These space and box commands are not needed for \HTML\ output:
 %    \begin{macrocode}
 %              \let\@@vskip\vskip
 %              \def\vskip{\afterassignment\lst at vskip \@tempskipa}%
@@ -20768,7 +21749,7 @@
 %
 %
 % \DescribePackage{longtable}
-% \pkg{longtable} is emulated during \acro{HTML} output, and
+% \pkg{longtable} is emulated during \HTML\ output, and
 % the \pkg{longtable} package is ignored.
 
 % \codehtml
@@ -20775,25 +21756,14 @@
 %    \begin{macrocode}
 \LWR at ProvidesPackageDrop{longtable}
 %    \end{macrocode}
-
-% 
-% To emulate longtable:
-
-% For longtable |\endhead|, |\endfoot|, and |\endlastfoot| rows, use \\
-% \watchout
-% 	\hspace*{.25in}|\warpprintonly{row contents}|\\
-% instead of \\
-% 	\hspace*{.25in}|\begin{warpprint}| \ldots |\end{warpprint}|. \\
-% Doing so helps avoid ``Misplaced |\noalign|.'' when using |\begin{warpprint}|.
 %
-% Keep the |\endfirsthead| row, which is still relevent to \acro{HTML} output.
+% \limitslongtable
 %
 % See: \\
 % \href{http://tex.stackexchange.com/questions/43006/why-is-input-not-expandable}
 %	{\texttt{http://tex.stackexchange.com/questions/43006/\\why-is-input-not-expandable}}
 %
-
-
+%
 % \begin{environment}{longtable} * \oarg{horizalignment} \marg{colspec}
 % Emulates the \env{longtable} environment.
 %
@@ -20845,9 +21815,7 @@
 \newlength{\LTpost}
 \newlength{\LTcapwidth}
 %    \end{macrocode}
-% |\kill| is ignored, place a |\kill| line inside \\
-%	\hspace*{2em}|\begin{warpprint}| \ldots  |\end{warpprint}|
-% or \cs{warpingprintonly}.
+%
 %    \begin{macrocode}
 \renewcommand*{\kill}{\LWR at tabularendofline}
 %    \end{macrocode}
@@ -20901,7 +21869,7 @@
 %
 %
 % \DescribePackage{ltcaption}
-% \pkg{ltcaption} is emulated during \acro{HTML} output, and
+% \pkg{ltcaption} is emulated during \HTML\ output, and
 % the \pkg{ltcaption} package is ignored.
 
 % \changes{v0.20}{2017/01/29}{\pkg{ltcaption}: Added.}
@@ -21145,7 +22113,7 @@
 %    \begin{macrocode}
 \LWR at stoppars%
 %    \end{macrocode}
-% Below, print HTML pt units:
+% Below, print \HTML\ pt units:
 %    \begin{macrocode}
 \uselengthunit{PT}%
 %    \end{macrocode}
@@ -21227,7 +22195,7 @@
 \renewrobustcmd\mdfframedtitleenv[1]{%
 \LWR at origmdfframedtitleenv{%
 %    \end{macrocode}
-% Below, print HTML pt lengths:
+% Below, print \HTML\ pt lengths:
 %    \begin{macrocode}
 \uselengthunit{PT}%
 %    \end{macrocode}
@@ -21462,6 +22430,9 @@
 %
 %
 %
+%
+%
+%
 % \clearpage
 %
 % \iffalse
@@ -21567,7 +22538,7 @@
 %
 %
 % \DescribePackage{multicol}
-% \pkg{multicol} is emulated during \acro{HTML} output, and
+% \pkg{multicol} is emulated during \HTML\ output, and
 % the \pkg{multicol} package is ignored.
 
 % \codehtml
@@ -21589,11 +22560,13 @@
 %    \begin{macrocode}
 \NewDocumentEnvironment{multicols}{s m o}
 %    \end{macrocode}
-% \acro{HTML} div class to contain everything:
+% \HTML\ div class to contain everything:
 %    \begin{macrocode}
-{\BlockClass{multicols}
+{
+\LWR at forcenewpage
+\BlockClass{multicols}
 %    \end{macrocode}
-% Optional \acro{HTML} div class for the heading:
+% Optional \HTML\ div class for the heading:
 %    \begin{macrocode}
 \IfValueTF{#3}{\begin{BlockClass}{multicolsheading}#3\end{BlockClass}}{}}
 %    \end{macrocode}
@@ -21603,7 +22576,7 @@
 %    \end{macrocode}
 % ^^A \end{environment}
 
-% Emulated null functions which are not used in \acro{HTML}:
+% Emulated null functions which are not used in \HTML:
 %    \begin{macrocode}
 \newcommand*{\columnbreak}{}
 \newcommand*{\RLmulticolcolumns}{}
@@ -21648,7 +22621,7 @@
 % \label{sec:multirow}
 %
 % \DescribePackage{multirow}
-% \pkg{multirow} is emulated during \acro{HTML} output, and
+% \pkg{multirow} is emulated during \HTML\ output, and
 % the \pkg{multirow} package is ignored.
 
 % \codehtml
@@ -21704,7 +22677,7 @@
 % \section{Needspace}
 %
 % \DescribePackage{needspace}
-% \pkg{needspace} is not used during \acro{HTML} conversion.
+% \pkg{needspace} is not used during \HTML\ conversion.
 %
 % \changes{v0.20}{2016/12/22}{\pkg{needspace}: Added.}
 %
@@ -21834,7 +22807,7 @@
 % \section{Nowidow}
 %
 % \DescribePackage{nowidow}
-% \pkg{nowidow} is not used during HTML conversion.
+% \pkg{nowidow} is not used during \HTML\ conversion.
 %
 % \changes{v0.20}{2017/01/03}{\pkg{nowidow}: Added.}
 %
@@ -22027,7 +23000,7 @@
 %
 %
 % Mimics a float by incrementing the float counter and generating
-% an \acro{HTML} anchor.  These are used for list-of-theorem cross-references.
+% an \HTML\ anchor.  These are used for list-of-theorem cross-references.
 %    \begin{macrocode}
 \newcommand{\LWR at inctheorem}{%
 \addtocounter{LWR at thisfloat}{1}%
@@ -22038,7 +23011,7 @@
 %    \end{macrocode}
 %
 %
-% The following are patched for \acro{CSS}.
+% The following are patched for \CSS.
 %
 % These were in individual files |thp.sty| for plain,
 % |thmb.sty| for margin break, etc.
@@ -22053,10 +23026,12 @@
   \expandafter\@ifundefined{th@#1}%
    {\expandafter\gdef\csname th@#1\endcsname{%
     \def\@begintheorem####1####2{%
+\LWR at forcenewpage% new
 \BlockClass{theorembody#1}%\LWR at thisthmstyle% new
 \LWR at inctheorem% new
 #2}%
     \def\@opargbegintheorem####1####2####3{%
+\LWR at forcenewpage% new
 \BlockClass{theorembody#1}%\LWR at thisthmstyle% new
 \LWR at inctheorem% new
 #3}%
@@ -22154,7 +23129,7 @@
 	\InlineClass{theoremheaderplain}{##3}] \ \newline}
 %    \end{macrocode}
 %
-% The following manually adjust the \acro{CSS} for the standard configuration
+% The following manually adjust the \CSS\ for the standard configuration
 % objects which are not a purely plain style:
 %    \begin{macrocode}
 \ifbool{LWR at ntheoremamsthm}{}{
@@ -22173,7 +23148,7 @@
 	\InlineClass{theoremheadersc}{##1\ (##3)\theorem at separator}]}
 %    \end{macrocode}
 %
-% The following standard configuration is renewed using the new \acro{CSS}:
+% The following standard configuration is renewed using the new \CSS:
 %    \begin{macrocode}
 \theoremstyle{plainupright}
 \theorembodyfont{\upshape}
@@ -22211,6 +23186,7 @@
 \gdef\th at plain{%
   \def\theorem at headerfont{\normalfont\bfseries}\itshape%
   \def\@begintheorem##1##2{%
+\LWR at forcenewpage% new
 		\BlockClass{theorembodyplain}% new
 		\LWR at inctheorem% new
       \item[\hskip\labelsep
@@ -22218,6 +23194,7 @@
  			\InlineClass{theoremheaderplain}{##1\ ##2.}
 		]}%
   \def\@opargbegintheorem##1##2##3{%
+\LWR at forcenewpage% new
 		\BlockClass{theorembodyplain}% new
 		\LWR at inctheorem% new
      \item[\hskip\labelsep
@@ -22228,6 +23205,7 @@
 \gdef\th at nonumberplain{%
   \def\theorem at headerfont{\normalfont\bfseries}\itshape%
   \def\@begintheorem##1##2{%
+\LWR at forcenewpage% new
 		\BlockClass{theorembodyplain}% new
 		\LWR at inctheorem% new
       \item[\hskip\labelsep
@@ -22235,6 +23213,7 @@
  			\InlineClass{theoremheaderplain}{##1.}
 		]}%
   \def\@opargbegintheorem##1##2##3{%
+\LWR at forcenewpage% new
 		\BlockClass{theorembodyplain}% new
 		\LWR at inctheorem% new
      \item[\hskip\labelsep
@@ -22245,6 +23224,7 @@
 \gdef\th at definition{%
   \def\theorem at headerfont{\normalfont\bfseries}\normalfont%
   \def\@begintheorem##1##2{%
+\LWR at forcenewpage% new
 		\BlockClass{theorembodydefinition}% new
 		\LWR at inctheorem% new
       \item[\hskip\labelsep
@@ -22252,6 +23232,7 @@
  			\InlineClass{theoremheaderdefinition}{##1\ ##2.}
 		]}%
   \def\@opargbegintheorem##1##2##3{%
+\LWR at forcenewpage% new
 		\BlockClass{theorembodydefinition}% new
 		\LWR at inctheorem% new
      \item[\hskip\labelsep
@@ -22262,6 +23243,7 @@
 \gdef\th at nonumberdefinition{%
   \def\theorem at headerfont{\normalfont\bfseries}\normalfont%
   \def\@begintheorem##1##2{%
+\LWR at forcenewpage% new
 		\BlockClass{theorembodydefinition}% new
 		\LWR at inctheorem% new
       \item[\hskip\labelsep
@@ -22269,6 +23251,7 @@
  			\InlineClass{theoremheaderdefinition}{##1.}
 		]}%
   \def\@opargbegintheorem##1##2##3{%
+\LWR at forcenewpage% new
 		\BlockClass{theorembodydefinition}% new
 		\LWR at inctheorem% new
      \item[\hskip\labelsep
@@ -22279,6 +23262,7 @@
 \gdef\th at remark{%
   \def\theorem at headerfont{\itshape}\normalfont%
   \def\@begintheorem##1##2{%
+\LWR at forcenewpage% new
 		\BlockClass{theorembodyremark}% new
 		\LWR at inctheorem% new
       \item[\hskip\labelsep
@@ -22286,6 +23270,7 @@
  			\InlineClass{theoremheaderremark}{##1\ ##2.}
 		]}%
   \def\@opargbegintheorem##1##2##3{%
+\LWR at forcenewpage% new
 		\BlockClass{theorembodyremark}% new
 		\LWR at inctheorem% new
      \item[\hskip\labelsep
@@ -22296,6 +23281,7 @@
 \gdef\th at nonumberremark{%
   \def\theorem at headerfont{\itshape}\normalfont%
   \def\@begintheorem##1##2{%
+\LWR at forcenewpage% new
 		\BlockClass{theorembodyremark}% new
 		\LWR at inctheorem% new
       \item[\hskip\labelsep
@@ -22303,6 +23289,7 @@
  			\InlineClass{theoremheaderremark}{##1.}
 		]}%
   \def\@opargbegintheorem##1##2##3{%
+\LWR at forcenewpage% new
 		\BlockClass{theorembodyremark}% new
 		\LWR at inctheorem% new
      \item[\hskip\labelsep
@@ -22313,6 +23300,7 @@
 \gdef\th at proof{%
   \def\theorem at headerfont{\normalfont\bfseries}\itshape%
   \def\@begintheorem##1##2{%
+\LWR at forcenewpage% new
 		\BlockClass{theorembodyproof}% new
 		\LWR at inctheorem% new
       \item[\hskip\labelsep
@@ -22320,6 +23308,7 @@
  			\InlineClass{theoremheaderproof}{##1.}
 		]}%
   \def\@opargbegintheorem##1##2##3{%
+\LWR at forcenewpage% new
 		\BlockClass{theorembodyroof}% new
 		\LWR at inctheorem% new
      \item[\hskip\labelsep
@@ -22351,7 +23340,7 @@
 }{}% amsthm option
 %    \end{macrocode}
 %
-% Patched for \acro{CSS}:
+% Patched for \CSS:
 %    \begin{macrocode}
 \let\LWR at origendtheorem\@endtheorem
 \renewcommand{\@endtheorem}{%
@@ -22393,7 +23382,7 @@
 %    \end{macrocode}
 
 
-% Patch for \acro{CSS}:
+% Patch for \CSS:
 %    \begin{macrocode}
 \def\listtheorems#1{
 \LWR at htmlelementclass{nav}{lothm}%
@@ -22500,7 +23489,7 @@
 % \section{Placeins}
 %
 % \DescribePackage{placeins}
-% \pkg{placeins} is not used during HTML conversion.
+% \pkg{placeins} is not used during \HTML\ conversion.
 %
 % \changes{v0.20}{2017/01/19}{\pkg{placeins}: Added.}
 %
@@ -22534,7 +23523,7 @@
 % \section{Ragged2e}
 %
 % \DescribePackage{ragged2e}
-% \pkg{ragged2e} is not used during HTML conversion.
+% \pkg{ragged2e} is not used during \HTML\ conversion.
 %
 % \changes{v0.20}{2017/01/19}{\pkg{ragged2e}: Added.}
 %
@@ -22590,10 +23579,10 @@
 % \section{Rotating}
 %
 % \DescribePackage{rotating}
-% \pkg{rotating} is emulated during \acro{HTML} output, and
+% \pkg{rotating} is emulated during \HTML\ output, and
 % the \pkg{rotating} package is ignored.
 %
-% All rotations are ignored in \acro{HTML} output.
+% All rotations are ignored in \HTML\ output.
 %
 % \codehtml
 %    \begin{macrocode}
@@ -22635,7 +23624,7 @@
 % \section{Setspace}
 %
 % \DescribePackage{setspace}
-% \pkg{setspace} is not used during HTML conversion.
+% \pkg{setspace} is not used during \HTML\ conversion.
 %
 % \changes{v0.20}{2016/12/22}{\pkg{setspace}: Improved support.}
 %
@@ -22653,11 +23642,17 @@
 \newcommand*{\doublespacing}{}
 
 \newenvironment*{singlespace}
-{\BlockClass{singlespace}}
+{
+\LWR at forcenewpage
+\BlockClass{singlespace}
+}
 {\endBlockClass}
 
 \newenvironment*{singlespace*}
-{\BlockClass{singlespace}}
+{
+\LWR at forcenewpage
+\BlockClass{singlespace}
+}
 {\endBlockClass}
 
 \newenvironment*{spacing}[1]{
@@ -22667,11 +23662,17 @@
 }
 
 \newenvironment*{onehalfspace}
-{\BlockClass{onehalfspace}}
+{
+\LWR at forcenewpage
+\BlockClass{onehalfspace}
+}
 {\endBlockClass}
 
 \newenvironment*{doublespace}
-{\BlockClass{doublespace}}
+{
+\LWR at forcenewpage
+\BlockClass{doublespace}
+}
 {\endBlockClass}
 %    \end{macrocode}
 
@@ -22863,7 +23864,7 @@
 \DeclareDocumentEnvironment{KFLT at marginfloat}{O{-1.2ex} m}
 {% start
 \LWR at maybeincthisfloat%
-% \BlockClass{marginblock}
+\LWR at forcenewpage
 \LWR at stoppars%
 \LWR at htmltag{div class="marginblock" id="autofloat-\arabic{LWR at thisfloat}"}
 \LWR at startpars%
@@ -22870,7 +23871,6 @@
 \captionsetup{type=#2}%
 }
 {
-% \endBlockClass
 \LWR at htmldivclassend{div}
 }
 
@@ -22938,7 +23938,7 @@
 \newcommand*{\LWR at soulhlcolor}{}
 %    \end{macrocode}
 %
-% Basic markup with \acro{CSS}:
+% Basic markup with \CSS:
 %    \begin{macrocode}
 \newcommand{\so}[1]{\InlineClass{letterspacing}{#1}}
 \newcommand{\caps}[1]{\InlineClass{capsspacing}{#1}}
@@ -23322,6 +24322,7 @@
 % \pkg{tabularx} is emulated by \pkg{lwarp}.
 %
 % \changes{v0.22}{2017/03/01}{\pkg{tabularx}: Added.}
+% \changes{v0.28}{2017/04/11}{\pkg{tabularx}: Fix for optional pos.}
 %
 % \codehtml
 %
@@ -23331,12 +24332,12 @@
 %    \end{macrocode}
 
 %    \begin{macrocode}
-\newenvironment{tabularx}[2]
-{\tabular{#2}}
+\NewDocumentEnvironment{tabularx}{m o m}
+{\tabular{#3}}
 {\endtabular}
 
-\newenvironment{tabularx*}[2]
-{\tabular{#2}}
+\NewDocumentEnvironment{tabularx*}{m o m}
+{\tabular{#3}}
 {\endtabular}
 %    \end{macrocode}
 
@@ -23346,7 +24347,54 @@
 %
 %
 %
+% \clearpage
 %
+% \iffalse
+%<*tabulary>
+% \fi
+
+% \part{lwarp-tabulary.sty}
+
+% \section{Tabulary}
+%
+% \DescribePackage{tabulary}
+% \pkg{tabulary} is emulated by \pkg{lwarp}.
+%
+% \changes{v0.28}{2017/04/11}{\pkg{tabulary}: Added.}
+%
+% \codehtml
+%
+% Discard all options for \pkg{lwarp-tabulary}.
+%
+% Column types |L|, |C|, |R|, and |J| are emulated by \pkg{lwarp}
+% core code.
+%    \begin{macrocode}
+\LWR at ProvidesPackageDrop{tabulary}
+%    \end{macrocode}
+
+%    \begin{macrocode}
+\NewDocumentEnvironment{tabulary}{m o m}
+{\tabular{#3}}
+{\endtabular}
+
+\NewDocumentEnvironment{tabulary*}{m o m}
+{\tabular{#3}}
+{\endtabular}
+
+\newdimen\tymin
+\newdimen\tymax
+\def\tyformat{}
+%    \end{macrocode}
+
+% \iffalse
+%</tabulary>
+% \fi
+%
+%
+%
+%
+%
+%
 % \clearpage
 %
 % \iffalse
@@ -23361,7 +24409,7 @@
 % \changes{v0.20}{2017/01/11}{\pkg{textpos}: Added.}
 %
 % \DescribePackage{textpos}
-% \pkg{textpos} is emulated during \acro{HTML} output, and
+% \pkg{textpos} is emulated during \HTML\ output, and
 % the \pkg{textpos} package is ignored.
 
 % \codehtml
@@ -23502,7 +24550,7 @@
 %    \end{macrocode}
 %
 %
-% The following are patched for \acro{CSS}.
+% The following are patched for \CSS.
 %
 % These were in individual files |thp.sty| for plain,
 % |thmb.sty| for margin break, etc.
@@ -23515,11 +24563,13 @@
 %    \begin{macrocode}
 \gdef\th at plain{%\normalfont\itshape
   \def\@begintheorem##1##2{%
+\LWR at forcenewpage% new
 	\BlockClass{theorembody\LWR at thisthmstyle}% new
         \item[\hskip\labelsep
 			\InlineClass{theoremheader}{##1\ ##2}
 		]}%
 \def\@opargbegintheorem##1##2##3{%
+\LWR at forcenewpage% new
 	\BlockClass{theorembody\LWR at thisthmstyle}% new
    \item[\hskip\labelsep
 		\InlineClass{theoremheader}{##1\ ##2\ (##3)}
@@ -23528,11 +24578,13 @@
 
 \gdef\th at break{%\normalfont\slshape
   \def\@begintheorem##1##2{%
+\LWR at forcenewpage% new
 	\BlockClass{theorembody\LWR at thisthmstyle}% new
 	\item[\hskip \labelsep
 		\InlineClass{theoremheader}{##1\ ##2}\newline%
 	]}%
 \def\@opargbegintheorem##1##2##3{%
+\LWR at forcenewpage% new
 	\BlockClass{theorembody\LWR at thisthmstyle}% new
   \item[\hskip \labelsep
 		\InlineClass{theoremheader}{##1\ ##2\ (##3)}\newline
@@ -23541,11 +24593,13 @@
 
 \gdef\th at marginbreak{%\normalfont\slshape
   \def\@begintheorem##1##2{
+\LWR at forcenewpage% new
 	\BlockClass{theorembody\LWR at thisthmstyle}% new
 	\item[\hskip\labelsep %
 		\InlineClass{theoremheader}{##2	\qquad ##1}\newline
 	]}%
 \def\@opargbegintheorem##1##2##3{%
+\LWR at forcenewpage% new
 	\BlockClass{theorembody\LWR at thisthmstyle}% new
 	\item[\hskip\labelsep %
 		\InlineClass{theoremheader}{##2	\qquad ##1\ %
@@ -23555,11 +24609,13 @@
 
 \gdef\th at changebreak{%\normalfont\slshape
   \def\@begintheorem##1##2{
+\LWR at forcenewpage% new
 	\BlockClass{theorembody\LWR at thisthmstyle}% new
 	\item[\hskip\labelsep
 		\InlineClass{theoremheader}{##2\ ##1}\newline
 	]}%
 \def\@opargbegintheorem##1##2##3{%
+\LWR at forcenewpage% new
 	\BlockClass{theorembody\LWR at thisthmstyle}% new
 	\item[\hskip\labelsep
 		\InlineClass{theoremheader}{ ##2\ ##1\ %
@@ -23569,11 +24625,13 @@
 
 \gdef\th at change{%\normalfont\slshape
   \def\@begintheorem##1##2{
+\LWR at forcenewpage% new
 	\BlockClass{theorembody\LWR at thisthmstyle}% new
 	\item[\hskip\labelsep
 		\InlineClass{theoremheader}{##2\ ##1}
 	]}%
 \def\@opargbegintheorem##1##2##3{%
+\LWR at forcenewpage% new
 	\BlockClass{theorembody\LWR at thisthmstyle}% new
 	\item[\hskip\labelsep
 		\InlineClass{theoremheader}{##2\ ##1\ (##3)}
@@ -23582,11 +24640,13 @@
 
 \gdef\th at margin{%\normalfont\slshape
   \def\@begintheorem##1##2{
+\LWR at forcenewpage% new
 	\BlockClass{theorembody\LWR at thisthmstyle}% new
 	\item[\hskip\labelsep
 		\InlineClass{theoremheader}{##2 \qquad ##1}
 	]}%
 \def\@opargbegintheorem##1##2##3{%
+\LWR at forcenewpage% new
 	\BlockClass{theorembody\LWR at thisthmstyle}% new
 	\item[\hskip\labelsep
 			\InlineClass{theoremheader}{##2 \qquad ##1\ (##3)}
@@ -23594,7 +24654,7 @@
 }
 %    \end{macrocode}
 %
-% Patched for \acro{CSS}:
+% Patched for \CSS:
 %    \begin{macrocode}
 \gdef\@endtheorem{\endBlockClass\endtrivlist}
 %    \end{macrocode}
@@ -23618,7 +24678,7 @@
 %
 %
 % \DescribePackage{threeparttable}
-% \pkg{threeparttable} is emulated during \acro{HTML} output, and
+% \pkg{threeparttable} is emulated during \HTML\ output, and
 % the \pkg{threeparttable} package is ignored.
 
 % \codehtml
@@ -23630,7 +24690,7 @@
 
 % ^^A \begin{macro}{\LWR at printtablenote} \marg{text}
 %
-% Prints the table note item header inside a \acro{CSS} class of |tnoteitemheader|.
+% Prints the table note item header inside a \CSS\ class of |tnoteitemheader|.
 %    \begin{macrocode}
 \newcommand{\LWR at printtablenote}[1]{\InlineClass{tnoteitemheader}{#1}}
 %    \end{macrocode}
@@ -23650,6 +24710,7 @@
 %    \begin{macrocode}
 \newenvironment*{tablenotes}[1][]
 {%
+\LWR at forcenewpage
 \BlockClass{tnotes}%
 \setlist[description]{format=\LWR at printtablenote}%
 \description%
@@ -23768,7 +24829,7 @@
 % \section{Titleps}
 %
 % \DescribePackage{titleps}
-% \pkg{titleps} is loaded and used by \pkg{lwarp} during \acro{HTML} output.
+% \pkg{titleps} is loaded and used by \pkg{lwarp} during \HTML\ output.
 % All user options and macros are ignored and disabled.
 
 % \changes{v0.20}{2017/01/03}{\pkg{titleps}: Added.}
@@ -24672,7 +25733,7 @@
 \begin{warpall}
 %    \end{macrocode}
 
-% \textcolor{red}{For both print and HTML output:}
+% \textcolor{red}{For both print and \HTML\ output:}
 %
 % When using \pkg{float}, \pkg{trivfloat}, or \pkg{algorithmicx} at the same time,
 % be aware of conflicting file usage.
@@ -24691,11 +25752,11 @@
 % \watchout
 % \pkg{algorithmicx} by starting \pkg{trivfloat}'s file extensions with |.lob|:
 %
-% \begin{docsidebar}
-% \cs{makeatletter} \\
-% \cs{setcounter\{tfl\@float\@cnt\}\{1\}} \%	start trivfloats with .lob \\
-% \cs{makeatletter}
-% \end{docsidebar}
+% \begin{Verbatim}[gobble=2,frame=lines,obeytabs,tabsize=4]
+% \makeatletter
+% \setcounter{tfl at float@cnt}{1}} % start trivfloats with .lob
+% \makeatletter
+% \end{Verbatim}
 
 %    \begin{macrocode}
 \end{warpall}
@@ -24734,7 +25795,7 @@
 \let\LWR at ulemorigtextbf\textbf
 %    \end{macrocode}
 %
-% Basic markup commands, using \acro{CSS}:
+% Basic markup commands, using \CSS:
 %    \begin{macrocode}
 \NewDocumentCommand{\uline}{+m}{%
 \InlineClass{uline}{#1}%
@@ -24774,7 +25835,7 @@
 % Nullified/emulated macros:
 %    \begin{macrocode}
 \NewDocumentCommand{\markoverwith}{m}{}
-\NewDocumentCommand{\ULon}{+m}{\uline{#1}}
+\NewDocumentCommand{\ULon}{+m}{\uline{#1}\egroup}
 %    \end{macrocode}
 %
 % \cs{useunder} only works with \cs{textbf}, etc, but not \cs{bfseries}, etc.
@@ -24846,7 +25907,7 @@
 %
 % \begin{environment}{verse}
 % \changes{v0.18}{2016/05/13}{Supports verse, memoir packages.}
-% The \env{verse} environment will be placed inside a \acro{HTML} |pre|.
+% The \env{verse} environment will be placed inside a \HTML\ |pre|.
 %    \begin{macrocode}
 \AfterEndPreamble{
 %    \end{macrocode}
@@ -24866,6 +25927,7 @@
 \setlength{\vleftskip}{\HTMLvleftskip}
 \setlength{\leftmargini}{\HTMLleftmargini}
 }{}
+\LWR at forcenewpage
 \LWR at atbeginverbatim{verse}
 \unskip\vspace{-\baselineskip}
 }
@@ -24878,7 +25940,7 @@
 \LWR at afterendverbatim
 }
 %    \end{macrocode}
-% Patch to place poemtitle inside an \acro{HTML} span of class |poemtitle|:
+% Patch to place poemtitle inside an \HTML\ span of class |poemtitle|:
 %    \begin{macrocode}
 \ifdef{\poemtitle}{
 \DeclareDocumentCommand{\@vstypeptitle}{m}{%
@@ -24913,7 +25975,7 @@
 % \changes{v0.20}{2017/01/11}{\pkg{wallpaper}: Added.}
 %
 % \DescribePackage{wallpaper}
-% \pkg{wallpaper} is emulated during \acro{HTML} output, and
+% \pkg{wallpaper} is emulated during \HTML\ output, and
 % the \pkg{wallpaper} package is ignored.
 
 % \codehtml
@@ -24962,7 +26024,7 @@
 % \changes{v0.20}{2017/01/11}{\pkg{wrapfig}: Added.}
 %
 % \DescribePackage{wrapfig}
-% \pkg{wrapfig} is emulated during \acro{HTML} output, and
+% \pkg{wrapfig} is emulated during \HTML\ output, and
 % the \pkg{wrapfig} package is ignored.
 
 % \codehtml
@@ -24971,7 +26033,7 @@
 %    \end{macrocode}
 
 % Computed width of a wrapped object.
-%	Used to print the \acro{HTML} style.
+%	Used to print the \HTML\ style.
 %    \begin{macrocode}
 \newlength{\LWR at wrapwidth}
 %    \end{macrocode}
@@ -24993,10 +26055,7 @@
 \setlength{\LWR at wrapwidth}{#2}%
 \addtolength{\LWR at wrapwidth}{4em}%
 \uselengthunit{PT}%
-% \BlockClass{marginblock}[%
-% width:\rndprintlength{\LWR at wrapwidth} ; %
-% \LWR at wrapposition%
-% ]%
+\LWR at forcenewpage
 \LWR at stoppars%
 \LWR at htmltag{div class="marginblock" id="autofloat-\arabic{LWR at thisfloat}"
 style="width:\rndprintlength{\LWR at wrapwidth} ; %
@@ -25066,7 +26125,7 @@
 %    \end{macrocode}
 
 
-% ^^A \begin{macro}{\LWR at tempcolor} The color converted to \acro{HTML} colorspace.
+% ^^A \begin{macro}{\LWR at tempcolor} The color converted to \HTML\ colorspace.
 %    \begin{macrocode}
 \newcommand*{\LWR at tempcolor}{}
 %    \end{macrocode}
@@ -25087,7 +26146,7 @@
 %
 % \changes{v0.19}{2016/06/01}{Supports colored \cs{rule}.}
 %
-% Creates a styled span with a color converted to \acro{HTML} hex colorspace.
+% Creates a styled span with a color converted to \HTML\ hex colorspace.
 % Uses |LWR at spandepth| to prevent paragraph tags inside the span.
 % If used for \cs{textcolor}, with a styletext of |color:|, then the new color is
 % copied into \\ \cs{LWR at currenttextcolor} for possible re-use in \cs{rule}.
@@ -25094,7 +26153,7 @@
 %    \begin{macrocode}
 \NewDocumentCommand{\LWR at colorstyle}{m m m m}{%
 %    \end{macrocode}
-% Use the \pkg{xcolor} package to convert to an \acro{HTML} color space:
+% Use the \pkg{xcolor} package to convert to an \HTML\ color space:
 %    \begin{macrocode}
 \convertcolorspec{#2}{#3}{HTML}\LWR at tempcolor%
 %    \end{macrocode}
@@ -25103,7 +26162,7 @@
 \ifthenelse{\equal{#1}{color:}}%
 {\renewcommand*{\LWR at currenttextcolor}{\#\LWR at tempcolor}}{}%
 %    \end{macrocode}
-% Create the \acro{HTML} \tag{span} with the styled color:
+% Create the \HTML\ \tag{span} with the styled color:
 %    \begin{macrocode}
 \LWR at htmltagc{span style="#1\#\LWR at tempcolor"{}}%
 \begin{LWR at nestspan}%
@@ -25126,17 +26185,17 @@
 
 
 % ^^A \DescribeMacro{\color}
-% \cs{color} appears in the \LaTeX{} \acro{PDF} output,
-% but is ignored by |pdftotext| and thus is ignored in the \acro{HTML} file.
+% \cs{color} appears in the \LaTeX{} \PDF\ output,
+% but is ignored by |pdftotext| and thus is ignored in the \HTML\ file.
 % Text styling by local group is not yet supported.
 
 % Each of the following macros is given a temporary name, and is |\let| to the final
-% name once the \acro{HTML} conversion starts.
+% name once the \HTML\ conversion starts.
 
 % ^^A \begin{macro}{\textcolor}
 % \cs{textcolor}
 % \oarg{model} \marg{color} \marg{text}
-% is converted into an \acro{HTML} hex color span.
+% is converted into an \HTML\ hex color span.
 %    \begin{macrocode}
 \NewDocumentCommand{\LWR at textcolor}{O{named} m m}{%
 \begingroup%
@@ -25159,7 +26218,7 @@
 % ^^A \begin{macro}{\colorbox}
 % \cs{colorbox}
 % \oarg{model} \marg{color} \marg{text}
-% is converted into an \acro{HTML} hex background color span.
+% is converted into an \HTML\ hex background color span.
 %
 %    \begin{macrocode}
 \NewDocumentCommand{\LWR at colorbox}{O{named} m m}{%
@@ -25173,7 +26232,7 @@
 % ^^A \begin{macro}{\fcolorbox}
 % \cs{fcolorbox}
 % \oarg{framemodel} \marg{framecolor} \oarg{boxmodel} \marg{boxcolor} \marg{text}
-% is converted into a framed \acro{HTML} hex background color span.
+% is converted into a framed \HTML\ hex background color span.
 %
 % A background color of "none" creates a colored frame without a background color.
 %
@@ -25228,11 +26287,11 @@
 % In the user's document preamble, \pkg{lwarp} should be loaded
 % after font-related setup.
 % \watchout[font size]
-% During \acro{HTML} conversion, this font is used by \pkg{lwarp}
-% to generate its initial \acro{PDF} output containing \acro{HTML} tags,
+% During \HTML\ conversion, this font is used by \pkg{lwarp}
+% to generate its initial \PDF\ output containing \HTML\ tags,
 % later to be converted by |pdftotext| to a plain text file.
 % While the text may be in any font which |pdftotext| can read, the math is
-% directly converted into \acro{SVG} images using this same user-selected font.
+% directly converted into \SVG\ images using this same user-selected font.
 % |xfrac| below is set for the Latin Modern (lmr) font.
 % If another font is used, it may be desirable to redefine
 % \cs{xfracHTMLfontsize} with a different em size.
@@ -25244,9 +26303,9 @@
 %
 % A text-mode instance for the default font is provided below.
 % The numerator and denominator formats are adjusted to encase everything
-% in \acro{HTML} tags.  \cs{scalebox} is made null inside the numerator and
-% denominator, since the \acro{HTML} tags should not be scaled, and we do not
-% want to introduce additional \acro{HTML} tags for scaling.
+% in \HTML\ tags.  \cs{scalebox} is made null inside the numerator and
+% denominator, since the \HTML\ tags should not be scaled, and we do not
+% want to introduce additional \HTML\ tags for scaling.
 %
 % In math mode, which will appear inside a \env{lateximage}, no adjustments
 % are necessary.
@@ -25291,7 +26350,7 @@
 \endLWR at nestspan%
 }
 %    \end{macrocode}
-% A nullified \cs{scalebox} command, to avoid introducing \acro{HTML} scaling tags:
+% A nullified \cs{scalebox} command, to avoid introducing \HTML\ scaling tags:
 % \margintag{\cs{scalebox}}
 %    \begin{macrocode}
 \NewDocumentCommand{\LWR at noscalebox}{m o m}{#3}
@@ -25300,7 +26359,7 @@
 % Instances of \pkg{xfrac} for various font choices:
 % \margintag{instances}
 %
-% Produce \acro{HTML} tags for a small superscript numerator and
+% Produce \HTML\ tags for a small superscript numerator and
 % a small (non-subscript) denominator.
 %
 % Scaling is turned off so that \cmds{pdftotext} correctly reads the result.

Modified: trunk/Master/texmf-dist/source/latex/lwarp/lwarp.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/lwarp/lwarp.ins	2017-04-16 22:17:59 UTC (rev 43856)
+++ trunk/Master/texmf-dist/source/latex/lwarp/lwarp.ins	2017-04-16 22:18:18 UTC (rev 43857)
@@ -66,6 +66,7 @@
 \file{lwarp-framed.sty}{\from{lwarp.dtx}{framed}}
 \file{lwarp-ftnright.sty}{\from{lwarp.dtx}{ftnright}}
 \file{lwarp-geometry.sty}{\from{lwarp.dtx}{geometry}}
+\file{lwarp-glossaries.sty}{\from{lwarp.dtx}{glossaries}}
 \file{lwarp-graphicx.sty}{\from{lwarp.dtx}{graphicx}}
 \file{lwarp-graphics.sty}{\from{lwarp.dtx}{graphics}}
 \file{lwarp-hyperref.sty}{\from{lwarp.dtx}{hyperref}}
@@ -108,6 +109,7 @@
 \file{lwarp-soul.sty}{\from{lwarp.dtx}{soul}}
 \file{lwarp-subfig.sty}{\from{lwarp.dtx}{subfig}}
 \file{lwarp-tabularx.sty}{\from{lwarp.dtx}{tabularx}}
+\file{lwarp-tabulary.sty}{\from{lwarp.dtx}{tabulary}}
 \file{lwarp-textpos.sty}{\from{lwarp.dtx}{textpos}}
 \file{lwarp-theorem.sty}{\from{lwarp.dtx}{theorem}}
 \file{lwarp-threeparttable.sty}{\from{lwarp.dtx}{threeparttable}}

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-abstract.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-abstract.sty	2017-04-16 22:17:59 UTC (rev 43856)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-abstract.sty	2017-04-16 22:18:18 UTC (rev 43857)
@@ -18,7 +18,10 @@
 \LWR at ProvidesPackagePass{abstract}
 
 \AtBeginDocument{
-\BeforeBeginEnvironment{abstract}{\BlockClass{abstract}}
+\BeforeBeginEnvironment{abstract}{
+\LWR at forcenewpage
+\BlockClass{abstract}
+}
 \AfterEndEnvironment{abstract}{\endBlockClass}
 }
 

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-algorithmicx.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-algorithmicx.sty	2017-04-16 22:17:59 UTC (rev 43856)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-algorithmicx.sty	2017-04-16 22:18:18 UTC (rev 43857)
@@ -16,7 +16,6 @@
 %% and version 1.3 or later is part of all distributions of LaTeX
 %% version 2005/12/01 or later.
 \LWR at ProvidesPackagePass{algorithmicx}
-
 \begin{warpHTML}
 
 \AtBeginEnvironment{algorithmic}{%

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-alltt.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-alltt.sty	2017-04-16 22:17:59 UTC (rev 43856)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-alltt.sty	2017-04-16 22:18:18 UTC (rev 43857)
@@ -19,7 +19,10 @@
 \LWR at ProvidesPackagePass{alltt}
 
 \AfterEndPreamble{
-\AtBeginEnvironment{alltt}{\LWR at atbeginverbatim{alltt}\unskip\vspace*{-\baselineskip}}
+\AtBeginEnvironment{alltt}{%
+\LWR at forcenewpage
+\LWR at atbeginverbatim{alltt}\unskip\vspace*{-\baselineskip}%
+}
 \AfterEndEnvironment{alltt}{\unskip\vspace*{-\baselineskip}\LWR at afterendverbatim}
 }
 

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-amsthm.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-amsthm.sty	2017-04-16 22:17:59 UTC (rev 43856)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-amsthm.sty	2017-04-16 22:18:18 UTC (rev 43857)
@@ -66,6 +66,7 @@
 \LWR at haveamsthmnumber
 \LWR at haveamsthmnote
 \def\@begintheorem#1#2[#3]{%
+\LWR at forcenewpage% new
   \BlockClass{amsthmbody\LWR at thisthmstyle}% new
   \deferred at thm@head{
 \the\thm at headfont \thm at indent
@@ -85,6 +86,7 @@
 \def\Box{\text{\HTMLunicode{25A1}}}% UTF-8 white box
 }
 \renewenvironment{proof}[1][\proofname]{\par
+\LWR at forcenewpage% new
 \BlockClass{amsthmproof}% new
   \pushQED{\qed}%
   \normalfont \topsep6\p@\@plus6\p@\relax

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-floatflt.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-floatflt.sty	2017-04-16 22:17:59 UTC (rev 43856)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-floatflt.sty	2017-04-16 22:18:18 UTC (rev 43857)
@@ -19,6 +19,7 @@
 \DeclareDocumentEnvironment{KFLT at marginfloat}{O{-1.2ex} m}
 {% start
 \LWR at maybeincthisfloat%
+\LWR at forcenewpage
 \LWR at stoppars%
 \LWR at htmltag{div class="marginblock" id="autofloat-\arabic{LWR at thisfloat}"}
 \LWR at startpars%

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-floatrow.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-floatrow.sty	2017-04-16 22:17:59 UTC (rev 43856)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-floatrow.sty	2017-04-16 22:18:18 UTC (rev 43857)
@@ -98,6 +98,7 @@
 
 \newenvironment*{floatrow}[1][2]
 {
+\LWR at forcenewpage
 \BlockClass{floatrow}
 \booltrue{LWR at infloatrow}
 \setlength{\linewidth}{6in/#1}
@@ -168,6 +169,7 @@
 
 \newenvironment*{subfloatrow}[1][2]
 {
+\LWR at forcenewpage
 \BlockClass{floatrow}
 \begingroup
 \booltrue{LWR at insubfloatrow}

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-framed.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-framed.sty	2017-04-16 22:17:59 UTC (rev 43856)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-framed.sty	2017-04-16 22:18:18 UTC (rev 43857)
@@ -20,11 +20,13 @@
 
 
 \renewenvironment{framed}{%
+\LWR at forcenewpage
 \BlockClass{framed}%
 }
 {\endBlockClass}
 
 \renewenvironment{oframed}{%
+\LWR at forcenewpage
 \BlockClass{framed}%
 }
 {\endBlockClass}
@@ -31,6 +33,7 @@
 
 \renewenvironment{shaded}{%
 \convertcolorspec{named}{shadecolor}{HTML}\LWR at tempcolor%
+\LWR at forcenewpage
 \BlockClass{framed}[background: \#\LWR at tempcolor]%
 }
 {\endBlockClass}
@@ -37,11 +40,13 @@
 
 \renewenvironment{shaded*}{%
 \convertcolorspec{named}{shadecolor}{HTML}\LWR at tempcolor%
+\LWR at forcenewpage
 \BlockClass{framed}[background: \#\LWR at tempcolor]%
 }
 {\endBlockClass}
 
 \renewenvironment{leftbar}{%
+\LWR at forcenewpage
 \BlockClass{framedleftbar}
   \def\FrameCommand{}%
   \MakeFramed {}
@@ -50,6 +55,7 @@
 
 \renewenvironment{snugshade}{%
 \convertcolorspec{named}{shadecolor}{HTML}\LWR at tempcolor%
+\LWR at forcenewpage
 \BlockClass{snugframed}[background: \#\LWR at tempcolor]%
 }
 {\endBlockClass}
@@ -56,6 +62,7 @@
 
 \renewenvironment{snugshade*}{%
 \convertcolorspec{named}{shadecolor}{HTML}\LWR at tempcolor%
+\LWR at forcenewpage
 \BlockClass{snugframed}[background: \#\LWR at tempcolor]%
 }
 {\endBlockClass}
@@ -69,6 +76,7 @@
 
 \renewcommand{\CustomFBox}[7]{%
 \convertcolorspec{named}{TFFrameColor}{HTML}\LWR at tempcolor%
+\LWR at forcenewpage
 \begin{BlockClass}{framed}[border: 3px solid \#\LWR at tempcolor]%
 \ifthenelse{\isempty{#1}}{}{% not empty
 \begin{BlockClass}{framedtitle}[background: \#\LWR at tempcolor]%

Added: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-glossaries.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-glossaries.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-glossaries.sty	2017-04-16 22:18:18 UTC (rev 43857)
@@ -0,0 +1,25 @@
+%%
+%% This is file `lwarp-glossaries.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lwarp.dtx  (with options: `glossaries')
+%% This is a generated file.
+%% Copyright 2016-2017 Brian Dunn
+%% 
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%   http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+
+\PassOptionsToPackage{xindy}{glossaries}
+\LWR at ProvidesPackagePass{glossaries}
+\setupglossaries{nonumberlist}
+\setglossarystyle{index}
+\endinput
+%%
+%% End of file `lwarp-glossaries.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-glossaries.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-graphics.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-graphics.sty	2017-04-16 22:17:59 UTC (rev 43856)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-graphics.sty	2017-04-16 22:18:18 UTC (rev 43857)
@@ -17,9 +17,7 @@
 %% version 2005/12/01 or later.
 
 
-
-\LWR at loadnever{graphics}{graphicx}
-
+\LWR at ProvidesPackageDrop{graphics}
 \endinput
 %%
 %% End of file `lwarp-graphics.sty'.

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-graphicx.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-graphicx.sty	2017-04-16 22:17:59 UTC (rev 43856)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-graphicx.sty	2017-04-16 22:18:18 UTC (rev 43857)
@@ -17,7 +17,6 @@
 %% version 2005/12/01 or later.
 
 
-
 \LWR at ProvidesPackageDrop{graphicx}
 
 \endinput

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-keyfloat.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-keyfloat.sty	2017-04-16 22:17:59 UTC (rev 43856)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-keyfloat.sty	2017-04-16 22:18:18 UTC (rev 43857)
@@ -36,6 +36,7 @@
 \DeclareDocumentEnvironment{KFLT at marginfloat}{O{-1.2ex} m}
 {% start
 \LWR at maybeincthisfloat%
+\LWR at forcenewpage
 \LWR at stoppars%
 \LWR at htmltag{div class="marginblock" id="autofloat-\arabic{LWR at thisfloat}"}
 \LWR at startpars%

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-listings.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-listings.sty	2017-04-16 22:17:59 UTC (rev 43856)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-listings.sty	2017-04-16 22:18:18 UTC (rev 43857)
@@ -34,6 +34,7 @@
 \lst at ifdisplaystyle%
 \LWR at traceinfo{About to create verbatim.}%
 \let\lsthk at EveryPar\relax%
+\LWR at forcenewpage
 \LWR at atbeginverbatim{programlisting}%
 
 \let\lsthk at EveryPar\LWR at origlsthkEveryPar%

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-longtable.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-longtable.sty	2017-04-16 22:17:59 UTC (rev 43856)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-longtable.sty	2017-04-16 22:18:18 UTC (rev 43857)
@@ -19,9 +19,6 @@
 
 
 \LWR at ProvidesPackageDrop{longtable}
-
-
-
 \newenvironment{longtable*}[2][]{%
 \LWR at floatbegin{table}%
 \setcaptiontype{\LTcaptype}%

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-multicol.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-multicol.sty	2017-04-16 22:17:59 UTC (rev 43856)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-multicol.sty	2017-04-16 22:18:18 UTC (rev 43857)
@@ -24,7 +24,9 @@
 \begin{warpHTML}
 
 \NewDocumentEnvironment{multicols}{s m o}
-{\BlockClass{multicols}
+{
+\LWR at forcenewpage
+\BlockClass{multicols}
 \IfValueTF{#3}{\begin{BlockClass}{multicolsheading}#3\end{BlockClass}}{}}
 {\endBlockClass}
 

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-newproject.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-newproject.sty	2017-04-16 22:17:59 UTC (rev 43856)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-newproject.sty	2017-04-16 22:18:18 UTC (rev 43857)
@@ -35,6 +35,7 @@
 \DeclareVoidOption{warpHTML}{\boolfalse{LWRNP at genconf}}
 \DeclareVoidOption{lwarpmk}{\includecomment{LWR at createlwarpmk}}
 \DeclareStringOption[\jobname]{BaseJobname}
+\DeclareStringOption[english]{lwarpmklang}
 
 \booltrue{LWRNP at genconf}% warpprint
 
@@ -43,7 +44,7 @@
 \providecommand*{\BaseJobname}{\LWRNP at BaseJobname}
 
 \providecommand*{\HomeHTMLFileName}{\BaseJobname}
-\providecommand*{\HTMLFileName}{}
+\providecommand*{\HTMLfiveName}{}
 \providecommand*{\UseLatexmk}{false}
 
 \ifbool{LWRNP at genconf}{\typeout{lwarp-newproject: generating configuration files}}{}
@@ -86,8 +87,9 @@
 \immediate\write\LWR at file{%
 homehtmlfilename = "\HomeHTMLFileName"%
 }
-\immediate\write\LWR at file{htmlfilename = "\HTMLFileName"}
+\immediate\write\LWR at file{htmlfilename = "\HTMLfiveName"}
 \immediate\write\LWR at file{uselatexmk = "\UseLatexmk"}
+\immediate\write\LWR at file{language = "\LWRNP at lwarpmklang"}
 \immediate\closeout\LWR at file
 }{}
 
@@ -1637,7 +1639,6 @@
 \end{VerbatimOut}
 
 
-
 \begin{VerbatimOut}{lwarp_mathjax.txt}
 <!-- https://groups.google.com/forum/#!topic/
                                mathjax-users/jUtewUcE2bY -->
@@ -1721,9 +1722,18 @@
 });
 </script>
 
+<!-- Alternative CDN provider: -->
+<script type="text/javascript" async
+  src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML-full">
+</script>
+
+<!-- No longer supported after April 30, 2017: -->
+<!--
 <script
   src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML-full">
 </script>
+-->
+
 \end{VerbatimOut}
 
 
@@ -1736,7 +1746,7 @@
 
 -- Print the usage of the lwarpmk command:
 
-printversion = "v0.27"
+printversion = "v0.29"
 
 function printhelp ()
 print ("lwarpmk: Use lwarpmk -h or lwarpmk --help for help.") ;
@@ -1747,8 +1757,10 @@
 
 lwarpmk print [project]: Compile a print version.
 lwarpmk printindex [project]: Process the index for the print version.
+lwarpmk printglossary [project]: Process the glossary for the print version.
 lwarpmk html [project]: Compile an HTML version.
 lwarpmk htmlindex [project]: Process the index for the html version.
+lwarpmk htmlglossary [project]: Process the glossary for the html version.
 lwarpmk again [project]: Touch the source code to trigger recompiles.
 lwarpmk limages [project]: Process the "lateximages" created by lwarp.sty.
 lwarpmk pdftohtml [project]:
@@ -1755,7 +1767,7 @@
     For use with latexmk or a Makefile:
     Convert project_html.pdf to project_html.html and
     individual HTML files.
-lwarpmk clean [project]: Remove project.aux, .toc, .lof, .lot, .idx, .ind, .log
+lwarpmk clean [project]: Remove project.aux, .toc, .lof/t, .idx, .ind, .log, .gl*
 lwarpmk cleanall [project]: Remove auxiliary files and also project.pdf, *.html
 lwarpmk -h: Print this help message.
 lwarpmk --help: Print this help message.
@@ -1776,6 +1788,7 @@
 homehtmlfilename = "index"  (or perhaps the project name)
 htmlfilename = ""  (or "projectname" - filename prefix)
 uselatexmk = "false"  (or "true" to use latexmk to build PDFs)
+languge = "english"  (use a language supported by xindy)
 --
 Filenames must contain only letters, numbers, underscore, or dash.
 Values must be in "quotes".
@@ -1817,6 +1830,8 @@
 local conffile = "lwarpmk.conf"
 -- Optional configuration filename:
 if arg[2] ~= nil then conffile = arg[2]..".lwarpmkconf" end
+-- Default language:
+language = "english"
 -- Verify the file exists:
 if (lfs.attributes(conffile,"mode")==nil) then -- file not exists
 print("lwarpmk: " .. conffile .." does not exist.")
@@ -1861,6 +1876,7 @@
 elseif ( cvarname == "homehtmlfilename" ) then homehtmlfilename = cvalue
 elseif ( cvarname == "htmlfilename" ) then htmlfilename = cvalue
 elseif ( cvarname == "uselatexmk" ) then uselatexmk = cvalue
+elseif ( cvarname == "language" ) then language = cvalue
 else
 print ( linenum .. " : " .. line ) ;
 print ("lwarpmk: Incorrect variable name \"" .. cvarname .. "\" in " .. conffile ..".\n" ) ;
@@ -1957,7 +1973,8 @@
         sourcename ..".lot " .. sourcename .. "_html.lot " ..
         sourcename ..".idx " .. sourcename .. "_html.idx " ..
         sourcename ..".ind " .. sourcename .. "_html.ind " ..
-        sourcename ..".log " .. sourcename .. "_html.log "
+        sourcename ..".log " .. sourcename .. "_html.log " ..
+        sourcename ..".gl* " .. sourcename .. "_html.gl* "
         )
 end
 
@@ -2047,6 +2064,22 @@
 print ("lwarpmk: " .. sourcename ..".tex is ready to be recompiled.")
 print ("lwarpmk: Done.")
 
+-- lwarp printglossary:
+-- Compile the glossary then touch the source
+-- to trigger a recompile of the document:
+
+elseif arg[1] == "printglossary" then
+loadconf ()
+print ("lwarpmk: Processing the glossary.")
+
+os.execute("xindy -L " .. language .. " -C utf8 -I xindy -M " .. sourcename ..
+    " -t " .. sourcename .. ".glg -o " .. sourcename .. ".gls "
+    .. sourcename .. ".glo")
+print ("lwarpmk: Forcing an update of " .. sourcename ..".tex.")
+refreshdate ()
+print ("lwarpmk: " .. sourcename ..".tex is ready to be recompiled.")
+print ("lwarpmk: Done.")
+
 -- lwarpmk html:
 
 elseif arg[1] == "html" then
@@ -2098,6 +2131,23 @@
 print ("lwarpmk: " .. sourcename ..".tex is ready to be recompiled.")
 print ("lwarpmk: Done.")
 
+-- lwarpmk htmlglossary:
+-- Compile the glossary then touch the source
+-- to trigger a recompile of the document:
+
+elseif arg[1] == "htmlglossary" then
+loadconf ()
+print ("lwarpmk: Processing the glossary.")
+
+os.execute("xindy -L " .. language .. " -C utf8 -I xindy -M " ..sourcename ..
+    "_html -t " .. sourcename .. "_html.glg -o " ..sourcename ..
+    "_html.gls " ..sourcename .. "_html.glo")
+
+print ("lwarpmk: Forcing an update of " .. sourcename ..".tex.")
+refreshdate ()
+print ("lwarpmk: " .. sourcename ..".tex is ready to be recompiled.")
+print ("lwarpmk: Done.")
+
 -- lwarpmk limages:
 -- Scan the lateximages.txt file to create lateximages,
 -- then touch the source to trigger a recompile.
@@ -2122,7 +2172,7 @@
 print ("lwarpmk: Done.")
 
 -- lwarpmk clean:
--- Remove project.aux, .toc, .lof, .lot, .idx, .ind, .log
+-- Remove project.aux, .toc, .lof, .lot, .idx, .ind, .log, .gl*
 
 elseif arg[1] == "clean" then
 loadconf ()
@@ -2130,7 +2180,7 @@
 print ("lwarpmk: Done.")
 
 -- lwarpmk cleanall
--- Remove project.aux, .toc, .lof, .lot, .idx, .ind, .log
+-- Remove project.aux, .toc, .lof, .lot, .idx, .ind, .log, .gl*
 --    and also project.pdf, *.html
 
 elseif arg[1] == "cleanall" then

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-ntheorem.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-ntheorem.sty	2017-04-16 22:17:59 UTC (rev 43856)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-ntheorem.sty	2017-04-16 22:18:18 UTC (rev 43857)
@@ -113,10 +113,12 @@
   \expandafter\@ifundefined{th@#1}%
    {\expandafter\gdef\csname th@#1\endcsname{%
     \def\@begintheorem####1####2{%
+\LWR at forcenewpage% new
 \BlockClass{theorembody#1}%\LWR at thisthmstyle% new
 \LWR at inctheorem% new
 #2}%
     \def\@opargbegintheorem####1####2####3{%
+\LWR at forcenewpage% new
 \BlockClass{theorembody#1}%\LWR at thisthmstyle% new
 \LWR at inctheorem% new
 #3}%
@@ -243,6 +245,7 @@
 \gdef\th at plain{%
   \def\theorem at headerfont{\normalfont\bfseries}\itshape%
   \def\@begintheorem##1##2{%
+\LWR at forcenewpage% new
 \BlockClass{theorembodyplain}% new
 \LWR at inctheorem% new
       \item[\hskip\labelsep
@@ -249,6 +252,7 @@
   \InlineClass{theoremheaderplain}{##1\ ##2.}
 ]}%
   \def\@opargbegintheorem##1##2##3{%
+\LWR at forcenewpage% new
 \BlockClass{theorembodyplain}% new
 \LWR at inctheorem% new
      \item[\hskip\labelsep
@@ -258,6 +262,7 @@
 \gdef\th at nonumberplain{%
   \def\theorem at headerfont{\normalfont\bfseries}\itshape%
   \def\@begintheorem##1##2{%
+\LWR at forcenewpage% new
 \BlockClass{theorembodyplain}% new
 \LWR at inctheorem% new
       \item[\hskip\labelsep
@@ -264,6 +269,7 @@
   \InlineClass{theoremheaderplain}{##1.}
 ]}%
   \def\@opargbegintheorem##1##2##3{%
+\LWR at forcenewpage% new
 \BlockClass{theorembodyplain}% new
 \LWR at inctheorem% new
      \item[\hskip\labelsep
@@ -273,6 +279,7 @@
 \gdef\th at definition{%
   \def\theorem at headerfont{\normalfont\bfseries}\normalfont%
   \def\@begintheorem##1##2{%
+\LWR at forcenewpage% new
 \BlockClass{theorembodydefinition}% new
 \LWR at inctheorem% new
       \item[\hskip\labelsep
@@ -279,6 +286,7 @@
   \InlineClass{theoremheaderdefinition}{##1\ ##2.}
 ]}%
   \def\@opargbegintheorem##1##2##3{%
+\LWR at forcenewpage% new
 \BlockClass{theorembodydefinition}% new
 \LWR at inctheorem% new
      \item[\hskip\labelsep
@@ -288,6 +296,7 @@
 \gdef\th at nonumberdefinition{%
   \def\theorem at headerfont{\normalfont\bfseries}\normalfont%
   \def\@begintheorem##1##2{%
+\LWR at forcenewpage% new
 \BlockClass{theorembodydefinition}% new
 \LWR at inctheorem% new
       \item[\hskip\labelsep
@@ -294,6 +303,7 @@
   \InlineClass{theoremheaderdefinition}{##1.}
 ]}%
   \def\@opargbegintheorem##1##2##3{%
+\LWR at forcenewpage% new
 \BlockClass{theorembodydefinition}% new
 \LWR at inctheorem% new
      \item[\hskip\labelsep
@@ -303,6 +313,7 @@
 \gdef\th at remark{%
   \def\theorem at headerfont{\itshape}\normalfont%
   \def\@begintheorem##1##2{%
+\LWR at forcenewpage% new
 \BlockClass{theorembodyremark}% new
 \LWR at inctheorem% new
       \item[\hskip\labelsep
@@ -309,6 +320,7 @@
   \InlineClass{theoremheaderremark}{##1\ ##2.}
 ]}%
   \def\@opargbegintheorem##1##2##3{%
+\LWR at forcenewpage% new
 \BlockClass{theorembodyremark}% new
 \LWR at inctheorem% new
      \item[\hskip\labelsep
@@ -318,6 +330,7 @@
 \gdef\th at nonumberremark{%
   \def\theorem at headerfont{\itshape}\normalfont%
   \def\@begintheorem##1##2{%
+\LWR at forcenewpage% new
 \BlockClass{theorembodyremark}% new
 \LWR at inctheorem% new
       \item[\hskip\labelsep
@@ -324,6 +337,7 @@
   \InlineClass{theoremheaderremark}{##1.}
 ]}%
   \def\@opargbegintheorem##1##2##3{%
+\LWR at forcenewpage% new
 \BlockClass{theorembodyremark}% new
 \LWR at inctheorem% new
      \item[\hskip\labelsep
@@ -333,6 +347,7 @@
 \gdef\th at proof{%
   \def\theorem at headerfont{\normalfont\bfseries}\itshape%
   \def\@begintheorem##1##2{%
+\LWR at forcenewpage% new
 \BlockClass{theorembodyproof}% new
 \LWR at inctheorem% new
       \item[\hskip\labelsep
@@ -339,6 +354,7 @@
   \InlineClass{theoremheaderproof}{##1.}
 ]}%
   \def\@opargbegintheorem##1##2##3{%
+\LWR at forcenewpage% new
 \BlockClass{theorembodyroof}% new
 \LWR at inctheorem% new
      \item[\hskip\labelsep

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-setspace.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-setspace.sty	2017-04-16 22:17:59 UTC (rev 43856)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-setspace.sty	2017-04-16 22:18:18 UTC (rev 43857)
@@ -28,11 +28,17 @@
 \newcommand*{\doublespacing}{}
 
 \newenvironment*{singlespace}
-{\BlockClass{singlespace}}
+{
+\LWR at forcenewpage
+\BlockClass{singlespace}
+}
 {\endBlockClass}
 
 \newenvironment*{singlespace*}
-{\BlockClass{singlespace}}
+{
+\LWR at forcenewpage
+\BlockClass{singlespace}
+}
 {\endBlockClass}
 
 \newenvironment*{spacing}[1]{
@@ -42,11 +48,17 @@
 }
 
 \newenvironment*{onehalfspace}
-{\BlockClass{onehalfspace}}
+{
+\LWR at forcenewpage
+\BlockClass{onehalfspace}
+}
 {\endBlockClass}
 
 \newenvironment*{doublespace}
-{\BlockClass{doublespace}}
+{
+\LWR at forcenewpage
+\BlockClass{doublespace}
+}
 {\endBlockClass}
 
 \endinput

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-sidenotes.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-sidenotes.sty	2017-04-16 22:17:59 UTC (rev 43856)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-sidenotes.sty	2017-04-16 22:18:18 UTC (rev 43857)
@@ -39,6 +39,7 @@
 \DeclareDocumentEnvironment{KFLT at marginfloat}{O{-1.2ex} m}
 {% start
 \LWR at maybeincthisfloat%
+\LWR at forcenewpage
 \LWR at stoppars%
 \LWR at htmltag{div class="marginblock" id="autofloat-\arabic{LWR at thisfloat}"}
 \LWR at startpars%

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-tabularx.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-tabularx.sty	2017-04-16 22:17:59 UTC (rev 43856)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-tabularx.sty	2017-04-16 22:18:18 UTC (rev 43857)
@@ -19,12 +19,12 @@
 
 \LWR at ProvidesPackageDrop{tabularx}
 
-\newenvironment{tabularx}[2]
-{\tabular{#2}}
+\NewDocumentEnvironment{tabularx}{m o m}
+{\tabular{#3}}
 {\endtabular}
 
-\newenvironment{tabularx*}[2]
-{\tabular{#2}}
+\NewDocumentEnvironment{tabularx*}{m o m}
+{\tabular{#3}}
 {\endtabular}
 
 \endinput

Added: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-tabulary.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-tabulary.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-tabulary.sty	2017-04-16 22:18:18 UTC (rev 43857)
@@ -0,0 +1,36 @@
+%%
+%% This is file `lwarp-tabulary.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lwarp.dtx  (with options: `tabulary')
+%% This is a generated file.
+%% Copyright 2016-2017 Brian Dunn
+%% 
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%   http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+
+
+\LWR at ProvidesPackageDrop{tabulary}
+
+\NewDocumentEnvironment{tabulary}{m o m}
+{\tabular{#3}}
+{\endtabular}
+
+\NewDocumentEnvironment{tabulary*}{m o m}
+{\tabular{#3}}
+{\endtabular}
+
+\newdimen\tymin
+\newdimen\tymax
+\def\tyformat{}
+
+\endinput
+%%
+%% End of file `lwarp-tabulary.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-tabulary.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-theorem.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-theorem.sty	2017-04-16 22:17:59 UTC (rev 43856)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-theorem.sty	2017-04-16 22:18:18 UTC (rev 43857)
@@ -82,11 +82,13 @@
   \fi}
 \gdef\th at plain{%\normalfont\itshape
   \def\@begintheorem##1##2{%
+\LWR at forcenewpage% new
 \BlockClass{theorembody\LWR at thisthmstyle}% new
         \item[\hskip\labelsep
 \InlineClass{theoremheader}{##1\ ##2}
 ]}%
 \def\@opargbegintheorem##1##2##3{%
+\LWR at forcenewpage% new
 \BlockClass{theorembody\LWR at thisthmstyle}% new
    \item[\hskip\labelsep
 \InlineClass{theoremheader}{##1\ ##2\ (##3)}
@@ -95,11 +97,13 @@
 
 \gdef\th at break{%\normalfont\slshape
   \def\@begintheorem##1##2{%
+\LWR at forcenewpage% new
 \BlockClass{theorembody\LWR at thisthmstyle}% new
 \item[\hskip \labelsep
 \InlineClass{theoremheader}{##1\ ##2}\newline%
 ]}%
 \def\@opargbegintheorem##1##2##3{%
+\LWR at forcenewpage% new
 \BlockClass{theorembody\LWR at thisthmstyle}% new
   \item[\hskip \labelsep
 \InlineClass{theoremheader}{##1\ ##2\ (##3)}\newline
@@ -108,11 +112,13 @@
 
 \gdef\th at marginbreak{%\normalfont\slshape
   \def\@begintheorem##1##2{
+\LWR at forcenewpage% new
 \BlockClass{theorembody\LWR at thisthmstyle}% new
 \item[\hskip\labelsep %
 \InlineClass{theoremheader}{##2 \qquad ##1}\newline
 ]}%
 \def\@opargbegintheorem##1##2##3{%
+\LWR at forcenewpage% new
 \BlockClass{theorembody\LWR at thisthmstyle}% new
 \item[\hskip\labelsep %
 \InlineClass{theoremheader}{##2 \qquad ##1\ %
@@ -122,11 +128,13 @@
 
 \gdef\th at changebreak{%\normalfont\slshape
   \def\@begintheorem##1##2{
+\LWR at forcenewpage% new
 \BlockClass{theorembody\LWR at thisthmstyle}% new
 \item[\hskip\labelsep
 \InlineClass{theoremheader}{##2\ ##1}\newline
 ]}%
 \def\@opargbegintheorem##1##2##3{%
+\LWR at forcenewpage% new
 \BlockClass{theorembody\LWR at thisthmstyle}% new
 \item[\hskip\labelsep
 \InlineClass{theoremheader}{ ##2\ ##1\ %
@@ -136,11 +144,13 @@
 
 \gdef\th at change{%\normalfont\slshape
   \def\@begintheorem##1##2{
+\LWR at forcenewpage% new
 \BlockClass{theorembody\LWR at thisthmstyle}% new
 \item[\hskip\labelsep
 \InlineClass{theoremheader}{##2\ ##1}
 ]}%
 \def\@opargbegintheorem##1##2##3{%
+\LWR at forcenewpage% new
 \BlockClass{theorembody\LWR at thisthmstyle}% new
 \item[\hskip\labelsep
 \InlineClass{theoremheader}{##2\ ##1\ (##3)}
@@ -149,11 +159,13 @@
 
 \gdef\th at margin{%\normalfont\slshape
   \def\@begintheorem##1##2{
+\LWR at forcenewpage% new
 \BlockClass{theorembody\LWR at thisthmstyle}% new
 \item[\hskip\labelsep
 \InlineClass{theoremheader}{##2 \qquad ##1}
 ]}%
 \def\@opargbegintheorem##1##2##3{%
+\LWR at forcenewpage% new
 \BlockClass{theorembody\LWR at thisthmstyle}% new
 \item[\hskip\labelsep
 \InlineClass{theoremheader}{##2 \qquad ##1\ (##3)}

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-threeparttable.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-threeparttable.sty	2017-04-16 22:17:59 UTC (rev 43856)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-threeparttable.sty	2017-04-16 22:18:18 UTC (rev 43857)
@@ -26,6 +26,7 @@
 
 \newenvironment*{tablenotes}[1][]
 {%
+\LWR at forcenewpage
 \BlockClass{tnotes}%
 \setlist[description]{format=\LWR at printtablenote}%
 \description%

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-ulem.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-ulem.sty	2017-04-16 22:17:59 UTC (rev 43856)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-ulem.sty	2017-04-16 22:18:18 UTC (rev 43857)
@@ -47,7 +47,7 @@
 \NewDocumentCommand{\ULthickness}{}{}
 \newlength{\ULdepth}
 \NewDocumentCommand{\markoverwith}{m}{}
-\NewDocumentCommand{\ULon}{+m}{\uline{#1}}
+\NewDocumentCommand{\ULon}{+m}{\uline{#1}\egroup}
 \NewDocumentCommand{\useunder}{m m m}{%
 \relax%
 \ifx\relax#3\relax\else % argumentative command

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-verse.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-verse.sty	2017-04-16 22:17:59 UTC (rev 43856)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-verse.sty	2017-04-16 22:18:18 UTC (rev 43857)
@@ -24,6 +24,7 @@
 \setlength{\vleftskip}{\HTMLvleftskip}
 \setlength{\leftmargini}{\HTMLleftmargini}
 }{}
+\LWR at forcenewpage
 \LWR at atbeginverbatim{verse}
 \unskip\vspace{-\baselineskip}
 }

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-wrapfig.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-wrapfig.sty	2017-04-16 22:17:59 UTC (rev 43856)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-wrapfig.sty	2017-04-16 22:18:18 UTC (rev 43857)
@@ -37,6 +37,7 @@
 \setlength{\LWR at wrapwidth}{#2}%
 \addtolength{\LWR at wrapwidth}{4em}%
 \uselengthunit{PT}%
+\LWR at forcenewpage
 \LWR at stoppars%
 \LWR at htmltag{div class="marginblock" id="autofloat-\arabic{LWR at thisfloat}"
 style="width:\rndprintlength{\LWR at wrapwidth} ; %

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp.sty	2017-04-16 22:17:59 UTC (rev 43856)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp.sty	2017-04-16 22:18:18 UTC (rev 43857)
@@ -17,7 +17,7 @@
 %% version 2005/12/01 or later.
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
 \ProvidesPackage{lwarp}
-    [2017/04/04 v0.27  Allows LaTeX to directly produce HTML5 output.]
+    [2017/04/15 v0.29  Allows LaTeX to directly produce HTML5 output.]
 
 
 
@@ -56,7 +56,6 @@
 \newbool{warpingprint}
 \newbool{warpingHTML}
 \newbool{mathjax}
-
 \newcommand{\warpprintonly}[1]{\ifbool{warpingprint}{#1}{}}
 \newcommand{\warpHTMLonly}[1]{\ifbool{warpingHTML}{#1}{}}
 
@@ -89,6 +88,8 @@
 
 \DeclareStringOption[\jobname]{BaseJobname}
 
+\DeclareStringOption[english]{lwarpmklang}
+
 \includecomment{warpprint}%
 \excludecomment{warpHTML}%
 \booltrue{warpingprint}%
@@ -154,6 +155,7 @@
 \LWR at loadafter{floatflt}
 \LWR at loadafter{ftnright}
 \LWR at loadafter{geometry}
+\LWR at loadafter{glossaries}
 \LWR at loadafter{hyperref}
 \LWR at loadafter{indentfirst}
 \LWR at loadafter{keyfloat}
@@ -191,6 +193,7 @@
 \LWR at loadafter{soul}
 \LWR at loadafter{subfig}
 \LWR at loadafter{tabularx}
+\LWR at loadafter{tabulary}
 \LWR at loadafter{textpos}
 \LWR at loadafter{theorem}
 \LWR at loadafter{threeparttable}
@@ -253,6 +256,8 @@
 left=2in,right=12in,%
 top=1in,bottom=1in,%
 ]{geometry}
+\@twosidefalse
+\@mparswitchfalse
 \end{warpHTML}
 
 \begin{warpall}
@@ -427,6 +432,8 @@
 \end{warpHTML}
 
 
+\begin{warpall}
+
 \newbool{LWR at tracinglwarp}
 \newcommand{\tracinglwarp}{\booltrue{LWR at tracinglwarp}}
 \newcommand{\LWR at traceinfo}[1]{%
@@ -437,7 +444,19 @@
 {}%
 }
 
+\newbool{HTMLDebugComments}
+\boolfalse{HTMLDebugComments}
 
+\newbool{FormatEPUB}
+\boolfalse{FormatEPUB}
+\newbool{FormatWordProcessor}
+\boolfalse{FormatWordProcessor}
+\newbool{HTMLMarkFloats}
+\booltrue{HTMLMarkFloats}
+
+\end{warpall}
+
+
 \begin{warpHTML}
 
 \let\LWR at origtextit\textit
@@ -635,7 +654,7 @@
 
 \providecommand*{\BaseJobname}{\jobname}
 
-\providecommand*{\HTMLFileName}{}
+\providecommand*{\HTMLfiveName}{}
 \providecommand*{\HomeHTMLFileName}{\BaseJobname}
 
 \newcommand*{\SetHTMLFileNumber}[1]{%
@@ -676,12 +695,12 @@
 {%
 \LWR at traceinfo{LWR at htmlsectionfilename C \LWR at tempone}%
 \ifthenelse{%
-\equal{\HTMLFileName}{} \AND \equal{\LWR at tempone}{Index} \OR \equal{\LWR at tempone}{index}%
+\equal{\HTMLfiveName}{} \AND \equal{\LWR at tempone}{Index} \OR \equal{\LWR at tempone}{index}%
 }%
 {%
 \LWR at traceinfo{prefixing the index name with an underscore.}%
 \_#1.html}%
-{\HTMLFileName#1.html}%
+{\HTMLfiveName#1.html}%
 }%
 \LWR at traceinfo{LWR at htmlsectionfilename Z}%
 }
@@ -747,7 +766,15 @@
 
 \begin{warpHTML}
 
+\newcommand{\LWR at forcenewpage}{%
+\LWR at stoppars\LWR at orignewpage\LWR at startpars%
+}
+\end{warpHTML}
 
+
+\begin{warpHTML}
+
+
 \newcommand*{\LWR at tagpart}{h2}
 \newcommand*{\LWR at tagpartend}{/h2}
 \newcommand*{\LWR at tagchapter}{h3}
@@ -812,16 +839,19 @@
 
 
 \newcommand*{\LWR at htmlopencomment}{%
-\begingroup\LWR at origttfamily\LWR at origtextless{}!{-}{-}\endgroup%
+{\LWR at origttfamily\LWR at origtextless{}!{-}{-}}%
 }
 
 \newcommand*{\LWR at htmlclosecomment}{%
-\begingroup\LWR at origttfamily{-}{-}\LWR at origtextgreater{}\endgroup%
+{\LWR at origttfamily{-}{-}\LWR at origtextgreater{}}%
 }
 
 \newcommand{\LWR at htmlcomment}[1]{%
 \LWR at htmlopencomment{}%
-\LWR at origtextrm{#1}%
+{%
+\LWR at origttfamily% break ligatures
+#1%
+}%
 \LWR at htmlclosecomment{}}
 \newcommand{\LWR at htmlblockcommentb}[1]
 {\LWR at stoppars\LWR at htmlcomment{#1}\LWR at startpars\endgroup}
@@ -838,13 +868,7 @@
 \LWR at startpars%
 }
 
-\NewDocumentCommand{\LWR at htmlblocktagcomment}{m +m}{%
-\LWR at stoppars%
-\LWR at htmltag{#1}\LWR at htmlcomment{#2}\LWR at orignewline%
-\LWR at startpars%
-}
 
-
 \NewDocumentCommand{\LWR at subhtmlelementclass}{m m o}{%
 \IfValueTF{#3}%
 {% option
@@ -864,7 +888,9 @@
 \newcommand*{\LWR at htmlelementclassend}[2]{%
 \LWR at stoppars%
 \LWR at htmltag{/#1}%
+\ifbool{HTMLDebugComments}{%
 \LWR at htmlcomment{End of #1 ``#2''}%
+}{}%
 \LWR at startpars%
 }
 
@@ -936,19 +962,19 @@
 \begin{warpHTML}
 
 \newcommand*{\LWR at printclosepart}
-    {\LWR at htmlcomment{Closing part}}
+    {\ifbool{HTMLDebugComments}{\LWR at htmlcomment{Closing part}}{}}
 \newcommand*{\LWR at printclosechapter}
-    {\LWR at htmlcomment{Closing chapter}}
+    {\ifbool{HTMLDebugComments}{\LWR at htmlcomment{Closing chapter}}{}}
 \newcommand*{\LWR at printclosesection}
-    {\LWR at htmlcomment{Closing section}}
+    {\ifbool{HTMLDebugComments}{\LWR at htmlcomment{Closing section}}{}}
 \newcommand*{\LWR at printclosesubsection}
-    {\LWR at htmlcomment{Closing subsection}}
+    {\ifbool{HTMLDebugComments}{\LWR at htmlcomment{Closing subsection}}{}}
 \newcommand*{\LWR at printclosesubsubsection}
-    {\LWR at htmlcomment{Closing subsubsection}}
+    {\ifbool{HTMLDebugComments}{\LWR at htmlcomment{Closing subsubsection}}{}}
 \newcommand*{\LWR at printcloseparagraph}
-    {\LWR at htmlcomment{Closing paragraph}}
+    {\ifbool{HTMLDebugComments}{\LWR at htmlcomment{Closing paragraph}}{}}
 \newcommand*{\LWR at printclosesubparagraph}
-    {\LWR at htmlcomment{Closing subparagraph}}
+    {\ifbool{HTMLDebugComments}{\LWR at htmlcomment{Closing subparagraph}}{}}
 
 \newcommand*{\LWR at printcloselistitem}
     {\LWR at htmltag{/li}}
@@ -1132,9 +1158,17 @@
 \end{warpprint}
 
 
-\begin{warpHTML}
+\begin{warpall}
 
+\newcommand{\theHTMLauthor}{\theauthor}
 
+\newcommand{\HTMLauthor}[1]{\renewcommand{\theHTMLauthor}{#1}}
+
+\end{warpall}
+
+\begin{warpall}
+
+
 \newcommand{\LWR at currentHTMLdescription}{}
 
 \newcommand{\NewHTMLdescription}[1]{%
@@ -1141,10 +1175,7 @@
 \renewcommand{\LWR at currentHTMLdescription}{#1}
 }
 
-\end{warpHTML}
-\begin{warpprint}
-\newcommand{\NewHTMLdescription}[1]{}
-\end{warpprint}
+\end{warpall}
 
 \begin{warpHTML}
 
@@ -1184,6 +1215,7 @@
 }
 \newcommand*{\LWR at printpendingfootnotes}{%
 \ifvoid\LWR at footnotes\else
+\LWR at forcenewpage
 \begin{BlockClass}{footnotes}
 \LWR at origmedskip
 \unvbox\LWR at footnotes
@@ -1191,6 +1223,11 @@
 \end{BlockClass}
 \fi
 }
+\newcommand*{\LWR at epubprintpendingfootnotes}{%
+\ifthenelse{\boolean{FormatEPUB}\OR\boolean{FormatWordProcessor}}%
+{\LWR at printpendingfootnotes}%
+{}%
+}
 
 \end{warpHTML}
 
@@ -1303,17 +1340,23 @@
 
 \LWR at printpendingfootnotes
 
+\ifbool{FormatEPUB}
+{}
+{
 \LWR at htmlelement{footer}
 
 \LWR at pagebottom
 
 \LWR at htmlelementend{footer}
+}
+\ifthenelse{\boolean{FormatEPUB}\OR\boolean{FormatWordProcessor}}
+{}
+{\ifnumcomp{\value{LWR at htmlfilenumber}}{>}{0}{\LWR at botnavigation}{}}
 
-\ifnumcomp{\value{LWR at htmlfilenumber}}{>}{0}{\LWR at botnavigation}{}
-
 \LWR at stoppars
 \LWR at htmltag{/body}\LWR at orignewline
 \LWR at htmltag{/html}\LWR at orignewline
+\LWR at orignewpage
 
 \addtocounter{LWR at htmlfilenumber}{1}%
 
@@ -1322,8 +1365,8 @@
 {\renewcommand*{\LWR at thisfilename}{\theLWR at htmlfilenumber}}
 
 \LWR at htmlblockcomment{%
-\LWR at origtexttt{|Start file|%
-\LWR at htmlsectionfilename{\LWR at thisfilename}|}%
+|Start file|%
+\LWR at htmlsectionfilename{\LWR at thisfilename}|%
 }
 
 \LWR at stoppars
@@ -1330,17 +1373,27 @@
 
 \LWR at filestart{ — #1}% there is an EMdash in front of the #1
 
-\LWR at topnavigation
+\ifthenelse{\boolean{FormatEPUB}\OR\boolean{FormatWordProcessor}}
+{}
+{\LWR at topnavigation}
 
+\ifthenelse{\boolean{FormatEPUB}\OR\boolean{FormatWordProcessor}}
+{}
+{
 \LWR at htmlelement{header}
 
 \LWR at pagetop
 
 \LWR at htmlelementend{header}
+}
 
-\ifcsvoid{thetitle}{}{\LWR at printthetitle}
+\ifthenelse{\boolean{FormatEPUB}\OR\boolean{FormatWordProcessor}}
+{}
+{\ifcsvoid{thetitle}{}{\LWR at printthetitle}}
 
-\LWR at sidetoc
+\ifthenelse{\boolean{FormatEPUB}\OR\boolean{FormatWordProcessor}}
+{}
+{\LWR at sidetoc}
 
 \LWR at htmlelementclass{section}{textbody}
 
@@ -1385,10 +1438,11 @@
 \LWR at traceinfo{LWR at section}%
 \LWR at stoppars%
 \global\boolfalse{LWR at minipagethispar}%
+\LWR at traceinfo{LWR at section: testing whether to start a new HTML file}%
+\IfBooleanTF{#1}{% starred
 \LWR at orignewpage%
 
-\LWR at traceinfo{LWR at section: testing about to start a new HTML file}%
-\IfBooleanTF{#1}{}{% not starred
+}{% not starred
 \ifthenelse{%
 \cnttest{\csuse{LWR at depth#4}}{<=}{\value{FileDepth}}%
 \AND%
@@ -1403,12 +1457,17 @@
 {\LWR at newhtmlfile{#3}}%
 {\LWR at newhtmlfile{#2}}%
 }% new file
-{}% not new file
+{% not new file
+\LWR at orignewpage%
+
+}% not new file
 }% not starred
 \LWR at traceinfo{LWR at section: about to LWR at setlatestname}%
 \IfValueTF{#2}{\LWR at setlatestname{#2}}{\LWR at setlatestname{#3}}%
 
+\ifbool{HTMLDebugComments}{%
 \LWR at htmlcomment{Opening #4 ``#3''{}}
+}{}
 
 \ifthenelse{%
 \cnttest{\csuse{LWR at depth#4}}{>=}{\LWR at depthparagraph}%
@@ -1478,6 +1537,7 @@
 {}
 {%
 \DeclareDocumentCommand{\part}{s o m}{%
+\LWR at epubprintpendingfootnotes%
 \LWR at stoppars%
 
 \LWR at startnewdepth{\LWR at depthpart}{\LWR at printclosepart}%
@@ -1491,6 +1551,7 @@
 {%
 \DeclareDocumentCommand{\chapter}{s o m}{%
 \LWR at traceinfo{chapter #3}%
+\LWR at epubprintpendingfootnotes%
 \LWR at stoppars%
 \LWR at startnewdepth{\LWR at depthchapter}{\LWR at printclosechapter}%
 
@@ -1501,6 +1562,7 @@
 }
 
 \DeclareDocumentCommand{\section}{s o m}{%
+\LWR at epubprintpendingfootnotes%
 \LWR at stoppars%
 
 \LWR at startnewdepth{\LWR at depthsection}{\LWR at printclosesection}%
@@ -1509,6 +1571,7 @@
 }
 
 \DeclareDocumentCommand{\subsection}{s o m}{%
+\LWR at epubprintpendingfootnotes%
 \LWR at stoppars%
 
 \LWR at startnewdepth{\LWR at depthsubsection}{\LWR at printclosesubsection}%
@@ -1517,6 +1580,7 @@
 }
 
 \DeclareDocumentCommand{\subsubsection}{s o m}{%
+\LWR at epubprintpendingfootnotes%
 \LWR at stoppars%
 
 \LWR at startnewdepth{\LWR at depthsubsubsection}%
@@ -1526,6 +1590,7 @@
 }
 
 \DeclareDocumentCommand{\paragraph}{s o m}{%
+\LWR at epubprintpendingfootnotes%
 \LWR at stoppars%
 
 \LWR at startnewdepth{\LWR at depthparagraph}{\LWR at printcloseparagraph}%
@@ -1534,6 +1599,7 @@
 }
 
 \DeclareDocumentCommand{\subparagraph}{s o m}{%
+\LWR at epubprintpendingfootnotes%
 \LWR at stoppars%
 
 \LWR at startnewdepth{\LWR at depthsubparagraph}{\LWR at printclosesubparagraph}%
@@ -1568,6 +1634,9 @@
 \LWR at htmltag{html lang="\MetaLanguage"{}}\LWR at orignewline
 \LWR at htmltag{head}\LWR at orignewline
 \LWR at htmltag{meta charset="UTF-8" /}\LWR at orignewline
+\ifcsempty{theHTMLauthor}{}{
+\LWR at htmltag{meta name="author" content="\theHTMLauthor" /}\LWR at orignewline
+}
 \LWR at htmltag{meta name="generator" content="LaTeX lwarp package" /}%
     \LWR at orignewline
 \ifdefempty{\LWR at currentHTMLdescription}{}{%
@@ -1609,10 +1678,14 @@
 
 \newcommand*{\LWR at LwarpStart}
 {%
+\ifbool{FormatWordProcessor}{%
+\setcounter{FileDepth}{-5}%
+\boolfalse{HTMLDebugComments}%
+}{}
 \edef\LWR at strresult{\HomeHTMLFileName}
 \edef\HomeHTMLFileName{\detokenize\expandafter{\LWR at strresult}}
-\edef\LWR at strresult{\HTMLFileName}
-\edef\HTMLFileName{\detokenize\expandafter{\LWR at strresult}}
+\edef\LWR at strresult{\HTMLfiveName}
+\edef\HTMLfiveName{\detokenize\expandafter{\LWR at strresult}}
 \LWR at origonecolumn%
 \LWR at origscriptsize%
 \LWR at origraggedright%
@@ -1692,7 +1765,11 @@
 
 \LWR at htmlelementend{footer}
 
+\ifthenelse{\boolean{FormatEPUB}\OR\boolean{FormatWordProcessor}}
+{}
+{
 \ifnumcomp{\value{LWR at htmlfilenumber}}{>}{0}{\LWR at botnavigation}{}
+}
 \LWR at stoppars% final stop of all paragraphs
 \LWR at htmltag{/body}\LWR at orignewline
 \LWR at htmltag{/html}\LWR at orignewline
@@ -1745,8 +1822,11 @@
 \end{warpall}
 \begin{warpHTML}
 \renewenvironment*{titlepage}
-    {\BlockClass{titlepage}\LWR at subminipage}
-    {\LWR at endsubminipage\endBlockClass}
+{
+\LWR at forcenewpage
+\BlockClass{titlepage}\LWR at subminipage
+}
+{\LWR at endsubminipage\endBlockClass}
 \renewenvironment*{titlingpage}
 {%
 \begin{titlepage}
@@ -2056,6 +2136,7 @@
 \providecommand*{\abstractname}{Abstract}
 \DeclareDocumentEnvironment{abstract}{}
 {
+\LWR at forcenewpage
 \BlockClass{abstract}
 \BlockClassSingle{abstracttitle}{\abstractname}
 }
@@ -2088,11 +2169,17 @@
 
 \begin{warpHTML}
 \renewenvironment*{quote}
-{\LWR at htmlblocktag{blockquote}}
+{
+\LWR at forcenewpage
+\LWR at htmlblocktag{blockquote}
+}
 {\LWR at htmlblocktag{/blockquote}}
 
 \renewenvironment*{quotation}
-{\LWR at htmlblocktag{blockquotation}}
+{
+\LWR at forcenewpage
+\LWR at htmlblocktag{blockquotation}
+}
 {\LWR at htmlblocktag{/blockquotation}}
 
 \end{warpHTML}
@@ -2111,7 +2198,10 @@
 \begin{warpHTML}
 
 \AfterEndPreamble{
-\AtBeginEnvironment{verbatim}{\LWR at atbeginverbatim{verbatim}\unskip\vspace*{-\baselineskip}}
+\AtBeginEnvironment{verbatim}{%
+\LWR at forcenewpage
+\LWR at atbeginverbatim{verbatim}\unskip\vspace*{-\baselineskip}%
+}
 \AfterEndEnvironment{verbatim}{\unskip\vspace*{-\baselineskip}\LWR at afterendverbatim}
 }
 
@@ -2159,6 +2249,7 @@
 \AfterEndPreamble{
 \let\LWR at origVerbatim\Verbatim
 \renewcommand*{\Verbatim}{%
+\LWR at forcenewpage
 \renewcommand*{\LWR at Verbatimclass}{fancyvrb}%
 \LWR at origVerbatim%
 }
@@ -2285,6 +2376,7 @@
 
 \AtBeginEnvironment{BVerbatim}
 {
+\LWR at forcenewpage
 \LWR at atbeginverbatim{bverbatim}
 
 }
@@ -2306,10 +2398,12 @@
 \begin{warpHTML}
 
 \renewcommand{\@begintheorem}[2]{%
+\LWR at forcenewpage
 \BlockClass{theoremcontents}
 \InlineClass{theoremlabel}{#1\ #2\ }
 }
 \renewcommand{\@opargbegintheorem}[3]{%
+\LWR at forcenewpage
 \BlockClass{theoremcontents}
 \InlineClass{theoremlabel}{#1\ #2\ (#3)\ }
 }
@@ -2650,6 +2744,10 @@
 \IfStrEq{\LWR at strresult}{l}{\LWR at parsenormalcolumn{l}}{}%
 \IfStrEq{\LWR at strresult}{c}{\LWR at parsenormalcolumn{c}}{}%
 \IfStrEq{\LWR at strresult}{r}{\LWR at parsenormalcolumn{r}}{}%
+\IfStrEq{\LWR at strresult}{L}{\LWR at parsenormalcolumn{l}}{}%
+\IfStrEq{\LWR at strresult}{C}{\LWR at parsenormalcolumn{c}}{}%
+\IfStrEq{\LWR at strresult}{R}{\LWR at parsenormalcolumn{r}}{}%
+\IfStrEq{\LWR at strresult}{J}{\LWR at parsenormalcolumn{l}}{}%
 \IfStrEq{\LWR at strresult}{S}{\LWR at parsenormalcolumn{r}}{}%
 \IfStrEq{\LWR at strresult}{\detokenize{@}}{\LWR at parseatcolumn}{}%
 \IfStrEq{\LWR at strresult}{!}{\LWR at parsebangcolumn}{}%
@@ -3000,6 +3098,7 @@
 \global\boolfalse{LWR at doingtbrule}%
 \boolfalse{LWR at exitingtabular}%
 \global\booltrue{LWR at intabularmetadata}%
+\LWR at forcenewpage
 \LWR at htmlblocktag{table}%
 \LWR at parsetablecols{#2}%
 \LWR at stoppars%
@@ -3117,7 +3216,7 @@
 
 \newcommand*{\LWR at startref}[1]
 {%
-\edef\LWR at lidref{\LWR at lateximagedepthref{#1}}
+\edef\LWR at lidref{\LWR at lateximagedepthref{#1}}%
 \LWR at traceinfo{LWR at startref A: !#1!}%
 \LWR at htmltag{a href="%
 \LWR at traceinfo{LWR at startref B}%
@@ -3127,7 +3226,7 @@
 \LWR at traceinfo{LWR at startref D: !#1!}%
 \ifthenelse{\equal{\LWR at lidref}{??}}%
 {%
-\LWR at traceinfo{LWR at startref D0: ??}
+\LWR at traceinfo{LWR at startref D0: ??}%
 ??}%
 {%
 \LWR at traceinfo{LWR at startref D1: \LWR at lidref}%
@@ -3243,6 +3342,11 @@
 \begin{warpHTML}
 
 \NewDocumentCommand{\LWR at floatbegin}{m o}{%
+\ifthenelse{\boolean{FormatWordProcessor}\AND\boolean{HTMLMarkFloats}}{%
+
+=== #1 begin
+
+}{}%
 \LWR at stoppars
 \addtocounter{LWR at thisfloat}{1}%
 \booltrue{LWR at freezethisfloat}%
@@ -3261,6 +3365,11 @@
 \endgroup%
 \boolfalse{LWR at freezethisfloat}%
 \LWR at startpars%
+\ifthenelse{\boolean{FormatWordProcessor}\AND\boolean{HTMLMarkFloats}}{%
+
+=== end
+
+}{}%
 }
 \let\end at float\LWR at floatend
 \let\end at dblfloat\LWR at floatend
@@ -3289,7 +3398,7 @@
 \setcounter{LWR at nextautofloat}{#2}%
 }
 
-\newcounter{LWR at latestautopage}% updated each new HTML file
+\newcounter{LWR at latestautopage}
 \setcounter{LWR at latestautopage}{1}
 
 \let\LWR at origcaption@begin\caption at begin
@@ -3403,20 +3512,27 @@
 \let\LWR at origtableofcontents\tableofcontents
 \let\LWR at origlistoffigures\listoffigures
 \let\LWR at origlistoftables\listoftables
+
 \renewcommand*{\tableofcontents}{%
+\ifbool{FormatWordProcessor}{}{
 \LWR at copyfile{\jobname.toc}{\jobname.sidetoc}%
 \LWR at printpendingfootnotes
-\LWR at origtableofcontents%
+\LWR at origtableofcontents
 }
+}
 \renewcommand*{\listoffigures}{
+\ifbool{FormatWordProcessor}{}{
 \LWR at printpendingfootnotes
 \LWR at origlistoffigures
 }
+}
 
 \renewcommand*{\listoftables}{
+\ifbool{FormatWordProcessor}{}{
 \LWR at printpendingfootnotes
 \LWR at origlistoftables
 }
+}
 
 
 \NewDocumentCommand{\listof}{m +m}{%
@@ -3442,6 +3558,7 @@
 \begin{warpHTML}
 
 \newcommand*{\LWR at sidetoc}{
+\LWR at forcenewpage
 \LWR at stoppars
 
 \LWR at htmlelementclass{nav}{sidetoc}
@@ -3513,8 +3630,15 @@
 
 
 
+
 \begin{warpHTML}
 
+\newcounter{LWR at autoindex}
+\setcounter{LWR at autoindex}{0}
+
+\newcounter{LWR at autoglossary}
+\setcounter{LWR at autoglossary}{0}
+
 \@ifundefined{chapter}
 {\newcommand*{\LWR at indexsection}{\section{\indexname}}}
 {\newcommand*{\LWR at indexsection}{\chapter{\indexname}}}
@@ -3549,11 +3673,24 @@
 \InlineClass{indexsubsubitem}{}
 }
 
+\def\@wrindex#1{%
+\addtocounter{LWR at autoindex}{1}%
+\LWR at newlabel{LWRindex-\theLWR at autoindex}%
+\protected at write\@indexfile{}%
+{\string\indexentry{#1}{\theLWR at autoindex}}%
+\endgroup
+\@esphack}
+
+\def\@wrglossary#1{%
+\addtocounter{LWR at autoglossary}{1}%
+\LWR at newlabel{LWRglossary-\theLWR at autoglossary}%
+\protected at write\@glossaryfile{}%
+{\string\glossaryentry{#1}{\theLWR at autoglossary}}%
+\endgroup
+\@esphack}
+
 \newcommand*{\hyperindexref}[1]{
-\LWR at htmltag{a href="%
-\LWR at htmlrefsectionfilename{autopage-#1}\#autosec-#1"{}}%
-\LWR at origref{autopage-#1}\enskip\LWR at nameref{autopage-#1}%
-\LWR at htmltag{/a}%
+\nameref{LWRindex-#1}%
 }
 
 \end{warpHTML}
@@ -3577,10 +3714,12 @@
 
 
 \let\LWR at origdollar=$
-\let\secondorigdollar=$% balance for editor syntax highlighting
+\let\LWR at secondorigdollar=$% balance for editor syntax highlighting
 
 \let\LWR at origopenparen\(
 \let\LWR at origcloseparen\)
+\let\LWR at origopenbracket\[
+\let\LWR at origclosebracket\]
 
 \begingroup
 \catcode`\$=\active%
@@ -4068,7 +4207,9 @@
 }%
 \LWR at ensuredoingapar%
 \LWR at htmltag{/span}%
+\ifbool{HTMLDebugComments}{%
 \LWR at htmlcomment{End of lateximage}%
+}{}%
 \addtocounter{LWR at lateximagedepth}{-1}%
 }% end of outer-most lateximage
 \LWR at traceinfo{lateximage: done}
@@ -4082,15 +4223,24 @@
 \begin{warpHTML}
 
 \renewenvironment*{center}
-{\BlockClass{center}}
+{
+\LWR at forcenewpage
+\BlockClass{center}
+}
 {\endBlockClass}
 
 \renewenvironment*{flushright}
-{\BlockClass{flushright}}
+{
+\LWR at forcenewpage
+\BlockClass{flushright}
+}
 {\endBlockClass}
 
 \renewenvironment*{flushleft}
-{\BlockClass{flushleft}}
+{
+\LWR at forcenewpage
+\BlockClass{flushleft}
+}
 {\endBlockClass}
 
 \end{warpHTML}
@@ -4217,8 +4367,7 @@
 \newcommand*{\LWR at imageextension}{}
 \newcommand*{\LWR at expgraphicsfilename}{}
 
-
-\newcommand*{\LWR at includegraphicsb}[2][]
+\NewDocumentCommand{\LWR at includegraphicsb}{s o o m}
 {%
 \LWR at origtilde \LWR at orignewline%
 \ifthenelse{\cnttest{\value{LWR at minipagedepth}}{=}{0}}{%
@@ -4230,7 +4379,7 @@
 \setlength{\textheight}{9in}%
 }%
 }{}%
-\edef\LWR at expgraphicsfilename{#2}
+\edef\LWR at expgraphicsfilename{#4}
 \renewcommand*{\LWR at imageextension}{}%
 \IfFileExists{\detokenize\expandafter\thisgraphicspath\LWR at expgraphicsfilename.jpg}%
 {\renewcommand*{\LWR at imageextension}{.jpg}}{}%
@@ -4266,7 +4415,11 @@
 \renewcommand*{\LWR at igxscale}{1}%
 \renewcommand*{\LWR at igyscale}{1}%
 \renewcommand*{\LWR at igclass}{inlineimage}%
-\setkeys{igraph}{#1}%
+\IfValueTF{#3}{}{%
+\IfValueTF{#2}%
+{\setkeys{igraph}{#2}}%
+{\setkeys{igraph}{}}%
+}%
 \href{\thisgraphicspath\LWR at strresult\LWR at imageextension}%
 {% start of href
 \LWR at htmltag{% start of image tags
@@ -4388,7 +4541,6 @@
 
 
 
-
 \begin{warpHTML}
 
 
@@ -4503,6 +4655,7 @@
 \IfValueTF{#2}{\setlength{\LWR at minipageheight}{#2}}{}%
 \LWR at stoppars%
 \LWR at traceinfo{minipage: creating div class}%
+\LWR at orignewpage%
 \LWR at htmltag{div class="minipage" style="%
 \ifthenelse{\equal{#1}{t}}{vertical-align: bottom ; }{}%
 \ifthenelse{\equal{#1}{c}}{vertical-align: middle ; }{}%
@@ -4582,7 +4735,7 @@
 
 \renewcommand{\texttt}[1]{\LWR at htmlspan{kbd}{#1}}
 
-\renewcommand{\textup}[1]{\LWR at htmlspan{textup}{#1}}
+\renewcommand{\textup}[1]{\InlineClass{textup}{#1}}
 
 \renewcommand{\textit}[1]{\LWR at htmlspan{i}{#1}}
 
@@ -4677,6 +4830,7 @@
 \newcommand*{\LWR at newlinebr}{\unskip\LWR at htmltag{br /}\LWR at orignewline}%
 \let\newline\LWR at newlinebr
 
+\let\LWR at origendofline\\
 \NewDocumentCommand{\LWR at endofline}{s o}
 {%
 \newline%
@@ -4859,7 +5013,7 @@
 
 
 \providecommand*{\HomeHTMLFileName}{\BaseJobname}
-\providecommand*{\HTMLFileName}{}
+\providecommand*{\HTMLfiveName}{}
 \providecommand*{\UseLatexmk}{false}
 
 \begin{warpprint}
@@ -4883,8 +5037,9 @@
 \immediate\write\LWR at file{%
 homehtmlfilename = "\HomeHTMLFileName"%
 }
-\immediate\write\LWR at file{htmlfilename = "\HTMLFileName"}
+\immediate\write\LWR at file{htmlfilename = "\HTMLfiveName"}
 \immediate\write\LWR at file{uselatexmk = "\UseLatexmk"}
+\immediate\write\LWR at file{language = "\LWR at lwarpmklang"}
 \immediate\closeout\LWR at file
 \end{warpprint}
 



More information about the tex-live-commits mailing list