summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/lwarp/lwarp.dtx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-03-02 22:02:43 +0000
committerKarl Berry <karl@freefriends.org>2017-03-02 22:02:43 +0000
commite4e5bf0f152ea04be229a2747f8b3c2edc4407e7 (patch)
tree9c5cd61daa005af44bd3f8615574121ac434b315 /Master/texmf-dist/source/latex/lwarp/lwarp.dtx
parent7282f0820d643e7b73cfbc1c46593f1099dd62a9 (diff)
lwarp (2mar17)
git-svn-id: svn://tug.org/texlive/trunk@43383 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/lwarp/lwarp.dtx')
-rw-r--r--Master/texmf-dist/source/latex/lwarp/lwarp.dtx1493
1 files changed, 1207 insertions, 286 deletions
diff --git a/Master/texmf-dist/source/latex/lwarp/lwarp.dtx b/Master/texmf-dist/source/latex/lwarp/lwarp.dtx
index e2656f8a077..8ee0d889517 100644
--- a/Master/texmf-dist/source/latex/lwarp/lwarp.dtx
+++ b/Master/texmf-dist/source/latex/lwarp/lwarp.dtx
@@ -1,7 +1,7 @@
%
% \iffalse meta-comment
%
-% Copyright 2016 Brian Dunn
+% 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
@@ -16,7 +16,7 @@
% \iffalse
%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<package>\ProvidesPackage{lwarp}
-%<package> [2017/02/23 v0.21 Allows LaTeX to directly produce HTML5 output.]
+%<package> [2017/03/02 v0.22 Allows LaTeX to directly produce HTML5 output.]
%
%<*driver>
\documentclass{ltxdoc}
@@ -240,6 +240,23 @@ 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.
}
+\newcommand{\limitspageref}{\pkg{cleveref} and \pkg{varioref} are supported,
+but printed page numbers do not map to \acro{HTML}.
+See \cref{sec:successfulcommands} to redefine the message which is printed
+for page number references.
+}
+
+\newcommand{\limitsabstract}{%
+\pkg{abstract} is supported.
+If using the \texttt{number} option with file splits,
+be sure to place the table of contents before the abstract.
+The number option causes a section break which
+may cause a file split, which would put a table of contents out
+of the home page if it is after the abstract.
+}
+
+
+
\newcommand{\limitstext}{\cs{textbf}, etc.\ are supported,
but \cs{bfseries}, etc.\ are not yet supported.}
@@ -455,7 +472,7 @@ Color definitions, models, and mixing are fully supported
\margintag{support}
without any changes required.
-Colored tables are ignored. Use \acro{CSS} to style tables.
+Colored tables are ignored so far. Use \acro{CSS} to style tables.
\margintag{tables}
\cs{textcolor}, \cs{colorbox}, and \cs{fcolorbox} are supported.
@@ -474,6 +491,14 @@ Use \acro{CSS} or \cs{textcolor} where possible.
\item \texttt{*} in a column specification is not used (so far).
Repeat the column type the correct number of times.
+\item Only one each of \texttt{@}, \texttt{!}, \texttt{>}, and \texttt{<}
+ may be used at each column, and they are used in that order.
+
+\item \cs{newcolumntype} is ignored; unknown column types are set to \texttt{l}.
+
+\item \pkg{tabularx} ignores the width, but \texttt{X} columns do produce paragraph
+ columns or multicolumns.
+
\item Multirow and multicolumn cannot be used at the same time.
\watchout[\cs{multirow} \& \cs{multicolumn}]
(No rectangular holes wider than one column or taller than one row.)
@@ -694,8 +719,16 @@ changed to a dash. The following may be used to restore it to a colon: \\
}
\newcommand{\limitsnewtxmath}{%
-\pkg{newtxmath} must be loaded after \pkg{lwarp}.
-\watchout[loading]
+The proper load order is:
+\watchout[loading sequence]
+\begin{enumerate}
+\item \dots
+\item \texttt{\cs{usepackage}\{lwarp\}}
+\item \dots
+\item \texttt{\cs{usepackage}\{amsthm\}}
+\item \texttt{\cs{usepackage}\{newtxmath\}}
+\item \dots
+\end{enumerate}
}
\newcommand{\limitsenumitem}{%
@@ -705,6 +738,19 @@ Many of the spacing options are rendered irrelevant by \cmds{pdftotext} and
\acro{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
+\pkg{enumerate} is simulated by \pkg{enumitem} using
+the functionality of the \texttt{shortlabels} option.
+
+A problem may occur during print output if \pkg{enumitem} is loaded,
+either manually or by some other package such as \pkg{siunitx}.
+If these are used, \pkg{enumerate} will conflict with \pkg{enumitem}
+during print output.
+}
+
\newcommand{\osportabilityusage}{%
\pkg{lwarp} tries to detect which operating system is being used.
@@ -741,7 +787,7 @@ operating-system path separator used by \pkg{lwarp}.
%<*package>
% \fi
%
-% \CheckSum{8282}
+% \CheckSum{8578}
%
% \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
@@ -800,6 +846,7 @@ operating-system path separator used by \pkg{lwarp}.
% \changes{v0.20}{2017/01/03}{Moved sidebar and example code to test suite.}
% \changes{v0.20}{2017/01/25}{\pkg{caption} and \pkg{subcaption} supported.}
% \changes{v0.21}{2017/02/23}{\ 2017/02/23}
+% \changes{v0.22}{2017/03/02}{\ 2017/03/02}
@@ -828,7 +875,7 @@ operating-system path separator used by \pkg{lwarp}.
%
% \bigskip
%
-% {\small\copyright{} 2016} Brian Dunn\\ \small \texttt{bd@BDTechConcepts.com}
+% {\small\copyright{} 2016--2017} Brian Dunn\\ \small \texttt{bd@BDTechConcepts.com}
%
% \bigskip
%
@@ -836,7 +883,7 @@ operating-system path separator used by \pkg{lwarp}.
% ^^A % \title{The \pkg{lwarp} package\thanks{This document
% ^^A % corresponds to \pkg{lwarp}~\fileversion,
% ^^A % dated \filedate.}}
-% ^^A % \author{{\small\copyright{} 2016} Brian Dunn\\ \small \texttt{bd@BDTechConcepts.com}}
+% ^^A % \author{{\small\copyright{} 2016--2017} Brian Dunn\\ \small \texttt{bd@BDTechConcepts.com}}
% ^^A % \published{}
% ^^A % \subtitle{\textup{\LaTeX{} to HTML5}}
% ^^A %
@@ -929,6 +976,13 @@ operating-system path separator used by \pkg{lwarp}.
% For a detailed list of changes, see the Change History on page \pageref{sec:changehistory}.
%
% \begin{description}
+% \item[v0.22:] \
+% \begin{itemize}
+% \item Support has been added for tabular column types |D|, |!|, and |X|.
+% Unknown column types are converted to |l|.
+% \item Additional packages are supported, including \pkg{abstract},
+% \pkg{dcolumn}, \pkg{tabularx}, and \pkg{varioref}.
+% \end{itemize}
% \item[v0.21:] \
% \begin{itemize}
% \item Documentation for installing on Windows has been updated and improved.
@@ -1051,14 +1105,9 @@ operating-system path separator used by \pkg{lwarp}.
% 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
-% support).\footnote{Aside --- The author, being a programmer, believes in the movement towards
-% ``logical punctuation''. (Look it up.)
-%
-% Aside to the aside --- The author also believes that space should be on
-% either side of an em-dash, employing the symbol as a separator rather than something looking
-% like a chemical \textbf{bond---as} shown here, but is willing to abide by
-% Chicago style when necessary.}
-% Further, \acro{SVG} images allow math to be presented with
+% support).
+%
+% Furthermore, \acro{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
@@ -1101,24 +1150,22 @@ operating-system path separator used by \pkg{lwarp}.
% page \pageref{tab:supported}.)
%
%
+%
% \subsection{Supported packages and features}
+%
% \changes{v0.15}{2016/04/05}{Docs: Moved the supported functions table to the introduction.}
-%
-% \Cref{tab:supported} lists the various \LaTeX{} packages and macros which may be used.
+%
+% Supported classes include \pkg{book}, \pkg{report}, and \pkg{article}.
+% \pkg{memoir} is planned, but in the meantime many of the packages
+% used by \pkg{memoir} are already supported.
+%
+%
+% \Cref{tab:supported} lists some of the various \LaTeX{} features which may be used.
% \emph{Supported} means that the package or macro may be used as-is,
% perhaps with minor limitations.
% \emph{Emulated} means that the original package or macro is not used, but similar
% functionality is provided in a way which is intended to be compatible with the
% user's \LaTeX{} code.
-% \emph{Ignored} means that the package is not used, but nullified user-level macros
-% and related counters, lengths, etc.\ are provided for source-level compatibility.
-%
-% Any package listed in \cref{tab:supported} 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.
-%
-% \clearpage
%
% \renewcommand{\arraystretch}{1.5}
%
@@ -1140,30 +1187,21 @@ operating-system path separator used by \pkg{lwarp}.
% Adds \cmds{filedepth} for splitting the \acro{HTML} output.
% Files may be numbered sequentially or named according to section name.
% Common short words and punctuation is removed from the filenames. \\
-% \pkg{titlesec} & Ignored. \\
% Table of Contents, Figures, Tables: & Supported, with hyperlinks. \\
% \cs{maketitle}, \env{titlepage}, \pkg{titling}: & Supported, with optional
% \pkg{titling}-based commands for published and subtitle. \\
-% \pkg{titletoc} & Ignored. \\
-% \pkg{tocloft} & Ignored, with support for \cs{newlistof} and \cs{ctfchapterprecis}.\\
-% \pkg{abstract}: & Supported \\
+% \env{abstract}: & Supported \\
% \midrule
% Cross-references: & Emulated, with hyperlinks. \\
-% \pkg{cleverref}: & Supported, including ranges and lists, with hyperlinks. \\
-% \pkg{nameref}: & Emulated \\
% \pkg{hyperref}: & Emulated.
% \acro{HTML} hyperlinks are generated for \acro{TOC}, \acro{LOF}, \acro{LOT},
% \cs{nameref}, \cs{ref},
% the \pkg{cleveref} commands, and index entries.\\
-% \pkg{bookmark}: & Emulated. \\
% \midrule
% Footnotes: & Supported, emulated as pagenotes per \acro{HTML} page. \\
-% \pkg{pagenote}: & Supported. \\
% Indexing: & \cmds{texindy} is used, with hyperlinks. \\
% Bibliography: & Supported, without hyperlinks so far. \\
% \midrule
-% \pkg{babel}: & Supported. \\
-% \midrule
% Math: & Supported. Converted to \acro{SVG} images with \acro{HTML} \cmds{ALT} tags containing the
% \LaTeX{} source for the math expression.
% MathJax supported as an alternative.
@@ -1183,6 +1221,7 @@ operating-system path separator used by \pkg{lwarp}.
% \cs{multirow} and \cs{multicolumn} are available, but cannot
% be used at the same time.
% Nested tables are not supported. \\
+% \pkg{array}: & Supported inside math environments, emulated elsewhere. \\
% \pkg{multirow}: & Emulated. \\
% \pkg{longtable}: & Emulated. Converted to a tabular. Captions supported.
% Extra headings and \cs{kill} lines must be enclosed in
@@ -1195,13 +1234,6 @@ operating-system path separator used by \pkg{lwarp}.
% \cmidrule{2-2}
% \pkg{threeparttable}: & Emulated \\
% \midrule
-% \pkg{geometry}: & Ignored. \\
-% \pkg{titleps}: & Used by \pkg{lwarp}, but emulated for the user. \\
-% \pkg{fancyhdr}: & Ignored. \\
-% \pkg{extramarks}: & Ignored. \\
-% \pkg{afterpage}, \pkg{draftwatermark}, \pkg{eso-pic},
-% \pkg{everypage}, \pkg{wallpaper}: & Ignored. \\
-% \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}.
@@ -1215,16 +1247,11 @@ operating-system path separator used by \pkg{lwarp}.
% \midrule
% Environments: & Standard \LaTeX{} environments are supported. \\
% \pkg{theorem}: & Supported, with added \acro{CSS} tags. \\
-% \pkg{epigraph}: & Emulated \\
-% \pkg{csquotes}: & Supported \\
-% \pkg{verse} and \pkg{memoir}'s verse-related macros & Supported \\
% \pkg{picture} and \pkg{tikz}: & Converted to an \acro{SVG} image. \\
% \env{minipage}: & Supported with some \acro{HTML}5-imposed limitations.
% Nested minipages are supported.
% Footnotes appear at the bottom of the \acro{HTML} page. \\
% \pkg{fancyvrb}: & Supported except for verbatim footnotes. \\
-% \pkg{alltt}, \pkg{listings}: & Supported \\
-% \pkg{algorithmicx}: & Supported \\
% \pkg{mdframed}: & Supported \\
% \pkg{multicol}: & Emulated, with \acro{CSS}3.
% Converted to up to three columns with an optional heading,
@@ -1245,11 +1272,6 @@ operating-system path separator used by \pkg{lwarp}.
% \acro{HTML} output for thin-unbreakable, unbreakable,
% \cs{enskip}, \cs{quad}, \cs{qquad}, \cs{hspace}. \\
% Rules: & \cs{rule} with width, height, raise, text color. \\
-% \pkg{placeins}, \pkg{setspace}, \pkg{needspace}: & Ignored. \\
-% \pkg{textpos}: & Emulated. \\
-% \pkg{nowidow}: & Ignored. \\
-% \pkg{microtype}, \pkg{letterspace}: & Ignored.
-% \pkg{microtype} is used to disable ligatures. \\
% \acro{HTML} reserved characters: & \cs{\&}, \cs{textless}, and
% \cs{textgreater} are converted to \acro{HTML} entities. \\
% \midrule
@@ -1263,18 +1285,46 @@ operating-system path separator used by \pkg{lwarp}.
% and \fcolorbox{red}{NavajoWhite}{\cs{fcolorbox}}.
% \cs{pagecolor} is not supported. \\
% \midrule
-% \pkg{CJKutf8}: & Supported \\
-% \midrule
% Where: & \\
% \textbf{Supported:} & The existing \LaTeX{} package is used. \\
% \textbf{Emulated:} & The \LaTeX{} package is not used, but some/all of its
% functions are emulated. Null functions, lengths, and counters are provided
% for source compatibility. \\
-% \textbf{Ignored:} & The \LaTeX{} package is not used, but null functions
-% are provided for source compatibility. \\
% \bottomrule
% \end{longtable}
%
+%
+% Supported packages include everything listed in the table of contents,
+% plus each of the following in \cref{tab:additionalsupported},
+% and certainly others as well.
+% Not all have been thoroughly tested.
+% Many are simply nullfied during \acro{HTML} output.
+% Others are not affected by the output mode and thus work as-is.
+%
+%
+% \begin{table}[bp]
+% \caption{Additional supported packages}
+% \label{tab:additionalsupported}
+% \sffamily
+% babel, bm,
+% calc, cleveref, csquotes,
+% enumitem,
+% fancyvrb, fileerr,
+% newtxmath,
+% siunitx, somedefs,
+% theorem, tikz, trace,
+% varioref,
+% xspace
+% \end{table}
+%
+%
+% 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.
+%
+%
+%
%
% \clearpage
%
@@ -2801,6 +2851,15 @@ operating-system path separator used by \pkg{lwarp}.
% for a smooth conversion to both \acro{HTML} and print-formatted outputs:
%
% \begin{description}
+%
+% \item [Page references:] The printed page does not translate to the \acro{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
+% object. Ex: ``Sec.~\textcolor{red}{1.23}
+% on page (see sec.~\textcolor{red}{1.23})''.
+% \cs{pagerefPageFor} may be redefined to ``page for '', empty, etc.
+%
% \item [\cs{bfseries}, etc:] Use \cs{textbf} instead.
% \item [\cs{centering}, \cs{raggedright}, \cs{raggedleft}:] ~
%
@@ -2984,12 +3043,6 @@ operating-system path separator used by \pkg{lwarp}.
%
% \limitstext
%
-%
-% \subsubsection{Verse and Memoir packages}
-%
-% \limitsverse
-%
-%
% \subsubsection{Math}
% \label{sec:limitsmath}
%
@@ -3050,6 +3103,23 @@ operating-system path separator used by \pkg{lwarp}.
% \limitsfloatrow
%
%
+% \subsubsection{\pkg{abstract} package}
+%
+% \limitsabstract
+%
+%
+% \subsubsection{\pkg{cleveref} and \pkg{varioref} packages}
+%
+% \changes{v0.22}{2017/03/01}{\pkg{varioref}: Supported.}
+%
+% \limitspageref
+%
+%
+% \subsubsection{\pkg{verse} and \pkg{memoir}}
+%
+% \limitsverse
+%
+%
% \subsubsection{\pkg{siunitx} package}
%
% \DescribePackage{siunitx}
@@ -3084,6 +3154,11 @@ operating-system path separator used by \pkg{lwarp}.
% \limitsenumitem
%
%
+% \subsubsection{\pkg{enumerate} package}
+%
+% \DescribePackage{enumerate}
+% \limitsenumerate
+%
%
%
% \section{Expanding the code base}
@@ -3107,13 +3182,13 @@ operating-system path separator used by \pkg{lwarp}.
% \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 the users to create their own
+% This modular system allows users to create their own
% versions of packages for \pkg{lwarp} to use for \acro{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\
% can see it, then the user's new package will be seen by any documents
-% using \pkg{lwarp}.
+% using \pkg{lwarp}. (Remember |mktexlsr| or |texhash|.)
%
% An |lwarp-<packagename>.sty| package is only used during \acro{HTML}
% generation. Its purpose is to pretend to be the original package,
@@ -3123,19 +3198,24 @@ operating-system path separator used by \pkg{lwarp}.
% while passing the raw text on to be typeset. See the pre-existing
% |lwarp-| packages for examples.
%
-% Note that anything the user might expect of the original package
+% Anything the user might expect of the original package
% must be replaced or emulated by the new |lwarp-| package, including
% package options, user-adjustable counters, lengths, and booleans, and
% conditional behaviors.
+% 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''
+% macros need to be nullified or emulated.
%
% Each |lwarp-| package should first call either \cs{LWR@ProvidesPackageDrop}
-% or \cs{LWR@ProvidesPackagePass}. If dropped, the original print-version
+% or \cs{LWR@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}.
-% If passed, the original package is loaded first, with the supplied options, then
+% If |Pass|ed, the original package is loaded first, with the supplied options, then
% the |lwarp-| version continues loading as well. Use this when \acro{HTML}
% output only requires some modifications of the original package.
-% For a case where the original package is usable as-is, there is no
+% For a case where the original package is usable without changes, there is no
% need to create a |lwarp-| version.
%
%
@@ -3151,8 +3231,8 @@ operating-system path separator used by \pkg{lwarp}.
% \subsection{Using the \protect\texttt{lwarp.sty} package}
%
% Also see: \\
-% \Cref{sec:successfulcommands}: \nameref{sec:successfulcommands} \\
% \Cref{sec:printcommands}: \nameref{sec:printcommands} \\
+% \Cref{sec:successfulcommands}: \nameref{sec:successfulcommands} \\
% \Cref{sec:limitations}: \nameref{sec:limitations}
%
% \changes{v0.14}{2016/03/26}{Docs: Troubleshooting cross-references.}
@@ -3678,11 +3758,11 @@ operating-system path separator used by \pkg{lwarp}.
%
%
-% \begin{macro}{\LWR@noloadbefore} \marg{packagename} \quad
-% Error if loaded before \pkg{lwarp}.
+% \begin{macro}{\LWR@loadafter} \marg{packagename} \quad
+% Error if this package was loaded before \pkg{lwarp}.
%
% \begin{macrocode}
-\newcommand*{\LWR@noloadbefore}[1]{%
+\newcommand*{\LWR@loadafter}[1]{%
\@ifpackageloaded{#1}
{
\PackageError{lwarp}
@@ -3697,11 +3777,11 @@ after lwarp.}
% \end{macro}
-% \begin{macro}{\LWR@noloadafter} \marg{packagename} \quad
-% Error if loaded after \pkg{lwarp}.
+% \begin{macro}{\LWR@loadbefore} \marg{packagename} \quad
+% Error if this package is after \pkg{lwarp}.
%
% \begin{macrocode}
-\newcommand*{\LWR@noloadafter}[1]{%
+\newcommand*{\LWR@loadbefore}[1]{%
\PackageError{lwarp}
{Package #1 must be loaded before lwarp}
{Move \detokenize{\usepackage}{#1} before \detokenize{\usepackage}{lwarp}.}
@@ -3715,50 +3795,68 @@ after lwarp.}
%
% The following packages must be loaded after \pkg{lwarp}:
% \begin{macrocode}
-\LWR@noloadbefore{afterpage}
-\LWR@noloadbefore{algorithmicx}
-\LWR@noloadbefore{alltt}
-\LWR@noloadbefore{bookmark}
-\LWR@noloadbefore{booktabs}
-\LWR@noloadbefore{draftwatermark}
-\LWR@noloadbefore{epigraph}
-\LWR@noloadbefore{eso-pic}
-\LWR@noloadbefore{everypage}
-\LWR@noloadbefore{extramarks}
-\LWR@noloadbefore{fancyhdr}
-\LWR@noloadbefore{floatrow}
-\LWR@noloadbefore{float}
-\LWR@noloadbefore{geometry}
-\LWR@noloadbefore{graphics}
-\LWR@noloadbefore{graphicx}
-\LWR@noloadbefore{hyperref}
-\LWR@noloadbefore{keyfloat}
-\LWR@noloadbefore{letterspace}
-\LWR@noloadbefore{listings}
-\LWR@noloadbefore{longtable}
-\LWR@noloadbefore{ltcaption}
-\LWR@noloadbefore{mdframed}
-\LWR@noloadbefore{microtype}
-%\LWR@noloadbefore{multicol}% loaded by ltxdoc
-\LWR@noloadbefore{multirow}
-\LWR@noloadbefore{needspace}
-\LWR@noloadbefore{nowidow}
-\LWR@noloadbefore{pagenote}
-\LWR@noloadbefore{placeins}
-\LWR@noloadbefore{ragged2e}
-\LWR@noloadbefore{rotating}
-\LWR@noloadbefore{setspace}
-\LWR@noloadbefore{textpos}
-\LWR@noloadbefore{threeparttable}
-\LWR@noloadbefore{titleps}
-\LWR@noloadbefore{titlesec}
-\LWR@noloadbefore{titletoc}
-\LWR@noloadbefore{tocloft}
-\LWR@noloadbefore{trivfloat}
-\LWR@noloadbefore{wallpaper}
-\LWR@noloadbefore{wrapfig}
-\LWR@noloadbefore{xcolor}
-\LWR@noloadbefore{xfrac}
+\LWR@loadafter{abstract}
+\LWR@loadafter{afterpage}
+\LWR@loadafter{algorithmicx}
+\LWR@loadafter{alltt}
+\LWR@loadafter{bookmark}
+\LWR@loadafter{booktabs}
+\LWR@loadafter{changepage}
+\LWR@loadafter{dcolumn}
+\LWR@loadafter{draftwatermark}
+\LWR@loadafter{enumerate}
+\LWR@loadafter{epigraph}
+\LWR@loadafter{eso-pic}
+\LWR@loadafter{everypage}
+\LWR@loadafter{extramarks}
+\LWR@loadafter{fancyhdr}
+\LWR@loadafter{floatrow}
+\LWR@loadafter{float}
+\LWR@loadafter{ftnright}
+\LWR@loadafter{geometry}
+\LWR@loadafter{graphics}
+\LWR@loadafter{graphicx}
+\LWR@loadafter{hyperref}
+\LWR@loadafter{indentfirst}
+\LWR@loadafter{keyfloat}
+\LWR@loadafter{layout}
+\LWR@loadafter{letterspace}
+\LWR@loadafter{listings}
+\LWR@loadafter{longtable}
+\LWR@loadafter{lscape}
+\LWR@loadafter{ltcaption}
+\LWR@loadafter{mcaption}
+\LWR@loadafter{mdframed}
+\LWR@loadafter{microtype}
+%\LWR@loadafter{multicol}% loaded by ltxdoc
+\LWR@loadafter{multirow}
+\LWR@loadafter{nameref}
+\LWR@loadafter{needspace}
+\LWR@loadafter{newtxmath}
+\LWR@loadafter{nextpage}
+\LWR@loadafter{nowidow}
+\LWR@loadafter{pagenote}
+\LWR@loadafter{parskip}
+\LWR@loadafter{placeins}
+\LWR@loadafter{ragged2e}
+\LWR@loadafter{rotating}
+\LWR@loadafter{setspace}
+\LWR@loadafter{showkeys}
+\LWR@loadafter{sidecap}
+\LWR@loadafter{tabularx}
+\LWR@loadafter{textpos}
+\LWR@loadafter{threeparttable}
+\LWR@loadafter{titleps}
+\LWR@loadafter{titlesec}
+\LWR@loadafter{titletoc}
+\LWR@loadafter{tocloft}
+\LWR@loadafter{trivfloat}
+\LWR@loadafter{varioref}
+\LWR@loadafter{verse}
+\LWR@loadafter{wallpaper}
+\LWR@loadafter{wrapfig}
+\LWR@loadafter{xcolor}
+\LWR@loadafter{xfrac}
% \end{macrocode}
@@ -8199,13 +8297,17 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}%
% \section{Abstract}
-
+%
+% The following code replaces the \LaTeX\ default,
+% and will itself be replaced later if the \pkg{abstract}
+% package is loaded.
+%
+%
% \codehtml
% \begin{macrocode}
\begin{warpHTML}
% \end{macrocode}
-
% \begin{macro}{\abstractname}
% User-redefinable title for the abstract.
%
@@ -8306,12 +8408,11 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}%
% \end{macrocode}
+
% \subsection{Verse}
%
% \limitsverse
%
-% \bigskip
-%
% \codeall
% \begin{macrocode}
\begin{warpall}
@@ -8341,67 +8442,6 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}%
\end{warpall}
% \end{macrocode}
-% \codehtml
-% \begin{macrocode}
-\begin{warpHTML}
-% \end{macrocode}
-
-
-
-%
-%
-% \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|.
-% \begin{macrocode}
-\AfterEndPreamble{
-% \end{macrocode}
-% At the beginning of the \env{verse} environment:
-% \begin{macrocode}
-\AtBeginEnvironment{verse}
-{%
-% \end{macrocode}
-% \DescribePackage{verse}\DescribePackage{memoir}\index{memoir>verse}
-% The \pkg{verse} or \pkg{memoir} packages can place stanza numbers to the left
-% with their \cs{flagverse} command. \DescribeMacro{\flagverse}
-% Do not allow them to go into the left margin, which would cause |pdfcrop|
-% to crop the entire page further to the left:
-% \DescribeLength{vleftskip}
-% \begin{macrocode}
-\ifdef{\vleftskip}{%
-\setlength{\vleftskip}{\HTMLvleftskip}
-\setlength{\leftmargini}{\HTMLleftmargini}
-}{}
-\LWR@atbeginverbatim{verse}
-\unskip\vspace{-\baselineskip}
-}
-% \end{macrocode}
-% After the end of the \env{verse} environment, which places the |pre| tag at the
-% regular left margin:
-% \begin{macrocode}
-\AfterEndEnvironment{verse}{
-\unskip\vspace{-\baselineskip}
-\LWR@afterendverbatim
-}
-% \end{macrocode}
-% Patch to place poemtitle inside an \acro{HTML} span of class |poemtitle|:
-% \begin{macrocode}
-\ifdef{\poemtitle}{
-\DeclareDocumentCommand{\@vstypeptitle}{m}{%
- \vspace{\beforepoemtitleskip}%
- {\InlineClass{poemtitle}{\poemtitlefont #1}\par}%
- \vspace{\afterpoemtitleskip}%
- }
-}{}
-
-}
-\end{warpHTML}
-% \end{macrocode}
-% \end{environment}
-
-
-
-
@@ -9121,7 +9161,7 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}%
-% \subsection{Handling \&}
+% \subsection{Handling \& and !}
%
% \begin{minipage}{\linewidth}
% For technical discussion regarding problems redefining |\&|, See: \\
@@ -9141,11 +9181,12 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}%
\ifbool{LWR@skippingmrowcell}{}%
{% not skippingmrowcell
% \end{macrocode}
-% Insert any |<| then any |@| column contents:
+% Insert any |<| then any |@| and |!| column contents:
% \begin{macrocode}
\unskip%
\LWR@getexparray{LWR@colafterspec}{\theLWR@tablecolspos}%
\LWR@getexparray{LWR@colatspec}{\theLWR@tablecolspos}%
+\LWR@getexparray{LWR@colbangspec}{\theLWR@tablecolspos}%
% \end{macrocode}
% Close paragraphs:
% \begin{macrocode}
@@ -9329,6 +9370,10 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}%
% The leftmost's index is |leftedge|, the others are counter values.
% See \cref{sec:dataarray}.
%
+% \DescribeObject{LWR@colbangspec}A data array of specifications for |!| columns.
+% The leftmost's index is |leftedge|, the others are counter values.
+% See \cref{sec:dataarray}.
+%
% \DescribeObject{LWR@colbeforespec}A data array of specifications for |>| columns.
%
% \DescribeObject{LWR@colafterspec}A data array of specifications for |<| columns.
@@ -9341,7 +9386,6 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}%
%
% Handles |@{text}| columns.
%
-%
% \begin{macrocode}
\newcommand*{\LWR@parseatcolumn}{%
% \end{macrocode}
@@ -9364,7 +9408,6 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}%
{% left edge of the table:
\LWR@traceinfo{at the left edge}%
\LWR@setexparray{LWR@colatspec}{leftedge}{\LWR@strresult}%
-\LWR@traceinfo{finished with the def}%
}%
{% not at the left edge:
\LWR@traceinfo{not at the left edge}%
@@ -9372,11 +9415,52 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}%
\LWR@traceinfo{at \theLWR@tabletotalcols: \LWR@colatspec(\theLWR@tabletotalcols)!}%
}%
\let\LWR@strresult\relax%
+\booltrue{LWR@validtablecol}%
}
% \end{macrocode}
% \end{macro}
%
%
+% \begin{macro}{\LWR@parsebangcolumn}
+%
+% \changes{v0.22}{2017/02/28}{Added tabular \texttt{!!} column.}
+%
+% \begin{macrocode}
+\newcommand*{\LWR@parsebangcolumn}{%
+% \end{macrocode}
+% Move to the next token after the '!':
+% \begin{macrocode}
+\LWR@traceinfo{bang column}%
+\addtocounter{LWR@tablecolspos}{1}%
+% \end{macrocode}
+% Read the next token into \cs{LWR@strresult}, expanding once:
+% \begin{macrocode}
+\LWR@traceinfo{about to read the next token:}%
+\expandarg%
+\StrChar{\LWR@origcolspec}{\theLWR@tablecolspos}[\LWR@strresult]
+\fullexpandarg%
+% \end{macrocode}
+% Store the result into a data array, expanding once out of \cs{LWR@strresult}:
+% \begin{macrocode}
+\LWR@traceinfo{have now read the next token}%
+\ifthenelse{\cnttest{\value{LWR@tabletotalcols}}=0}
+{% left edge of the table:
+\LWR@traceinfo{at the left edge}%
+\LWR@setexparray{LWR@colbangspec}{leftedge}{\LWR@strresult}%
+}%
+{% not at the left edge:
+\LWR@traceinfo{not at the left edge}%
+\LWR@setexparray{LWR@colbangspec}{\theLWR@tabletotalcols}{\LWR@strresult}%
+\LWR@traceinfo{bang \theLWR@tabletotalcols: \LWR@colbangspec(\theLWR@tabletotalcols)!}%
+}%
+\let\LWR@strresult\relax%
+\booltrue{LWR@validtablecol}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
% \begin{macro}{\LWR@parsebeforecolumn}
%
% Handles |>{text}| columns.
@@ -9398,6 +9482,7 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}%
% \begin{macrocode}
\LWR@setexparray{LWR@colbeforespec}{\theLWR@tabletotalcolsnext}{\LWR@strresult}%
\let\LWR@strresult\relax%
+\booltrue{LWR@validtablecol}%
}
% \end{macrocode}
% \end{macro}
@@ -9424,6 +9509,7 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}%
% \begin{macrocode}
\LWR@setexparray{LWR@colafterspec}{\theLWR@tabletotalcols}{\LWR@strresult}%
\let\LWR@strresult\relax%
+\booltrue{LWR@validtablecol}%
}
% \end{macrocode}
% \end{macro}
@@ -9434,6 +9520,7 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}%
%
% \begin{macrocode}
\newcommand*{\LWR@parseskipcolumn}{%
+\booltrue{LWR@validtablecol}%
}
% \end{macrocode}
% \end{macro}
@@ -9451,20 +9538,23 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}%
\addtocounter{LWR@tabletotalcols}{1}%
\addtocounter{LWR@tabletotalcolsnext}{1}%
\LWR@setexparray{LWR@colatspec}{\theLWR@tabletotalcolsnext}{\relax}%
+\LWR@setexparray{LWR@colbangspec}{\theLWR@tabletotalcolsnext}{\relax}%
\LWR@setexparray{LWR@colbeforespec}{\theLWR@tabletotalcolsnext}{\relax}%
\LWR@setexparray{LWR@colafterspec}{\theLWR@tabletotalcolsnext}{\relax}%
+\booltrue{LWR@validtablecol}%
}
% \end{macrocode}
% \end{macro}
-% \subsection{Parsing `p', `m', or `b' columns}
+% \subsection{Parsing `p', `m', or `b' columns}
+%
% \begin{macro}{\LWR@parsepcolumn} \marg{thiscolumn}
-% the width will be ignored
+% The width will be ignored.
% \begin{macrocode}
\newcommand*{\LWR@parsepcolumn}[1]{%
% \end{macrocode}
-% converts to the given column type
+% Converts to the given column type.
% \begin{macrocode}
\LWR@parsenormalcolumn{#1}%
% \end{macrocode}
@@ -9476,6 +9566,31 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}%
% \end{macro}
+% \subsection{Parsing `D' columns}
+%
+% From the \pkg{dcolumn} package.
+%
+% \begin{macro}{\LWR@parseDcolumn} \marg{thiscolumn}
+% The three parameters will be ignored.
+%
+% \changes{v0.22}{2017/02/24}{Added tabular \texttt{D} column.}
+%
+% \begin{macrocode}
+\newcommand*{\LWR@parseDcolumn}[1]{%
+% \end{macrocode}
+% Converts to the given column type.
+% \begin{macrocode}
+\LWR@parsenormalcolumn{#1}%
+% \end{macrocode}
+% Skips the following three parameters.
+% \begin{macrocode}
+\addtocounter{LWR@tablecolspos}{3}%
+}
+% \end{macrocode}
+% \end{macro}
+
+
+
% \subsection{Parsing the column specifications}
% \acro{HTML} \acro{CSS} cannot exactly match the \LaTeX{} concept of a baseline for
@@ -9533,14 +9648,24 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}%
% \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
% text is closest to the middle of the text line.
-% \item [P, M, B:] Horizontally-centered versions,
+% \item [P, M, B:] Horizontally-centered versions.
% \item [S:] Converted to 'r'. From the \pkg{siunitx} package.
-% \item [@, \textgreater{}, \textless{}:] Ignored so far.
+% \item [D:] Converted to 'c'. From the \pkg{dcolumn} package.
+% \item [@, !, \textgreater{}, \textless{}:] One each, in that order.
+% \item [Unknown:] Converted to 'l'.
+% \item [\cs{newcolumn}:] Currently treated as unknown.
% \end{description}
% \hrule
% \end{table}
%
%
+% \DescribeBoolean{LWR@validtablecol} True if found a valid table column type.
+% \begin{macrocode}
+\newbool{LWR@validtablecol}
+% \end{macrocode}
+%
+%
+%
% \begin{macro}{\LWR@parsetablecols} \marg{colspecs}
%
% Scans the column specification left to right.
@@ -9549,6 +9674,9 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}%
% one column per entry. The number of final columns is
% stored in |LWR@tabletotalcols|.
%
+% \changes{v0.22}{2017/02/28}{Unknown table column types become \texttt{l}.
+% Added tabular \texttt{D}, \texttt{!!}, \texttt{X} columns.}
+%
% \begin{macrocode}
\newcommand*{\LWR@parsetablecols}[1]{%
\LWR@traceinfo{LWR@parsetablecols started}%
@@ -9570,6 +9698,10 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}%
\LWR@setexparray{LWR@colatspec}{1}{\relax}%
\LWR@setexparray{LWR@colatspec}{2}{\relax}%
\LWR@setexparray{LWR@colatspec}{3}{\relax}%
+\LWR@setexparray{LWR@colbangspec}{leftedge}{\relax}%
+\LWR@setexparray{LWR@colbangspec}{1}{\relax}%
+\LWR@setexparray{LWR@colbangspec}{2}{\relax}%
+\LWR@setexparray{LWR@colbangspec}{3}{\relax}%
\LWR@setexparray{LWR@colbeforespec}{1}{\relax}%
\LWR@setexparray{LWR@colbeforespec}{2}{\relax}%
\LWR@setexparray{LWR@colbeforespec}{3}{\relax}%
@@ -9601,6 +9733,10 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}%
\StrChar{#1}{\theLWR@tablecolspos}[\LWR@strresult]%
\fullexpandarg%
% \end{macrocode}
+% Not yet found a valid column type
+% \begin{macrocode}
+\boolfalse{LWR@validtablecol}%
+% \end{macrocode}
% Note that the parameter for a |p{spec}| column is a token list which will NOT match l,c,r,p.
% \watchout
% \begin{macrocode}
@@ -9609,6 +9745,7 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}%
\IfStrEq{\LWR@strresult}{r}{\LWR@parsenormalcolumn{r}}{}%
\IfStrEq{\LWR@strresult}{S}{\LWR@parsenormalcolumn{r}}{}%
\IfStrEq{\LWR@strresult}{\detokenize{@}}{\LWR@parseatcolumn}{}%
+\IfStrEq{\LWR@strresult}{!}{\LWR@parsebangcolumn}{}%
\IfStrEq{\LWR@strresult}{>}{\LWR@parsebeforecolumn}{}%
\IfStrEq{\LWR@strresult}{<}{\LWR@parseaftercolumn}{}%
\IfStrEq{\LWR@strresult}{!}{\LWR@parseskipcolumn}{}%
@@ -9616,6 +9753,15 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}%
\IfStrEq{\LWR@strresult}{m}{\LWR@parsepcolumn{m}}{}%
\IfStrEq{\LWR@strresult}{b}{\LWR@parsepcolumn{b}}{}%
% \end{macrocode}
+% From the \pkg{dcolumn} package:
+% \begin{macrocode}
+\IfStrEq{\LWR@strresult}{D}{\LWR@parseDcolumn{c}}{}%
+% \end{macrocode}
+% From the \pkg{tabularx} package.
+% X column has no parameter, but will be given paragraph tags.
+% \begin{macrocode}
+\IfStrEq{\LWR@strresult}{X}{\LWR@parsenormalcolumn{X}}{}%
+% \end{macrocode}
% \begin{docsidebar}
% Many people define centered versions ``|P|'', ``|M|'', and ``|B|'': \\
% \hspace*{1em}|\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}|
@@ -9624,6 +9770,12 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}%
\IfStrEq{\LWR@strresult}{P}{\LWR@parsepcolumn{P}}{}%
\IfStrEq{\LWR@strresult}{M}{\LWR@parsepcolumn{M}}{}%
\IfStrEq{\LWR@strresult}{B}{\LWR@parsepcolumn{B}}{}%
+% \end{macrocode}
+% If this column was an invalid column type, convert it to a |p| column:
+% \begin{macrocode}
+\ifbool{LWR@validtablecol}{}{%
+\LWR@parsenormalcolumn{l}%
+}%
\addtocounter{LWR@tablecolspos}{1}%
}%
}%
@@ -9697,7 +9849,7 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}%
\ifthenelse{\equal{\LWR@getexparray{LWR@midrules}{\theLWR@tablecolspos}}{Y}}{rule}{}%
"{}}%
% \end{macrocode}
-% If this is a p, m, or b column, allow paragraphs:
+% If this is a p, m, b, or X column, allow paragraphs:
% \begin{macrocode}
\ifthenelse{%
\equal{\LWR@strresult}{p}\OR%
@@ -9705,7 +9857,8 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}%
\equal{\LWR@strresult}{b}\OR%
\equal{\LWR@strresult}{P}\OR%
\equal{\LWR@strresult}{M}\OR%
-\equal{\LWR@strresult}{B}%
+\equal{\LWR@strresult}{B}\OR%
+\equal{\LWR@strresult}{X}%
}%
{% allow pars
\LWR@startpars%
@@ -9713,11 +9866,14 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}%
}% allow pars
{}% no pars
% \end{macrocode}
-% Print the |@| contents before first column,
+% Print the |@| and |!| contents before first column,
% and then the |>| contents:
% \begin{macrocode}
\ifthenelse{\cnttest{\value{LWR@tablecolspos}}=1}%
-{\LWR@getexparray{LWR@colatspec}{leftedge}}% left edge
+{%
+\LWR@getexparray{LWR@colatspec}{leftedge}%
+\LWR@getexparray{LWR@colbangspec}{leftedge}%
+}% left edge
{}% not left edge
\LWR@getexparray{LWR@colbeforespec}{\theLWR@tablecolspos}%
\global\boolfalse{LWR@intabularmetadata}%
@@ -9804,6 +9960,8 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}%
% \begin{macro}{\LWR@printmccoltype} \marg{colspec}
% Print any valid column type found. Does not print |@|, |>|, or |<| columns
% or their associated tokens.
+%
+% This is printed as part of the table data tag's |class|.
% \begin{macrocode}
\newcommand*{\LWR@printmccoltype}[1]{%
\LWR@traceinfo{lwr@printmccoltype -#1-}%
@@ -9824,6 +9982,7 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}%
\IfStrEq{\LWR@strresult}{M}{M}{}%
\IfStrEq{\LWR@strresult}{B}{B}{}%
\IfStrEq{\LWR@strresult}{S}{r}{}%
+\IfStrEq{\LWR@strresult}{X}{p}{}%
\LWR@traceinfo{lwr@printmccoltype done}%
}
% \end{macrocode}
@@ -9847,16 +10006,28 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}%
\addtocounter{LWR@tablemulticolspos}{1}%
\StrChar{#1}{\theLWR@tablemulticolspos}[\LWR@strresult]%
\LWR@strresult%
+% \end{macrocode}
+% A valid column data type was found:
+% \begin{macrocode}
+\booltrue{LWR@validtablecol}%
}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\LWR@printmccoldata} \marg{colspec}
% Print the data for any valid column type found.
+%
+% \changes{v0.22}{2017/02/28}{Added tabular \texttt{D}, \texttt{!!},
+% and \texttt{X} columns.}
+%
% \begin{macrocode}
\newcommand*{\LWR@printmccoldata}[1]{%
\LWR@traceinfo{lwr@printmccoldata -#1}%
% \end{macrocode}
+% Not yet found a valid column type:
+% \begin{macrocode}
+\boolfalse{LWR@validtablecol}%
+% \end{macrocode}
% Get one token of the column spec:
% \begin{macrocode}
\StrChar{#1}{\theLWR@tablemulticolspos}[\LWR@strresult]%
@@ -9867,6 +10038,10 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}%
\IfStrEq{\LWR@strresult}{l}{\LWR@multicoltext}{}%
\IfStrEq{\LWR@strresult}{c}{\LWR@multicoltext}{}%
\IfStrEq{\LWR@strresult}{r}{\LWR@multicoltext}{}%
+\IfStrEq{\LWR@strresult}{D}{%
+\addtocounter{LWR@tablemulticolspos}{3}% skip parameters
+\LWR@multicoltext%
+}{}%
\IfStrEq{\LWR@strresult}{p}{\LWR@multicolpartext}{}%
\IfStrEq{\LWR@strresult}{m}{\LWR@multicolpartext}{}%
\IfStrEq{\LWR@strresult}{b}{\LWR@multicolpartext}{}%
@@ -9874,13 +10049,18 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}%
\IfStrEq{\LWR@strresult}{M}{\LWR@multicolpartext}{}%
\IfStrEq{\LWR@strresult}{B}{\LWR@multicolpartext}{}%
\IfStrEq{\LWR@strresult}{S}{\LWR@multicolpartext}{}%
+\IfStrEq{\LWR@strresult}{X}{\LWR@multicolpartext}{}%
\IfStrEq{\LWR@strresult}{\detokenize{@}}{\LWR@multicolother{#1}}{}%
+\IfStrEq{\LWR@strresult}{\detokenize{!}}{\LWR@multicolother{#1}}{}%
\IfStrEq{\LWR@strresult}{\detokenize{>}}{\LWR@multicolother{#1}}{}%
\IfStrEq{\LWR@strresult}{\detokenize{<}}{\LWR@multicolother{#1}}{}%
-% \addtocounter{LWR@tablemulticolspos}{1}%
-% \StrChar{#1}{\theLWR@tablemulticolspos}[\LWR@strresult]%
-% \LWR@strresult%
-% }{}%
+% \end{macrocode}
+% If an invalid column type:
+% \begin{macrocode}
+\ifbool{LWR@validtablecol}{}{\LWR@multicoltext}%
+% \end{macrocode}
+% Tracing:
+% \begin{macrocode}
\LWR@traceinfo{lwr@printmccoldata done}%
}
% \end{macrocode}
@@ -9932,7 +10112,17 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}%
\NewDocumentCommand{\LWR@domulticolumn}{m m +m}{%
\LWR@traceinfo{lwr@domulticolumn -#1- -#2-}%
-\renewcommand{\LWR@multicoltext}{#3}%
+% \end{macrocode}
+% Remember the text to be inserted, and
+% remember that a valid column type was found:
+% \begin{macrocode}
+\renewcommand{\LWR@multicoltext}{%
+#3%
+\booltrue{LWR@validtablecol}%
+}%
+% \end{macrocode}
+% Row processing:
+% \begin{macrocode}
\LWR@maybenewtablerow%
% \end{macrocode}
% Begin the opening table data tag:
@@ -10760,7 +10950,7 @@ lateximage\LWR@lateximagenumberref{#1}%
% \begin{macro}{\pagerefPageFor} Text for starred page references.
%
% \begin{macrocode}
-\newcommand*{\pagerefPageFor}{page for}
+\newcommand*{\pagerefPageFor}{see }
% \end{macrocode}
% \end{macro}
%
@@ -10774,7 +10964,7 @@ lateximage\LWR@lateximagenumberref{#1}%
% \begin{macrocode}
\NewDocumentCommand{\LWR@newpageref}{s m}{%
\IfBooleanTF{#1}%
-{(\pagerefPageFor\ \LWR@origref{#2})}%
+{(\pagerefPageFor\LWR@origref{#2})}%
{(\cpageref{#2})}%
}
% \end{macrocode}
@@ -10796,6 +10986,13 @@ lateximage\LWR@lateximagenumberref{#1}%
% \end{macro}
+% \begin{macro}{\Nameref} \marg{label}
+% In print, adds the page number. In \acro{HTML}, does not.
+% \begin{macrocode}
+\let\Nameref\nameref
+% \end{macrocode}
+% \end{macro}
+
% \subsection{Hyper-references}
%
% Note that the code currently only sanitizes the underscore character.
@@ -15204,7 +15401,7 @@ homehtmlfilename = "\HomeHTMLFileName"%
\begin{VerbatimOut}{lwarp.css}
/*
CSS stylesheet for the LaTeX lwarp package
- Copyright 2016 Brian Dunn — BD Tech Concepts LLC
+ Copyright 2016-2017 Brian Dunn — BD Tech Concepts LLC
*/
@@ -15554,6 +15751,13 @@ div.abstracttitle{
text-align: center ;
}
+span.abstractrunintitle{
+ font-family: "URW Classico", Optima, "Linux Biolinum O",
+ "Linux Libertine O", "Liberation Serif", "Nimbus Roman No 9 L",
+ "FreeSerif", "Hoefler Text", Times, "Times New Roman", serif;
+ font-weight:bold;
+}
+
.verbatim {
overflow-x: auto ;
@@ -16288,6 +16492,13 @@ div.abstracttitle{
text-shadow: 1px 1px 2px #808080;
}
+span.abstractrunintitle{
+ font-family: "URW Classico", Optima, "Linux Biolinum O",
+ "Linux Libertine O", "Liberation Serif", "Nimbus Roman No 9 L",
+ "FreeSerif", "Hoefler Text", Times, "Times New Roman", serif;
+ font-weight:bold;
+}
+
div.epigraph {
background: #f5f5eb ;
@@ -16511,6 +16722,15 @@ div.abstracttitle {
text-shadow: none ;
}
+span.abstractrunintitle {
+ font-family: "Linux Libertine O", "Hoefler Text", "Garamond",
+ "Bembo", "Janson", "TeX Gyre Pagella", "Palatino",
+ "Liberation Serif", "Nimbus Roman No 9 L", "FreeSerif", Times,
+ "Times New Roman", serif;
+ color: black ;
+ text-shadow: none ;
+}
+
div.abstract { font-size: 100% }
.sidebar {
@@ -16826,11 +17046,11 @@ MathJax.Hub.Config({
\begin{VerbatimOut}{lwarpmk.lua}
#!/usr/bin/env texlua
--- Copyright 2016 Brian Dunn
+-- Copyright 2016-2017 Brian Dunn
-- Print the usage of the lwarpmk command:
-printversion = "v0.21"
+printversion = "v0.22"
function printhelp ()
print ("lwarpmk: Use lwarpmk -h or lwarpmk --help for help.") ;
@@ -17282,6 +17502,104 @@ end -- not --version
+% \clearpage
+
+% \iffalse
+%<*abstract>
+% \fi
+
+% \part{lwarp-abstract.sty}
+%
+% \section{Abstract}
+%
+% \DescribePackage{abstract}
+% \pkg{abstract} is supported and patched by \pkg{lwarp}.
+%
+% \limitsabstract
+%
+% \changes{v0.22}{2017/03/01}{\pkg{abstract}: Added.}
+%
+% \codehtml
+%
+% Accept all options for \pkg{lwarp-abstract}:
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{abstract}
+% \end{macrocode}
+
+
+% \begin{macrocode}
+\AtBeginDocument{
+\BeforeBeginEnvironment{abstract}{\BlockClass{abstract}}
+\AfterEndEnvironment{abstract}{\endBlockClass}
+}
+
+\renewcommand{\@bsrunintitle}{%
+\hspace*{\abstitleskip}%
+{\abstractnamefont%
+\InlineClass{abstractrunintitle}{\abstractname}%
+\@bslabeldelim}%
+}
+
+\if@titlepage
+ \renewenvironment{abstract}{%
+% \titlepage
+ \null\vfil
+ \@beginparpenalty\@lowpenalty
+ \if@bsrunin
+ \else
+ \if@bsstyle
+ \abstitlestyle{\BlockClassSingle{abstracttitle}{\abstractname}}
+ \else
+ \ifnumber@bs
+ \num@bs
+ \else
+ \begin{\absnamepos}%
+ \abstractnamefont \BlockClassSingle{abstracttitle}{\abstractname}
+ \@endparpenalty\@M
+ \end\absnamepos%
+%% \vspace{\abstitleskip}%
+ \fi
+ \fi
+ \vspace{\abstitleskip}%
+ \fi
+ \put@bsintoc%
+ \begin{@bstr@ctlist}\if@bsrunin\@bsrunintitle\fi\abstracttextfont}%
+ {\par\end{@bstr@ctlist}\vfil\null%\endtitlepage
+ }
+\else
+ \renewenvironment{abstract}{%
+ \if@bsrunin
+ \else
+ \if@bsstyle
+ \abstitlestyle{\BlockClassSingle{abstracttitle}{\abstractname}}
+ \else
+ \ifnumber@bs
+ \num@bs
+ \else
+\begin{\absnamepos}%
+\abstractnamefont\BlockClassSingle{abstracttitle}{\abstractname}%
+\end\absnamepos%
+%% \vspace{\abstitleskip}%
+ \fi
+ \fi
+ \vspace{\abstitleskip}%
+ \fi
+ \put@bsintoc%
+ \begin{@bstr@ctlist}\if@bsrunin\@bsrunintitle\fi\abstracttextfont}%
+ {\par\end{@bstr@ctlist}}
+\fi
+
+% \end{macrocode}
+
+
+% \iffalse
+%</abstract>
+% \fi
+
+
+
+% \clearpage
+%
% \iffalse
%<*afterpage>
% \fi
@@ -17290,7 +17608,7 @@ end -- not --version
% \section{Afterpage}
%
-% \DescribePackage{afterpage}
+% \DescribePackage{afterpage} Not used.
%
% \changes{v0.20}{2017/01/11}{\pkg{afterpage}: Added.}
%
@@ -17382,12 +17700,12 @@ span style="width:\rndprintlength{\ALG@thistlm}; display:inline-block;"%
% \section{Alltt}
%
% \DescribePackage{alltt}
+% \pkg{alltt} is patched for use by \pkg{lwarp}.
%
% \changes{v0.20}{2017/01/11}{\pkg{alltt}: Added.}
%
% \codehtml
%
-% \pkg{alltt} is patched for use by \pkg{lwarp}.
% \begin{macrocode}
\LWR@ProvidesPackagePass{alltt}
% \end{macrocode}
@@ -17406,8 +17724,6 @@ span style="width:\rndprintlength{\ALG@thistlm}; display:inline-block;"%
-% \clearpage
-
% \iffalse
%<*bookmark>
% \fi
@@ -17482,6 +17798,65 @@ span style="width:\rndprintlength{\ALG@thistlm}; display:inline-block;"%
+% \iffalse
+%<*changepage>
+% \fi
+
+% \part{lwarp-changepage.sty}
+
+% \section{Changepage}
+%
+% \DescribePackage{changepage}
+% \pkg{changepage} is ignored.
+%
+% \changes{v0.22}{2017/03/02}{\pkg{changepage}: Added.}
+%
+% \codehtml
+%
+% Discard all options for \pkg{lwarp-changepage}:
+% \begin{macrocode}
+\LWR@ProvidesPackageDrop{changepage}
+% \end{macrocode}
+
+% \begin{macrocode}
+\newif\ifoddpage
+\DeclareRobustCommand{\checkoddpage}{\oddpagetrue}
+\DeclareRobustCommand{\changetext}[5]{}
+\DeclareRobustCommand{\changepage}[9]{}
+\newenvironment{adjustwidth}[2]{}{}
+\newenvironment{adjustwidth*}[2]{}{}
+% \end{macrocode}
+
+% \iffalse
+%</changepage>
+% \fi
+
+
+
+
+% \iffalse
+%<*dcolumn>
+% \fi
+
+% \part{lwarp-dcolumn.sty}
+
+% \section{Dcolumn}
+% \label{sec:dcolumn}
+%
+% \changes{v0.22}{2017/02/24}{\pkg{dcolumn}: Added.}
+%
+% \DescribePackage{dcolumn}
+% \pkg{dcolumn} is emulated during \acro{HTML} output, and
+% the \pkg{dcolumn} package is ignored.
+
+% \begin{macrocode}
+\LWR@ProvidesPackageDrop{dcolumn}
+% \end{macrocode}
+
+
+% \iffalse
+%</dcolumn>
+% \fi
@@ -17502,12 +17877,12 @@ span style="width:\rndprintlength{\ALG@thistlm}; display:inline-block;"%
% \pkg{draftwatermark} is emulated during \acro{HTML} output, and
% the \pkg{draftwatermark} package is ignored.
+% \codehtml
+
% \begin{macrocode}
\LWR@ProvidesPackageDrop{draftwatermark}
% \end{macrocode}
-% \codehtml
-
% \begin{macrocode}
\newcommand{\SetWatermarkAngle}[1]{}
\newcommand{\SetWatermarkColor}[1]{}
@@ -17524,6 +17899,55 @@ span style="width:\rndprintlength{\ALG@thistlm}; display:inline-block;"%
% \fi
+
+% \clearpage
+
+% \iffalse
+%<*enumerate>
+% \fi
+
+% \part{lwarp-enumerate.sty}
+
+% \section{Enumerate}
+%
+% \DescribePackage{enumerate}
+% \pkg{enumerate} is ignored.
+% \pkg{enumitem} is then modified per the |shortlabels| option.
+%
+% \limitsenumerate
+%
+% \changes{v0.22}{2017/03/02}{\pkg{enumerate}: Added.}
+%
+% \codehtml
+%
+% Discard all options for \pkg{lwarp-enumerate}:
+% \begin{macrocode}
+\LWR@ProvidesPackageDrop{enumerate}
+% \end{macrocode}
+
+
+% \begin{macrocode}
+% \DeclareOption{shortlabels}
+% {
+\def\enit@shl#1{%
+ \ifnum\enit@type=\tw@
+ \enit@toks{#1}%
+ \else
+ \def\enit@c{#1}%
+ \enit@first#1,\@nil\@@nil % Returns enit@toks
+ \fi}
+% }
+% \end{macrocode}
+
+
+% \iffalse
+%</enumerate>
+% \fi
+
+
+
+% \clearpage
+%
% \iffalse
%<*epigraph>
% \fi
@@ -17538,12 +17962,12 @@ span style="width:\rndprintlength{\ALG@thistlm}; display:inline-block;"%
% \pkg{epigraph} is emulated during \acro{HTML} output, and
% the \pkg{epigraph} package is ignored.
+% \codehtml
+
% \begin{macrocode}
\LWR@ProvidesPackageDrop{epigraph}
% \end{macrocode}
-% \codehtml
-
% \begin{macrocode}
\newcommand{\qitem}[2]
{
@@ -17611,11 +18035,12 @@ span style="width:\rndprintlength{\ALG@thistlm}; display:inline-block;"%
% \pkg{eso-pic} is emulated during \acro{HTML} output, and
% the \pkg{eso-pic} package is ignored.
+% \codehtml
+
% \begin{macrocode}
\LWR@ProvidesPackageDrop{eso-pic}
% \end{macrocode}
-% \codehtml
% \begin{macrocode}
\newcommand*{\LenToUnit}{}
\newcommand{\AtPageUpperLeft}[1]{}
@@ -17642,8 +18067,8 @@ span style="width:\rndprintlength{\ALG@thistlm}; display:inline-block;"%
-
-
+% \clearpage
+%
% \iffalse
%<*everypage>
% \fi
@@ -17659,11 +18084,11 @@ span style="width:\rndprintlength{\ALG@thistlm}; display:inline-block;"%
% \pkg{everypage} is emulated during \acro{HTML} output, and
% the \pkg{everypage} package is ignored.
+% \codehtml
% \begin{macrocode}
\LWR@ProvidesPackageDrop{everypage}
% \end{macrocode}
-% \codehtml
% \begin{macrocode}
\newcommand*{\AddEverypageHook}[1]{}
\newcommand*{\AddThispageHook}[1]{}
@@ -17683,6 +18108,7 @@ span style="width:\rndprintlength{\ALG@thistlm}; display:inline-block;"%
% \section{Extramarks}
%
% \DescribePackage{extramarks}
+% \pkg{extramarks} is not used.
%
% \changes{v0.20}{2017/01/11}{\pkg{extramarks}: Added.}
%
@@ -17723,6 +18149,7 @@ span style="width:\rndprintlength{\ALG@thistlm}; display:inline-block;"%
% \section{Fancyhdr}
%
% \DescribePackage{fancyhdr}
+% \pkg{fancyhdr} is nullified.
%
% \changes{v0.20}{2017/01/11}{\pkg{fancyhdr}: Added.}
%
@@ -17786,10 +18213,6 @@ span style="width:\rndprintlength{\ALG@thistlm}; display:inline-block;"%
% \end{macrocode}
%
-% \DescribePackage{float}
-%
-% The \pkg{float} package is emulated.
-%
% See \cref{sec:listof} for the \cs{listof} command.
@@ -17883,13 +18306,8 @@ span style="width:\rndprintlength{\ALG@thistlm}; display:inline-block;"%
\LWR@ProvidesPackageDrop{floatrow}
% \end{macrocode}
-
% \changes{v0.14}{2016/03/31}{floatrow: Added package}
-% \DescribePackage{floatrow}
-%
-% The \pkg{floatrow} package is emulated.
-%
% \limitsfloatrow
@@ -18057,11 +18475,13 @@ span style="width:\rndprintlength{\ALG@thistlm}; display:inline-block;"%
% \begin{macrocode}
\ifthenelse{\equal{\LWR@frowkeywithin}{}}
{
-\LWR@traceinfo{about to newfloat #1 \LWR@frowkeyplacement\ \LWR@frowkeyfileext}%
+\LWR@traceinfo{about to newfloat #1 \LWR@frowkeyplacement\
+ \LWR@frowkeyfileext}%
\newfloat{#1}{\LWR@frowkeyplacement}{\LWR@frowkeyfileext}
}%
{%
-\LWR@traceinfo{about to newfloat #1\ \LWR@frowkeyplacement\ \LWR@frowkeyfileext\ \LWR@frowkeywithin}%
+\LWR@traceinfo{about to newfloat #1\ \LWR@frowkeyplacement\
+ \LWR@frowkeyfileext\ \LWR@frowkeywithin}%
\newfloat{#1}{\LWR@frowkeyplacement}%
{\LWR@frowkeyfileext}[\LWR@frowkeywithin]%
\LWR@traceinfo{*** finished newfloat #1}
@@ -18168,12 +18588,14 @@ span style="width:\rndprintlength{\ALG@thistlm}; display:inline-block;"%
%
% Discard all options for \pkg{lwarp-fontenc}:
+
+% \codehtml
% \begin{macrocode}
\LWR@ProvidesPackageDrop{fontenc}
% \end{macrocode}
% \begin{macrocode}
-\LWR@noloadafter{fontenc}
+\LWR@loadbefore{fontenc}
% \end{macrocode}
% \iffalse
@@ -18198,12 +18620,14 @@ span style="width:\rndprintlength{\ALG@thistlm}; display:inline-block;"%
%
% Discard all options for \pkg{lwarp-fontspec}:
+%
+% \codehtml
% \begin{macrocode}
\LWR@ProvidesPackageDrop{fontspec}
% \end{macrocode}
% \begin{macrocode}
-\LWR@noloadafter{fontspec}
+\LWR@loadbefore{fontspec}
% \end{macrocode}
% \iffalse
@@ -18213,6 +18637,33 @@ span style="width:\rndprintlength{\ALG@thistlm}; display:inline-block;"%
% \clearpage
+
+% \iffalse
+%<*ftnright>
+% \fi
+
+% \part{lwarp-ftnright.sty}
+
+% \section{Ftnright}
+%
+% \DescribePackage{ftnright}
+% \pkg{ftnright} is ignored.
+%
+% \changes{v0.22}{2017/03/01}{\pkg{ftnright}: Added.}
+%
+% \codehtml
+%
+% Discard all options for \pkg{lwarp-ftnright}:
+% \begin{macrocode}
+\LWR@ProvidesPackageDrop{ftnright}
+% \end{macrocode}
+
+% \iffalse
+%</ftnright>
+% \fi
+
+
+
%
% \iffalse
%<*geometry>
@@ -18223,6 +18674,10 @@ span style="width:\rndprintlength{\ALG@thistlm}; display:inline-block;"%
% \section{Geometry}
%
% \DescribePackage{geometry}
+% \pkg{geometry} is preloaded by \pkg{lwarp}, but must be nullified
+% as seen by the user's source code.
+%
+% \changes{v0.22}{2017/03/01}{\pkg{geometry}: Nullified commands.}
%
% \codehtml
@@ -18231,6 +18686,14 @@ span style="width:\rndprintlength{\ALG@thistlm}; display:inline-block;"%
\LWR@ProvidesPackageDrop{geometry}
% \end{macrocode}
+% \begin{macrocode}
+\renewcommand*{\geometry}[1]{}
+\renewcommand*{\newgeometry}[1]{}
+\renewcommand*{\restoregeometry}{}
+\renewcommand*{\savegeometry}[1]{}
+\renewcommand*{\loadgeometry}[1]{}
+% \end{macrocode}
+
% \iffalse
%</geometry>
% \fi
@@ -18634,10 +19097,34 @@ span style="width:\rndprintlength{\ALG@thistlm}; display:inline-block;"%
+% \iffalse
+%<*indentfirst>
+% \fi
+% \part{lwarp-indentfirst.sty}
-% \clearpage
+% \section{Indentfirst}
+%
+% \DescribePackage{indentfirst}
+% \pkg{indentfirst} is ignored.
+%
+% \changes{v0.22}{2017/03/01}{\pkg{indentfirst}: Added.}
+%
+% Discard all options for \pkg{lwarp-indentfirst}:
+
+% \codehtml
%
+% \begin{macrocode}
+\LWR@ProvidesPackageDrop{indentfirst}
+% \end{macrocode}
+
+% \iffalse
+%</indentfirst>
+% \fi
+
+
+
+
% \iffalse
%<*inputenc>
% \fi
@@ -18653,12 +19140,15 @@ span style="width:\rndprintlength{\ALG@thistlm}; display:inline-block;"%
%
% Discard all options for \pkg{lwarp-inputenc}:
+
+% \codehtml
+%
% \begin{macrocode}
\LWR@ProvidesPackageDrop{inputenc}
% \end{macrocode}
% \begin{macrocode}
-\LWR@noloadafter{inputenc}
+\LWR@loadbefore{inputenc}
% \end{macrocode}
% \iffalse
@@ -18739,7 +19229,37 @@ span style="width:\rndprintlength{\ALG@thistlm}; display:inline-block;"%
-% \clearpage
+
+% \iffalse
+%<*layout>
+% \fi
+
+% \part{lwarp-layout.sty}
+
+% \section{Layout}
+%
+% \DescribePackage{layout}
+% \pkg{layout} is ignored.
+%
+% \changes{v0.22}{2017/03/01}{\pkg{layout}: Added.}
+%
+% \codehtml
+%
+% Discard all options for \pkg{lwarp-layout}:
+% \begin{macrocode}
+\LWR@ProvidesPackageDrop{layout}
+% \end{macrocode}
+
+% \begin{macrocode}
+\NewDocumentCommand{\layout}{s}{}
+% \end{macrocode}
+
+% \iffalse
+%</layout>
+% \fi
+
+
+
% \iffalse
%<*letterspace>
@@ -18929,7 +19449,8 @@ span style="width:\rndprintlength{\ALG@thistlm}; display:inline-block;"%
% \begin{macrocode}
\LWR@traceinfo{addcontents lst@@caption: -\lst@@caption-}%
\addcontentsline{lol}{lstlisting}%
- {\protect\numberline{\thelstlisting}{\protect\ignorespaces \lst@@caption \protect\relax}}%
+{\protect\numberline{\thelstlisting}%
+{\protect\ignorespaces \lst@@caption \protect\relax}}%
\fi
\fi
\fi
@@ -19119,10 +19640,39 @@ span style="width:\rndprintlength{\ALG@thistlm}; display:inline-block;"%
-
% \clearpage
% \iffalse
+%<*lscape>
+% \fi
+
+% \part{lwarp-lscape.sty}
+
+% \section{Lscape}
+%
+% \DescribePackage{lscape}
+% \pkg{lscape} is nullified.
+%
+% \changes{v0.22}{2017/03/01}{\pkg{lscape}: Added.}
+%
+% \codehtml
+%
+% Discard all options for \pkg{lwarp-lscape}.
+% \begin{macrocode}
+\LWR@ProvidesPackageDrop{lscape}
+% \end{macrocode}
+
+% \begin{macrocode}
+\newenvironment*{landscape}{}{}
+% \end{macrocode}
+
+% \iffalse
+%</lscape>
+% \fi
+
+
+
+% \iffalse
%<*ltcaption>
% \fi
@@ -19162,6 +19712,40 @@ span style="width:\rndprintlength{\ALG@thistlm}; display:inline-block;"%
+
+% \iffalse
+%<*mcaption>
+% \fi
+
+% \part{lwarp-mcaption.sty}
+
+% \section{Mcaption}
+%
+% \DescribePackage{mcaption}
+% \pkg{mcaption} is nullified.
+%
+% \changes{v0.22}{2017/03/01}{\pkg{mcaption}: Added.}
+%
+% \codehtml
+%
+% Discard all options for \pkg{lwarp-mcaption}:
+% \begin{macrocode}
+\LWR@ProvidesPackageDrop{mcaption}
+% \end{macrocode}
+
+% \begin{macrocode}
+\newenvironment{margincap}{}{}
+\newcommand*{\margincapalign}{}
+\newlength{\margincapsep}
+% \end{macrocode}
+
+% \iffalse
+%</mcaption>
+% \fi
+
+
+
+
% \clearpage
% \iffalse
@@ -19657,16 +20241,12 @@ solid
\LWR@ProvidesPackageDrop{multicol}[2015/09/13]
% \end{macrocode}
-
-
% Multicols are converted into a 1--3 column display, browser-supported.
-
+%
% The optional multicols heading is placed inside a |div| of class |multicolsheading|.
-
+%
% The content is placed inside a |div| of class |multicols|.
-
-% \codehtml
% \begin{macrocode}
\begin{warpHTML}
% \end{macrocode}
@@ -19748,7 +20328,37 @@ solid
+% \iffalse
+%<*nameref>
+% \fi
+
+% \part{lwarp-nameref.sty}
+
+% \section{Nameref}
+%
+% \DescribePackage{nameref}
+% \pkg{nameref} is emulated by \pkg{lwarp}.
+%
+% \changes{v0.22}{2017/03/01}{\pkg{nameref}: Added.}
+%
+% \codehtml
+%
+% Discard all options for \pkg{lwarp-nameref}:
+% \begin{macrocode}
+\typeout{Using the lwarp html version of package `nameref' — discarding options.}
+\typeout{ Are not using ProvidesPackage, so that other packages}
+\typeout{ do not attempt to patch lwarp's version of `nameref'.}
+\DeclareOption*{}
+\ProcessOptions\relax
+% \end{macrocode}
+
+% \iffalse
+%</nameref>
+% \fi
+
+% \clearpage
+%
% \iffalse
%<*needspace>
% \fi
@@ -19758,7 +20368,7 @@ solid
% \section{Needspace}
%
% \DescribePackage{needspace}
-% \pkg{needspace} is not used during HTML conversion.
+% \pkg{needspace} is not used during \acro{HTML} conversion.
%
% \changes{v0.20}{2016/12/22}{\pkg{needspace}: Added.}
%
@@ -19778,6 +20388,37 @@ solid
+
+% \iffalse
+%<*newclude>
+% \fi
+%
+% \part{lwarp-newclude.sty}
+%
+% \section{Newclude}
+%
+% \DescribePackage{newclude}
+% Error if \pkg{newclude} is loaded after \pkg{lwarp}.
+%
+% \changes{v0.21}{2017/02/22}{\pkg{newclude}: Added.}
+%
+
+% Discard all options for \pkg{lwarp-newclude}:
+
+% \codehtml
+% \begin{macrocode}
+\LWR@ProvidesPackageDrop{newclude}
+% \end{macrocode}
+
+% \begin{macrocode}
+\LWR@loadbefore{newclude}
+% \end{macrocode}
+
+% \iffalse
+%</newclude>
+% \fi
+
+
% \clearpage
%
% \iffalse
@@ -19795,12 +20436,14 @@ solid
%
% Discard all options for \pkg{lwarp-newunicodechar}:
+
+% \codehtml
% \begin{macrocode}
\LWR@ProvidesPackageDrop{newunicodechar}
% \end{macrocode}
% \begin{macrocode}
-\LWR@noloadafter{newunicodechar}
+\LWR@loadbefore{newunicodechar}
% \end{macrocode}
% \iffalse
@@ -19809,6 +20452,40 @@ solid
+
+% \iffalse
+%<*nextpage>
+% \fi
+
+% \part{lwarp-nextpage.sty}
+
+% \section{Nextpage}
+%
+% \DescribePackage{nextpage}
+% \pkg{nextpage} is nullified.
+%
+% \changes{v0.22}{2017/03/01}{\pkg{nextpage}: Added.}
+%
+% \codehtml
+%
+% Discard all options for \pkg{lwarp-nextpage}.
+% \begin{macrocode}
+\LWR@ProvidesPackageDrop{nextpage}
+% \end{macrocode}
+
+% \begin{macrocode}
+\newcommand{\cleartoevenpage}[1][]{}
+\newcommand{\movetoevenpage}[1][]{}
+\newcommand{\cleartooddpage}[1][]{}
+\newcommand{\movetooddpage}[1][]{}
+% \end{macrocode}
+
+% \iffalse
+%</nextpage>
+% \fi
+
+
+
% \iffalse
%<*nowidow>
% \fi
@@ -19822,9 +20499,10 @@ solid
%
% \changes{v0.20}{2017/01/03}{\pkg{nowidow}: Added.}
%
-% \codehtml
-
+%
% Discard all options for \pkg{lwarp-nowidow}:
+
+% \codehtml
% \begin{macrocode}
\LWR@ProvidesPackageDrop{nowidow}
% \end{macrocode}
@@ -19874,9 +20552,10 @@ solid
%
% \changes{v0.20}{2017/01/11}{\pkg{pagenote}: Added.}
%
-% \codehtml
% Discard all options for \pkg{lwarp-pagenote}:
+
+% \codehtml
% \begin{macrocode}
\LWR@ProvidesPackageDrop{pagenote}
% \end{macrocode}
@@ -19898,7 +20577,35 @@ solid
+
% \clearpage
+
+% \iffalse
+%<*parskip>
+% \fi
+
+% \part{lwarp-parskip.sty}
+
+% \section{Parskip}
+%
+% \DescribePackage{parskip}
+% \pkg{parskip} is ignored.
+%
+% \changes{v0.22}{2017/03/01}{\pkg{parskip}: Added.}
+%
+% \codehtml
+%
+% Discard all options for \pkg{lwarp-parskip}.
+% \begin{macrocode}
+\LWR@ProvidesPackageDrop{parskip}
+% \end{macrocode}
+
+% \iffalse
+%</parskip>
+% \fi
+
+
+
%
% \iffalse
%<*placeins>
@@ -19913,9 +20620,10 @@ solid
%
% \changes{v0.20}{2017/01/19}{\pkg{placeins}: Added.}
%
-% \codehtml
% Discard all options for \pkg{lwarp-placeins}:
+
+% \codehtml
% \begin{macrocode}
\LWR@ProvidesPackageDrop{placeins}
% \end{macrocode}
@@ -19946,9 +20654,10 @@ solid
%
% \changes{v0.20}{2017/01/19}{\pkg{ragged2e}: Added.}
%
-% \codehtml
% Discard all options for \pkg{lwarp-ragged2e}:
+
+% \codehtml
% \begin{macrocode}
\LWR@ProvidesPackageDrop{ragged2e}
% \end{macrocode}
@@ -20029,7 +20738,7 @@ solid
-
+% \clearpage
% \iffalse
%<*setspace>
@@ -20044,9 +20753,10 @@ solid
%
% \changes{v0.20}{2016/12/22}{\pkg{setspace}: Improved support.}
%
-% \codehtml
% Discard all options for \pkg{lwarp-setspace}:
+
+% \codehtml
% \begin{macrocode}
\LWR@ProvidesPackageDrop{setspace}
@@ -20085,8 +20795,136 @@ solid
+% \iffalse
+%<*showkeys>
+% \fi
+
+% \part{lwarp-showkeys.sty}
+
+% \section{Showkeys}
+%
+% \DescribePackage{showkeys}
+% \pkg{showkeys} is ignored.
+%
+% \changes{v0.22}{2017/03/01}{\pkg{showkeys}: Added.}
+%
+% \codehtml
+%
+% Discard all options for \pkg{lwarp-showkeys}:
+% \begin{macrocode}
+\LWR@ProvidesPackageDrop{showkeys}
+% \end{macrocode}
+
+% \begin{macrocode}
+\NewDocumentCommand{\showkeys}{s}{}
+% \end{macrocode}
+
+% \iffalse
+%</showkeys>
+% \fi
+
+
+
+% \clearpage
+
+% \iffalse
+%<*sidecap>
+% \fi
+
+% \part{lwarp-sidecap.sty}
+
+% \section{Sidecap}
+%
+% \DescribePackage{sidecap}
+% \pkg{sidecap} is nullified.
+%
+% \changes{v0.22}{2017/03/01}{\pkg{sidecap}: Added.}
+%
+% \codehtml
+%
+% Discard all options for \pkg{lwarp-sidecap}.
+% \begin{macrocode}
+\LWR@ProvidesPackageDrop{sidecap}
+% \end{macrocode}
+
+% See: \\
+% \href
+% {http://tex.stackexchange.com/questions/45401/use-the-s-star-argument-with-newdocumentenvironment}
+% {\texttt{http://tex.stackexchange.com/questions/45401/ \\
+% use-the-s-star-argument-with-newdocumentenvironment}} \\
+% regarding the creation of starred environments with \pkg{xparse}.
+% \begin{macrocode}
+\NewDocumentEnvironment{SCtable}{soo}
+{\IfValueTF{#3}{\table[#3]}{\table}}
+{\endtable}
+
+\ExplSyntaxOn
+\cs_new:cpn {SCtable*} {\SCtable*}
+\cs_new_eq:cN {endSCtable*} \endSCtable
+\ExplSyntaxOff
+
+
+\NewDocumentEnvironment{SCfigure}{soo}
+{\IfValueTF{#3}{\figure[#3]}{\figure}}
+{\endfigure}
+
+\ExplSyntaxOn
+\cs_new:cpn {SCfigure*} {\SCfigure*}
+\cs_new_eq:cN {endSCfigure*} \endSCfigure
+\ExplSyntaxOff
+
+
+\newenvironment*{wide}{}{}
+% \end{macrocode}
+
+% \iffalse
+%</sidecap>
+% \fi
+
+
+
+
+% \clearpage
+
+% \iffalse
+%<*tabularx>
+% \fi
+
+% \part{lwarp-tabularx.sty}
+
+% \section{Tabularx}
+%
+% \DescribePackage{tabularx}
+% \pkg{tabularx} is emulated by \pkg{lwarp}.
+%
+% \changes{v0.22}{2017/03/01}{\pkg{tabularx}: Added.}
+%
+% \codehtml
+%
+% Discard all options for \pkg{lwarp-tabularx}:
+% \begin{macrocode}
+\LWR@ProvidesPackageDrop{tabularx}
+% \end{macrocode}
+
+% \begin{macrocode}
+\newenvironment{tabularx}[2]
+{\tabular{#2}}
+{\endtabular}
+
+\newenvironment{tabularx*}[2]
+{\tabular{#2}}
+{\endtabular}
+% \end{macrocode}
+
+% \iffalse
+%</tabularx>
+% \fi
+
+
+% \clearpage
+
% \iffalse
%<*textpos>
% \fi
@@ -20102,11 +20940,11 @@ solid
% \pkg{textpos} is emulated during \acro{HTML} output, and
% the \pkg{textpos} package is ignored.
+% \codehtml
% \begin{macrocode}
\LWR@ProvidesPackageDrop{textpos}
% \end{macrocode}
-% \codehtml
% \begin{macrocode}
\NewDocumentEnvironment{textblock}{m r()}{}{}
\NewDocumentEnvironment{textblock*}{m o r()}{}{}
@@ -20217,9 +21055,10 @@ solid
% \changes{v0.20}{2017/01/03}{\pkg{titleps}: Added.}
%
-% \codehtml
%
% Discard all options for \pkg{lwarp-titleps}:
+
+% \codehtml
% \begin{macrocode}
\LWR@ProvidesPackageDrop{titleps}
% \end{macrocode}
@@ -20402,9 +21241,10 @@ solid
% \changes{v0.20}{2017/01/03}{\pkg{titlesec}: Added.}
%
-% \codehtml
%
% Discard all options for \pkg{lwarp-titlesec}:
+
+% \codehtml
% \begin{macrocode}
\LWR@ProvidesPackageDrop{titlesec}
% \end{macrocode}
@@ -20528,9 +21368,10 @@ solid
% \changes{v0.20}{2017/01/03}{\pkg{titletoc}: Added.}
%
-% \codehtml
%
% Discard all options for \pkg{lwarp-titletoc}:
+
+% \codehtml
% \begin{macrocode}
\LWR@ProvidesPackageDrop{titletoc}
% \end{macrocode}
@@ -20652,9 +21493,10 @@ solid
%
% \changes{v0.20}{2017/01/22}{\pkg{titling}: Improved compatibility.}
%
-% \codehtml
%
% Pass all options to \pkg{lwarp-titling}:
+
+% \codehtml
% \begin{macrocode}
\LWR@ProvidesPackagePass{titling}
% \end{macrocode}
@@ -20718,9 +21560,10 @@ solid
% \changes{v0.20}{2017/01/03}{\pkg{tocloft}: Added.}
%
-% \codehtml
%
% Discard all options for \pkg{lwarp-tocloft}:
+
+% \codehtml
% \begin{macrocode}
\LWR@ProvidesPackageDrop{tocloft}
% \end{macrocode}
@@ -21052,9 +21895,11 @@ solid
% \pkg{trivfloat} is forced to use the built-in \pkg{lwarp}
% emulation for floats.
-% \codehtml
-% Discard all options for \pkg{lwarp-trivfloat}:
+% Discard all options for \pkg{lwarp-trivfloat}.
+% This tells \pkg{trivfloat} not to use \pkg{floatrow} or \pkg{memoir}.
+
+% \codehtml
% \begin{macrocode}
\LWR@ProvidesPackageDrop{trivfloat}
\LWR@origRequirePackage{trivfloat}
@@ -21066,14 +21911,6 @@ solid
\begin{warpall}
% \end{macrocode}
-% Package \pkg{trivfloat} is supported via the \pkg{lwarp} emulation of \pkg{float}.
-% For \acro{HTML} usage, use only |\usepackage{trivfloat}|, without any options,
-% \watchout
-% which tells \pkg{trivfloat} to use the emulated \pkg{float} functions instead
-% of using \pkg{floatrow} or \pkg{memoir}.
-
-% ^^A \DescribeMacro{\trivfloat} \marg{type}
-%
% To create a new float type and change its name:
% \begin{Verbatim}[gobble=2,frame=lines,obeytabs,tabsize=4]
% \trivfloat{example}
@@ -21153,8 +21990,88 @@ solid
+% \clearpage
+
+% \iffalse
+%<*verse>
+% \fi
+
+% \part{lwarp-verse.sty}
+% \section{Verse}
+%
+% \DescribePackage{verse}
+% \pkg{verse} is supported and patched by \pkg{lwarp}.
+%
+% \changes{v0.22}{2017/03/02}{\pkg{verse}: Added.}
+%
+% \codehtml
+%
+% Pass all options for \pkg{lwarp-verse}:
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{verse}
+% \end{macrocode}
+%
+% \limitsverse
+%
+% \bigskip
+%
+% \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|.
+% \begin{macrocode}
+\AfterEndPreamble{
+% \end{macrocode}
+% At the beginning of the \env{verse} environment:
+% \begin{macrocode}
+\AtBeginEnvironment{verse}
+{%
+% \end{macrocode}
+% \DescribePackage{verse}\DescribePackage{memoir}\index{memoir>verse}
+% The \pkg{verse} or \pkg{memoir} packages can place stanza numbers to the left
+% with their \cs{flagverse} command. \DescribeMacro{\flagverse}
+% Do not allow them to go into the left margin, which would cause |pdfcrop|
+% to crop the entire page further to the left:
+% \DescribeLength{vleftskip}
+% \begin{macrocode}
+\ifdef{\vleftskip}{%
+\setlength{\vleftskip}{\HTMLvleftskip}
+\setlength{\leftmargini}{\HTMLleftmargini}
+}{}
+\LWR@atbeginverbatim{verse}
+\unskip\vspace{-\baselineskip}
+}
+% \end{macrocode}
+% After the end of the \env{verse} environment, which places the |pre| tag at the
+% regular left margin:
+% \begin{macrocode}
+\AfterEndEnvironment{verse}{
+\unskip\vspace{-\baselineskip}
+\LWR@afterendverbatim
+}
+% \end{macrocode}
+% Patch to place poemtitle inside an \acro{HTML} span of class |poemtitle|:
+% \begin{macrocode}
+\ifdef{\poemtitle}{
+\DeclareDocumentCommand{\@vstypeptitle}{m}{%
+ \vspace{\beforepoemtitleskip}%
+ {\InlineClass{poemtitle}{\poemtitlefont #1}\par}%
+ \vspace{\afterpoemtitleskip}%
+ }
+}{}
+
+}
+% \end{macrocode}
+% \end{environment}
+
+% \iffalse
+%</verse>
+% \fi
+
+
+% \clearpage
+%
% \iffalse
%<*wallpaper>
% \fi
@@ -21170,11 +22087,11 @@ solid
% \pkg{wallpaper} is emulated during \acro{HTML} output, and
% the \pkg{wallpaper} package is ignored.
+% \codehtml
% \begin{macrocode}
\LWR@ProvidesPackageDrop{wallpaper}
% \end{macrocode}
-% \codehtml
% \begin{macrocode}
\newcommand*{\CenterWallPaper}[2]{}
\newcommand*{\ThisCenterWallPaper}[2]{}
@@ -21202,7 +22119,8 @@ solid
-
+% \clearpage
+%
% \iffalse
%<*wrapfig>
% \fi
@@ -21218,13 +22136,11 @@ solid
% \pkg{wrapfig} is emulated during \acro{HTML} output, and
% the \pkg{wrapfig} package is ignored.
+% \codehtml
% \begin{macrocode}
\LWR@ProvidesPackageDrop{wrapfig}
% \end{macrocode}
-% \codehtml
-
-
% Computed width of a wrapped object.
% Used to print the \acro{HTML} style.
% \begin{macrocode}
@@ -21312,6 +22228,7 @@ style="width:\rndprintlength{\LWR@wrapwidth} ; %
% \section{Xcolor}
%
% \DescribePackage{xcolor}
+% \pkg{xcolor} is supported by lwarp.
%
% \limitsxcolor
@@ -21380,15 +22297,17 @@ style="width:\rndprintlength{\LWR@wrapwidth} ; %
% ^^A \end{macro}
-% \DescribeMacro{\color} appears in the \LaTeX{} \acro{PDF} output, but is ignored by
-% |pdftotext| and thus is ignored in the \acro{HTML} file. Text styling by local group
-% is not yet supported.
+% ^^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.
+% 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.
-% ^^A \begin{macro}{\textcolor} \oarg{model} \marg{color} \marg{text}
-%
+% ^^A \begin{macro}{\textcolor}
+% \cs{textcolor}
+% \oarg{model} \marg{color} \marg{text}
% is converted into an \acro{HTML} hex color span.
% \begin{macrocode}
\NewDocumentCommand{\LWR@textcolor}{O{named} m +m}{%
@@ -21399,17 +22318,19 @@ style="width:\rndprintlength{\LWR@wrapwidth} ; %
% \end{macrocode}
% ^^A \end{macro}
-% ^^A \begin{macro}{\pagecolor} \oarg{model} \marg{color}
-%
-% Ignored. Use |\NewCSS| instead.
+% ^^A \begin{macro}{\pagecolor}
+% \cs{pagecolor}
+% \oarg{model} \marg{color}
+% is ignored. Use |\NewCSS| instead.
% \begin{macrocode}
\newcommand*{\LWR@pagecolor}[2][named]{}
% \end{macrocode}
% ^^A \end{macro}
-% ^^A \begin{macro}{\colorbox} \oarg{model} \marg{color} \marg{text}
-%
+% ^^A \begin{macro}{\colorbox}
+% \cs{colorbox}
+% \oarg{model} \marg{color} \marg{text}
% is converted into an \acro{HTML} hex background color span.
%
% \begin{macrocode}
@@ -21422,8 +22343,8 @@ style="width:\rndprintlength{\LWR@wrapwidth} ; %
% ^^A \end{macro}
% ^^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.
%
% \begin{macrocode}