From 378b2ba55f417b42b93d9edb06dd4d007872f8b9 Mon Sep 17 00:00:00 2001
From: Norbert Preining <norbert@preining.info>
Date: Fri, 8 Nov 2019 03:00:45 +0000
Subject: CTAN sync 201911080300

---
 macros/latex/contrib/lwarp/lwarp.dtx | 627 +++++++++++++++++++++--------------
 1 file changed, 386 insertions(+), 241 deletions(-)

(limited to 'macros/latex/contrib/lwarp/lwarp.dtx')

diff --git a/macros/latex/contrib/lwarp/lwarp.dtx b/macros/latex/contrib/lwarp/lwarp.dtx
index 6cc5665d1a..e52d6bfdb3 100644
--- a/macros/latex/contrib/lwarp/lwarp.dtx
+++ b/macros/latex/contrib/lwarp/lwarp.dtx
@@ -16,7 +16,7 @@
 % \iffalse
 %<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
 %<package>\ProvidesPackage{lwarp}
-%<package>    [2019/10/15 v0.77  Allows LaTeX to directly produce HTML5 output.]
+%<package>    [2019/11/07 v0.78  Allows LaTeX to directly produce HTML5 output.]
 %
 %<*driver>
 \documentclass{ltxdoc}
@@ -337,9 +337,9 @@ Keywords={LaTeX, HTML, conversion}%
 \small
 See the \nameref{sec:indexgen} for ``how-to'', and
 the \nameref{sec:indextrb} if something doesn't work.
+A \nameref{sec:troubleshooting} section is also available.
 The \nameref{sec:indexidx} contains automated entries for each package, macro, environment,
 counter, boolean, and other objects; individually and also sorted by category.
-A \nameref{sec:troubleshooting} section is also available.
 \smallskip
 \hrule
 \end{minipage}\margintag{Need help?}
@@ -1002,7 +1002,7 @@ While emulating \pkg{memoir}, \pkg{lwarp} pre-loads
 a number of packages (\cref{sec:patch-memoir-packages}).
 This can cause an options clash when the user's document later loads the same
 \trouble[options clash]{memoir=\pkg{memoir}>options clash}
-\trouble{options clash>memoir=\pkg{memoir}}
+\trouble{options>clash with \pkg{memoir}}
 packages with options.  To fix this problem, specify the options before
 loading \pkg{lwarp}:
 \begin{sourcedisplay}
@@ -2348,18 +2348,31 @@ Subtitles are in a \element{div} of class |mdframedsubtitle|,
 and likewise for subsubtitles.
 }
 
-\newcommand{\limitscaption}{%
-To pass options to caption, select the options before loading \pkg{lwarp}:
-\trouble[options]{caption=\pkg{caption}>options}
+\newcommand{\limitspackageloading}{%
+Package options may cause problems with \pkg{lwarp}, especially if
+they include curley braces.
+
+If selecting options with braces in \cs{usepackage} does not work:
 \begin{sourcedisplay}
-\cs{documentclass}\{article\} \\
-\dots \\
-\cs{PassOptionsToPackage}\{options\_list\}\{caption\} \\
+\cs{usepackage}[font=\textred{\{}it,small\textred{\}}]\{caption\}\% does not work
+\end{sourcedisplay}
+\dots\ try instead selecting the package options before loading \pkg{lwarp}:
+\begin{sourcedisplay}
+\cs{PassOptionsToPackage}\{font=\{it,small\}\}\{caption\} \\
 \dots \\
 \cs{usepackage\{lwarp\}} \\
 \dots \\
 \cs{usepackage\{caption\}}
 \end{sourcedisplay}
+\dots\ or try setting package options after the package has been loaded:
+\begin{sourcedisplay}
+\cs{usepackage}\{caption\} \\
+\cs{captionsetup}\{font=\{it,small\}\}
+\end{sourcedisplay}
+}
+
+\newcommand{\limitscaption}{%
+\limitspackageloading
 
 To ensure proper float numbering, set caption positions
 such as:
@@ -2679,7 +2692,7 @@ This boolean may be tested by the user for later use.
 %<*package>
 % \fi
 %
-% \CheckSum{33423}
+% \CheckSum{33374}
 %
 % \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
@@ -2799,6 +2812,7 @@ This boolean may be tested by the user for later use.
 % \changes{v0.75}{2019/09/23}{\ 2019/09/23}
 % \changes{v0.76}{2019/10/08}{\ 2019/10/08}
 % \changes{v0.77}{2019/10/15}{\ 2019/10/15}
+% \changes{v0.78}{2019/11/07}{\ 2019/11/07}
 
 
 
@@ -3019,6 +3033,22 @@ This boolean may be tested by the user for later use.
 %
 % \begin{description}
 % \needspace{2\baselineskip}
+% \item[v0.78:] Fixes for support files, \attribute{alt} tags, hyperlinks, and the 2019/10 \LaTeX\ release.
+%   \begin{itemize}
+%       \item Docs: Improved documentation regarding package options.
+%           \margintag{docs}
+%           See \cref{sec:thingstoavoid}.
+%       \item Fix to overwrite existing support files
+%           using new \env{filecontents} environment.
+%       \item \pkg{breqn}: Previously broken by the 2019/10 \LaTeX\ update, but
+%           \margintag{packages}
+%           now working again.
+%       \item \pkg{graphics}: Fix for \cs{includegraphics} \attribute{alt} tags.
+%       \item \pkg{babel-french}: Fix for hyperlinks.
+%       \item \pkg{media9}, \pkg{movie15}, \pkg{multimedia}: Fix for the 2019/10 \LaTeX\ update.
+%       \item \pkg{accessibility}: Added.
+%   \end{itemize}
+% \needspace{2\baselineskip}
 % \item[v0.77:] Updates to fix recently-broken packages.
 %   \begin{itemize}
 %       \item \pkg{booktabs}: Updated to v1.6180339.
@@ -5039,7 +5069,7 @@ This boolean may be tested by the user for later use.
 %
 % \midrule
 %
-% Accessibility: & \ipkg{accsupp}, \ipkg{axessibility}. \\
+% Accessibility: & \epkg{accessibility}, \ipkg{accsupp}, \ipkg{axessibility}. \\
 %
 % \midrule
 %
@@ -6318,7 +6348,7 @@ This boolean may be tested by the user for later use.
 % \begin{enumerate}
 %   \item Declare the \cs{documentclass}.
 %   \item Load text fonts.
-%   \item Load \pkg{inputenc} or \pkg{inputenx}, \pkg{fontenc}, and/or \pkg{fontspec}.
+%   \item Load \pkg{inputenc} or \pkg{inputenx}, \pkg{fontenc}, or \pkg{fontspec}.
 %   \item Load \pkg{lwarp}.
 %   \item Load remaining packages.
 % \end{enumerate}
@@ -6335,10 +6365,15 @@ This boolean may be tested by the user for later use.
 %   \item \limitsmathinsectionnames
 %   \item \limitsincludegraphicsscale
 %   \item Possible changes to \env{tabular} environments include:
+%       \watchout[tabular]
 %       |*| columns, \pkg{multirow}, \pkg{longtable}, \pkg{supertabular}, \pkg{xtab},
 %       \pkg{bigdelim}.  See \cref{sec:limitstabular}.
+%   \item If using braces in package options,
+%       \watchout[package options]
+%       such as with \pkg{caption}, see \cref{sec:thingstoavoid}.
 %   \item Possible option clashes with \pkg{memoir}.  See \cref{sec:limitsmemoir}.
 %   \item If using indexes, see \cref{sec:indexsetup}.
+%       \watchout[indexes]
 %   \item If using many indexes, glossaries, |.aux| files, etc.,
 %       see \cref{sec:indexsetup} regarding \pkg{morewrites}.
 %       If \pkg{morewrites} is already used, be sure to add the setup with |allocate=10|.
@@ -7820,7 +7855,7 @@ This boolean may be tested by the user for later use.
 % \cs{HTMLAuthor} may be used to set the meta tag to a simple list of names.
 %
 %
-%
+% \clearpage
 %
 % \section{Special cases and limitations}
 % \label{sec:limitations}
@@ -7843,6 +7878,12 @@ This boolean may be tested by the user for later use.
 % In the document, avoid the following:
 %
 % \begin{description}
+%   \item [Package options:] \
+%       \trouble[options with braces]{options>with braces}
+%       \trouble{caption=\pkg{caption}>options}
+%       \trouble{package>options with braces}
+%       \trouble{Missing \cs{begin}\{document\}>package options}
+%       \limitspackageloading
 %   \item [\texttt{page} counter:] Do not adjust the \texttt{page} counter.
 %       If doing so is required for the print version, place the
 %       adjustment inside a \env{warpprint} environment.
@@ -9254,6 +9295,7 @@ This boolean may be tested by the user for later use.
 %
 % \DescribePackage{caption}
 % \DescribePackage{subcaption}
+% \label{sec:limitscaption}
 % \limitscaption
 %
 %
@@ -10524,6 +10566,12 @@ This boolean may be tested by the user for later use.
 %
 %       \item [Options clash:] If using \pkg{memoir}, see \cref{sec:limitsmemoir}.
 %
+%       \item [``Missing \cs{begin}\{document\}.'':]
+%           Some packages require that their options be
+%           specified before \pkg{lwarp} is loaded, or via the package's setup
+%           macro, especially if these options include the use of braces.
+%           See \cref{sec:thingstoavoid}.
+%
 %       \item [``No room for a new \cs{write}.'':] Before |\usepackage{lwarp}|, add:
 %           \trouble{No room for a new \cs{write}}
 %           \trouble{morewrites}
@@ -11395,6 +11443,7 @@ This boolean may be tested by the user for later use.
 \LWR@loadafter{a5comb}
 \LWR@notmemoirloadafter{abstract}
 \LWR@loadafter{academicons}
+\LWR@loadafter{accessibility}
 \LWR@loadafter{accsupp}
 \LWR@loadafter{acro}
 \LWR@loadafter{acronym}
@@ -13386,31 +13435,56 @@ This boolean may be tested by the user for later use.
 
 % \DescribePackage{filecontents}
 %
-% Used to write helper files, done in print mode.
-%
-% Patched to work with \pkg{morewrites}, per
-% \href
-%	{https://tex.stackexchange.com/questions/312830/does-morewrites-not-support-filecontents-and-can-i-write-body-of-environment-us/312910}
-%	{\texttt{https://tex.stackexchange.com/questions/312830/\\
-%		does-morewrites-not-support-filecontents-and-can-i-write-body-of-environment-us/\\
-%		312910}}
+% Used to write helper files while creating the print version.
 %
 % \changes{v0.34}{2017/08/02}{\pkg{filecontents}: Required.  Patched for \pkg{morewrites}.}
+% \changes{v0.78}{2019/11/05}{\pkg{filecontents}: Fix to overwrite existing files using new \env{filecontents} environment.}
 %
-% (Recent versions of \LaTeX\ (as of Fall 2019) now include the functionality
-% of the \pkg{filecontents} package, but the package will still be used
-% for those who still have older installations.)
+% Recent versions of \LaTeX\ (as of Fall 2019) now include the functionality
+% of the \pkg{filecontents} package, but with a new optional argument
+% used to specify whether to force the overwriting of an existing file.
+% If an older \LaTeX\ kernel is used, the original \pkg{filecontents} package is used,
+% but it is patched to throw away the new optional argument.
 %
 %    \begin{macrocode}
-\RequirePackage{filecontents}
+\@ifundefined{filec@ntents@opt}{% older kernel, discard optional args
 
-\@ifpackagelater{filecontents}{2011/10/09}%
-{}
-{
-\newwrite\fcwrite
-\let\LWR@origfilec@ntents\filec@ntents
-\def\filec@ntents{\def\chardef##1\write{\let\reserved@c\fcwrite}\LWR@origfilec@ntents}
-}
+    \RequirePackage{filecontents}
+
+    \LetLtxMacro\LWR@orig@filec@ntents\filec@ntents
+
+    \@ifpackagelater{filecontents}{2011/10/08}
+    {
+%    \end{macrocode}
+% For a newer version of the \pkg{filecontents} package, simply
+% discard the optional argument.
+%    \begin{macrocode}
+        \renewcommand*{\filec@ntents}[1][]{\LWR@orig@filec@ntents}
+    }
+    {% patch older package for morewrites
+%    \end{macrocode}
+% For an older version of \pkg{filecontents},
+% discard the optional argument, and also patch to work with \pkg{morewrites}, per
+% \href
+%   {https://tex.stackexchange.com/questions/312830/does-morewrites-not-support-filecontents-and-can-i-write-body-of-environment-us/312910}
+%   {\texttt{https://tex.stackexchange.com/questions/312830/\\
+%       does-morewrites-not-support-filecontents-and-can-i-write-body-of-environment-us/\\
+%       312910}}
+%    \begin{macrocode}
+        \newwrite\fcwrite
+        \renewcommand*{\filec@ntents}[1][]{%
+            \def\chardef##1\write{\let\reserved@c\fcwrite}%
+            \LWR@orig@filec@ntents%
+        }
+    }
+
+}% older kernel
+{% newer kernel
+%    \end{macrocode}
+% For a newer kernel with a \env{filecontents} environment which accepts the
+% optional \optn{overwrite} argument, use the environment as-is.
+%    \begin{macrocode}
+}% newer kernel, filecontents env accepts optional args, do not load package
 %    \end{macrocode}
 
 %    \begin{macrocode}
@@ -13559,6 +13633,7 @@ This boolean may be tested by the user for later use.
 % Remember the original \cs{RequirePackage}:
 %    \begin{macrocode}
 \LetLtxMacro\LWR@origRequirePackage\RequirePackage
+\LetLtxMacro\LWR@origRequirePackageWithOptions\RequirePackageWithOptions
 %    \end{macrocode}
 
 % \begin{macro}{\LWR@requirepackagenames}
@@ -13792,13 +13867,13 @@ This boolean may be tested by the user for later use.
 \IfValueTF{#1}%
 {% options given
     \IfValueTF{#3}% version given?
-    {\LWR@origRequirePackage[#1]{\LWR@parsedrequirepackagenames}[#3]}%
-    {\LWR@origRequirePackage[#1]{\LWR@parsedrequirepackagenames}}%
+        {\LWR@origRequirePackage[#1]{\LWR@parsedrequirepackagenames}[#3]}%
+        {\LWR@origRequirePackage[#1]{\LWR@parsedrequirepackagenames}}%
 }%
 {% no options given
     \IfValueTF{#3}% version given?
-    {\LWR@origRequirePackage{\LWR@parsedrequirepackagenames}[#3]}%
-    {\LWR@origRequirePackage{\LWR@parsedrequirepackagenames}}%
+        {\LWR@origRequirePackage{\LWR@parsedrequirepackagenames}[#3]}%
+        {\LWR@origRequirePackage{\LWR@parsedrequirepackagenames}}%
 }%
 }
 \LetLtxMacro\usepackage\RequirePackage
@@ -13824,13 +13899,15 @@ This boolean may be tested by the user for later use.
     Using package `#1' and adding lwarp modifications,\MessageBreak
     including options,}%
 \IfValueTF{#2}
-{\ProvidesPackage{lwarp-#1}[#2]}
-{\ProvidesPackage{lwarp-#1}}
-\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{#1}}
-\ProcessOptions\relax
-\IfValueTF{#2}
-{\LWR@origRequirePackage{#1}[#2]}
-{\LWR@origRequirePackage{#1}}
+    {\ProvidesPackage{lwarp-#1}[#2]}
+    {\ProvidesPackage{lwarp-#1}}
+\DeclareOption*{%
+    \PassOptionsToPackage{\CurrentOption}{#1}%
+}
+\ProcessOptions\relax%
+\IfValueTF{#2}%
+    {\LWR@origRequirePackage{#1}[#2]}%
+    {\LWR@origRequirePackage{#1}}%
 %    \end{macrocode}
 % In some cases, the following seems to be required
 % to avoid an ``unknown option'' error, such
@@ -13838,7 +13915,7 @@ This boolean may be tested by the user for later use.
 % \changes{v0.62}{2018/11/11}{Fix: Unknown option error.}
 %    \begin{macrocode}
 \DeclareOption*{}%
-\ProcessOptions\relax
+\ProcessOptions\relax%
 }
 %    \end{macrocode}
 % \end{macro}
@@ -15386,7 +15463,7 @@ This boolean may be tested by the user for later use.
 % \codeconfig
 %    \begin{macrocode}
 \begin{LWRwriteconf}
-\begin{filecontents*}{lwarp.css}
+\begin{filecontents*}[overwrite]{lwarp.css}
 /*
   CSS stylesheet for the LaTeX lwarp package
   Copyright 2016-2019 Brian Dunn — BD Tech Concepts LLC
@@ -17016,7 +17093,7 @@ span.sidetocthetitle { display: none }
 % \codeconfig
 %    \begin{macrocode}
 \begin{LWRwriteconf}
-\begin{filecontents*}{lwarp_sagebrush.css}
+\begin{filecontents*}[overwrite]{lwarp_sagebrush.css}
 @import url("lwarp.css") ;
 
 
@@ -17287,7 +17364,7 @@ nav.sidetoc a:hover {
 % \codeconfig
 %    \begin{macrocode}
 \begin{LWRwriteconf}
-\begin{filecontents*}{lwarp_formal.css}
+\begin{filecontents*}[overwrite]{lwarp_formal.css}
 @import url("lwarp.css") ;
 
 
@@ -17504,7 +17581,7 @@ nav.botnavigation {
 % \codeconfig
 %    \begin{macrocode}
 \begin{LWRwriteconf}
-\begin{filecontents*}{sample_project.css}
+\begin{filecontents*}[overwrite]{sample_project.css}
 /* ( --- Start of project.css --- ) */
 /* ( --- A sample project-specific CSS file for lwarp --- ) */
 
@@ -17541,7 +17618,7 @@ nav.botnavigation {
 % \codeconfig
 %    \begin{macrocode}
 \begin{LWRwriteconf}
-\begin{filecontents*}{lwarp.ist}
+\begin{filecontents*}[overwrite]{lwarp.ist}
 preamble
 "\\begin{theindex}
   \\providecommand*\\lettergroupDefault[1]{}
@@ -17591,7 +17668,7 @@ page_compositor "."
 % \codeconfig
 %    \begin{macrocode}
 \begin{LWRwriteconf}
-\begin{filecontents*}{lwarp.xdy}
+\begin{filecontents*}[overwrite]{lwarp.xdy}
 (require "tex/inputenc/latin.xdy")
 (merge-rule "\\PS *" "Postscript")
 (require "texindy.xdy")
@@ -17709,7 +17786,7 @@ page_compositor "."
 % \codeconfig
 %    \begin{macrocode}
 \begin{LWRwriteconf}
-\begin{filecontents*}{lwarp_mathjax.txt}
+\begin{filecontents*}[overwrite]{lwarp_mathjax.txt}
 <!-- https://groups.google.com/forum/#!topic/
                                mathjax-users/jUtewUcE2bY -->
 <script type="text/x-mathjax-config">
@@ -17942,13 +18019,13 @@ src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.6/MathJax.js?config=TeX-
 %
 % ^^A *lwarpmk.lua
 %    \begin{macrocode}
-\begin{filecontents*}{lwarpmk.lua}
+\begin{filecontents*}[overwrite]{lwarpmk.lua}
 #!/usr/bin/env texlua
 
 -- Copyright 2016-2019 Brian Dunn
 
 
-printversion = "v0.77"
+printversion = "v0.78"
 requiredconfversion = "2" -- also at *lwarpmk.conf
 
 function printhelp ()
@@ -19909,6 +19986,16 @@ end -- not --version
 \providecommand*{\LWR@FBcancel}{}
 
 \AtBeginDocument{%
+%    \end{macrocode}
+% In some circumstances, \cs{NoAutoSpacing} may be defined when \cs{frenchbsetup} is not.
+% \changes{v0.78}{2019/10/29}{\pkg{babel-french}: Fix: Hyperlinks.}
+%    \begin{macrocode}
+\@ifundefined{NoAutoSpacing}%
+    {}%
+    {%
+        \LetLtxMacro\LWR@FBcancel\NoAutoSpacing%
+    }%
+
 \@ifundefined{frenchbsetup}%
 {}%
 {%
@@ -19917,7 +20004,6 @@ end -- not --version
 % ^^A OR: redefine \insertfootnotemarkFB?
 %    \begin{macrocode}
 %
-    \LetLtxMacro\LWR@FBcancel\NoAutoSpacing%
     \renewrobustcmd*{\FBcolonspace}{%
         \begingroup%
         \LWR@FBcancel%
@@ -29009,11 +29095,11 @@ rowspan="#2" %
 % then nullify the autospacing commands inside the tabular,
 % since they were not compatible with the tabular column parsing code,
 % which uses \pkg{xstring}.
-% \changes{v0.41}{2017/10/06}{Fix: \cs{NoAutoSpacing} in a tabular
-%   with \pkg{babel-french}.}
+% \changes{v0.41}{2017/10/06}{\pkg{babel-french}: Fix: \cs{NoAutoSpacing} in a tabular.}
+% \changes{v0.78}{2019/10/29}{\pkg{babel-french}: Fix: Hyperlinks.}
 %    \begin{macrocode}
 \AtBeginDocument{
-\@ifundefined{frenchbsetup}%
+\@ifundefined{NoAutoSpacing}%
 {% no babel-french
     \newcommand*{\LWR@nullifyNoAutoSpacing}{}
 }% no babel-french
@@ -29889,6 +29975,8 @@ rowspan="#2" %
 %    \end{macrocode}
 % \end{macro}
 
+
+
 % \subsection{Hyper-references}
 %
 % Note that the code currently only sanitizes the underscore character.
@@ -29925,6 +30013,46 @@ autopage-\theLWR@currentautosec%
 % \end{macro}
 
 
+% \begin{macro}{\LWR@linkcatcodes}
+% Sets catcodes before processing macros which have hyperlinks as arguments.
+% \changes{v0.78}{2019/10/29}{Factored.}
+%    \begin{macrocode}
+\newcommand*{\LWR@linkcatcodes}{%
+    \catcode`\#=12%
+    \catcode`\%=12%
+    \catcode`\&=12%
+    \catcode`\~=12%
+    \catcode`\_=12%
+%    \end{macrocode}
+% For \pkg{babel-french}:
+% \changes{v0.78}{2019/10/29}{\pkg{babel-french}: Fix: Hyperlinks.}
+%    \begin{macrocode}
+    \LWR@FBcancel%
+}
+%    \end{macrocode}
+% \end{macro}
+
+
+% \begin{macro}{\LWR@linkmediacatcodes}
+% Sets catcodes before processing macros which have hyperlinks as arguments.
+% Modified for multimedia links.
+% \changes{v0.78}{2019/10/29}{Factored.}
+%    \begin{macrocode}
+\newcommand*{\LWR@linkmediacatcodes}{%
+    \catcode`\#=12%
+    \catcode`\%=12%
+%   \catcode`\&=12% left alone for splitting flash variables
+    \catcode`\~=12%
+    \catcode`\_=12%
+%    \end{macrocode}
+% For \pkg{babel-french}:
+% \changes{v0.78}{2019/10/29}{\pkg{babel-french}: Fix: Hyperlinks.}
+%    \begin{macrocode}
+    \LWR@FBcancel%
+}
+%    \end{macrocode}
+% \end{macro}
+
 
 % \begin{macro}{\LWR@subhyperref} \marg{URL}
 %
@@ -29937,13 +30065,13 @@ autopage-\theLWR@currentautosec%
 % \changes{v0.57}{2018/06/05}{Fix: Text catcodes.}
 %    \begin{macrocode}
 \NewDocumentCommand{\LWR@subhyperref}{m}{%
-\LWR@traceinfo{LWR@subhyperref !#1!}%
-\LWR@sanitize{#1}%
-\LWR@htmltag{%
-    a href="\LWR@sanitized" % space
-    \LWR@addlinktitle % space
-    target="\_{}blank" % space
-}%
+    \LWR@traceinfo{LWR@subhyperref !#1!}%
+    \LWR@sanitize{#1}%
+    \LWR@htmltag{%
+        a href="\LWR@sanitized" % space
+        \LWR@addlinktitle % space
+        target="\_{}blank" % space
+    }%
 }
 %    \end{macrocode}
 % \end{macro}
@@ -29956,9 +30084,9 @@ autopage-\theLWR@currentautosec%
 % \changes{v0.57}{2018/06/05}{Fix: Text catcodes.}
 %    \begin{macrocode}
 \newcommand{\LWR@subhyperreftext}[1]{%
-#1%
-\LWR@htmltag{/a}%
-\LWR@ensuredoingapar%
+    #1%
+    \LWR@htmltag{/a}%
+    \LWR@ensuredoingapar%
 }
 %    \end{macrocode}
 % \end{macro}
@@ -29968,17 +30096,18 @@ autopage-\theLWR@currentautosec%
 % \changes{v0.18}{2016/04/14}{Improved \HTML\ output linebreaks.}
 % \changes{v0.45}{2017/12/29}{Improved URLs with underscores.}
 % \changes{v0.66}{2019/02/02}{Improved \HTML\ formatting.}
+% \changes{v0.78}{2019/11/05}{Remove extra space.}
 %    \begin{macrocode}
 \NewDocumentCommand{\LWR@subhyperrefclass}{m +m m}{%
-\LWR@htmltag{%
-    a % space
-    href="\begingroup\@sanitize#1\endgroup" % space
-    class="#3" % space
-    \LWR@addlinktitle % space
-}\LWR@orignewline%
-#2\LWR@orignewline%
-\LWR@htmltag{/a}%
-\LWR@ensuredoingapar%
+    \LWR@htmltag{%
+        a % space
+        href="\begingroup\@sanitize#1\endgroup" % space
+        class="#3" % space
+        \LWR@addlinktitle % space
+    }\LWR@orignewline%
+    #2%
+    \LWR@htmltag{/a}%
+    \LWR@ensuredoingapar%
 }
 %    \end{macrocode}
 % \end{macro}
@@ -29995,20 +30124,16 @@ autopage-\theLWR@currentautosec%
 % \changes{v0.57}{2018/06/05}{Fix: Text catcodes.}
 %    \begin{macrocode}
 \DeclareDocumentCommand{\LWR@hrefb}{O{} m}{%
-\LWR@ensuredoingapar%
-\LWR@subhyperref{#2}%
-\endgroup% restore catcodes
-\LWR@subhyperreftext%
+    \LWR@ensuredoingapar%
+    \LWR@subhyperref{#2}%
+    \endgroup% restore catcodes
+    \LWR@subhyperreftext%
 }
 
 \newrobustcmd*{\href}{%
-\begingroup%
-\catcode`\#=12%
-\catcode`\%=12%
-\catcode`\&=12%
-\catcode`\~=12%
-\catcode`\_=12%
-\LWR@hrefb%
+    \begingroup%
+    \LWR@linkcatcodes%
+    \LWR@hrefb%
 }
 %    \end{macrocode}
 % \end{macro}
@@ -30021,21 +30146,17 @@ autopage-\theLWR@currentautosec%
 % \changes{v0.52}{2018/03/26}{Fix: \progcode{\#}, \progcode{\%}, \progcode{\&}, \progcode{\~}, \progcode{\_} in \URL.}
 %    \begin{macrocode}
 \newcommand*{\LWR@nolinkurlb}[1]{%
-\LWR@ensuredoingapar%
-\def\LWR@templink{#1}%
-\@onelevel@sanitize\LWR@templink%
-\LWR@templink%
-\endgroup%
+    \LWR@ensuredoingapar%
+    \def\LWR@templink{#1}%
+    \@onelevel@sanitize\LWR@templink%
+    \LWR@templink%
+    \endgroup%
 }
 
 \newrobustcmd*{\nolinkurl}{%
-\begingroup%
-\catcode`\#=12%
-\catcode`\%=12%
-\catcode`\&=12%
-\catcode`\~=12%
-\catcode`\_=12%
-\LWR@nolinkurlb%
+    \begingroup%
+    \LWR@linkcatcodes%
+    \LWR@nolinkurlb%
 }
 %    \end{macrocode}
 % \end{macro}
@@ -30054,21 +30175,17 @@ autopage-\theLWR@currentautosec%
 % \changes{v0.52}{2018/03/26}{Fix: \progcode{\#}, \progcode{\%}, \progcode{\&}, \progcode{\~}, \progcode{\_} in \URL.}
 %    \begin{macrocode}
 \DeclareDocumentCommand{\LWR@urlb}{m}{%
-\LWR@ensuredoingapar%
-\def\LWR@templink{#1}%
-\@onelevel@sanitize\LWR@templink%
-\href{\LWR@templink}{\LWR@templink}%
-\endgroup%
+    \LWR@ensuredoingapar%
+    \def\LWR@templink{#1}%
+    \@onelevel@sanitize\LWR@templink%
+    \href{\LWR@templink}{\LWR@templink}%
+    \endgroup%
 }
 
 \newrobustcmd*{\url}{%
-\begingroup%
-\catcode`\#=12%
-\catcode`\%=12%
-\catcode`\&=12%
-\catcode`\~=12%
-\catcode`\_=12%
-\LWR@urlb%
+    \begingroup%
+    \LWR@linkcatcodes%
+    \LWR@urlb%
 }
 %    \end{macrocode}
 % \end{macro}
@@ -36147,8 +36264,10 @@ color:\LWR@origpound\LWR@tempcolor%
 % \end{macro}
 
 % \begin{macro}{\normalfont}
+% \changes{v0.78}{2019/11/05}{Uses \cs{LWR@formatted}.}
 %    \begin{macrocode}
-\renewrobustcmd*{\normalfont}{\rmfamily\mdseries\upshape\ulcshape}
+\newrobustcmd*{\LWR@HTML@normalfont}{\rmfamily\mdseries\upshape\ulcshape}
+\LWR@formatted{normalfont}
 %    \end{macrocode}
 % \end{macro}
 
@@ -37801,6 +37920,72 @@ color:\LWR@origpound\LWR@tempcolor%
 %
 %
 %
+%
+% \iffalse
+%<*afterpage>
+% \fi
+%
+% \part{lwarp-afterpage.sty}
+%
+% \section{afterpage}
+%
+% \credits{David Carlisle}
+%
+% \DescribePackage{afterpage} \pkg{afterpage} is emulated.
+%
+% \changes{v0.20}{2017/01/11}{\pkg{afterpage}: Added.}
+%
+% \codehtml
+%
+% Discard all options for \pkg{lwarp-afterpage}:
+%    \begin{macrocode}
+\LWR@ProvidesPackageDrop{afterpage}[2014/10/28]
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\newcommand{\afterpage}[1]{#1}
+%    \end{macrocode}
+%
+% \iffalse
+%</afterpage>
+% \fi
+%
+%
+%
+%
+%
+%
+% \iffalse
+%<*accessibility>
+% \fi
+%
+% \part{lwarp-accessibility.sty}
+%
+% \section{accessibility}
+%
+% \DescribePackage{accessibility} \pkg{accessibility} is emulated.
+%
+% \changes{v0.78}{2019/10/17}{\pkg{accessibility}: Added.}
+%
+% \codehtml
+%
+% Discard all options for \pkg{lwarp-accessibility}:
+%    \begin{macrocode}
+\LWR@ProvidesPackageDrop{accessibility}[2019/10/14]
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\newcommand{\alt}[1]{\ThisAltText{#1}}
+\newcommand{\newhref}[3]{\ThisAltText{#2}\href{#1}{#3}}%
+\providecommand{\thead}[1]{\textbf{#1}}
+%    \end{macrocode}
+%
+% \iffalse
+%</accessibility>
+% \fi
+%
+%
+%
 % \iffalse
 %<*accsupp>
 % \fi
@@ -41063,20 +41248,16 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"%
 \LetLtxMacro\burl\url
 
 \NewDocumentCommand{\LWR@burlaltb}{O{} +m m}{%
-\LWR@ensuredoingapar%
-\LWR@subhyperref{#2}%
-\LWR@subhyperreftext{#3}%
-\endgroup% restore catcodes
+    \LWR@ensuredoingapar%
+    \LWR@subhyperref{#2}%
+    \LWR@subhyperreftext{#3}%
+    \endgroup% restore catcodes
 }
 
 \newrobustcmd*{\burlalt}{%
-\begingroup%
-\catcode`\#=12%
-\catcode`\%=12%
-\catcode`\&=12%
-\catcode`\~=12%
-\catcode`\_=12%
-\LWR@burlaltb%
+    \begingroup%
+    \LWR@linkcatcodes%
+    \LWR@burlaltb%
 }
 
 \LetLtxMacro\urlalt\burlalt
@@ -41411,7 +41592,15 @@ s%
 %
 % \codehtml
 %
+% \changes{v0.78}{2019/10/30}{\pkg{caption}: Added warning regarding passing options.}
 %    \begin{macrocode}
+\typeout{---}
+\typeout{Packages lwarp and caption:}
+\typeout{If a ``Missing \protect\begin\protect{document\protect}'' error occurs here,}
+\typeout{try using \space \protect\usepackage\protect{caption\protect}\space\protect\captionsetup{options}}
+\typeout{instead of \protect\usepackage[options]\protect{caption\protect}.}
+\typeout{---}
+
 \LWR@ProvidesPackagePass{caption}[2019/09/01]
 %    \end{macrocode}
 
@@ -49048,27 +49237,12 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space
 \ifbool{LWR@allowanothergeometry}{%
 %    \end{macrocode}
 %
-% Gather all options:
-%    \begin{macrocode}
-\newcommand*{\LWR@newgeometryoptions}{reset,}
-
-\DeclareOption*{%
-    \edef\LWR@newgeometryoptions{\LWR@newgeometryoptions\CurrentOption,}%
-}
-%    \end{macrocode}
-%
-% Process the options:
-%    \begin{macrocode}
-\ProcessOptions\relax
-%    \end{macrocode}
-%
-% Assign and set the selected geometry.
+% Assign and set the selected geometry with \optn{reset} prepended.
 % \cs{AtEndPreamble} \pkg{lwarp} will save this, then set its own geometry.
+% \changes{v0.78}{2019/10/20}{\pkg{geometry}: Cleaner option handling.}
 %    \begin{macrocode}
-\ifdefvoid{\LWR@newgeometryoptions}{}{
-    \expandafter\LWR@origgeometry\expandafter{\LWR@newgeometryoptions}
-}
-
+    \edef\LWR@tempone{reset,\@ptionlist{\@currname.\@currext}}%
+    \expandafter\LWR@origgeometry\expandafter{\LWR@tempone}%
 }{}% LWR@allowanothergeometry
 %    \end{macrocode}
 %
@@ -49665,11 +49839,12 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space
 %    \end{macrocode}
 % \changes{v0.65}{2018/12/19}{\pkg{graphics}: Added \cs{includegraphics} \attribute{alt} key.}
 % \changes{v0.74}{2019/08/20}{Add \cs{ThisAltText}.}
+% \changes{v0.78}{2019/10/17}{Fix: \attribute{alt} tag expansion.}
 %    \begin{macrocode}
 \ifdefvoid{\LWR@ThisAltText}{%
-    \renewcommand*{\LWR@igalt}{\ImageAltText}%
+    \edef\LWR@igalt{\ImageAltText}%
 }{%
-    \renewcommand*{\LWR@igalt}{\LWR@ThisAltText}%
+    \edef\LWR@igalt{\LWR@ThisAltText}%
 }%
 %    \end{macrocode}
 % 
@@ -50588,22 +50763,18 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
 % \changes{v0.52}{2018/03/26}{\pkg{hyperref}: Fix: \progcode{\#}, \progcode{\%}, \progcode{\&}, \progcode{\~}, \progcode{\_} in \URL.}
 %    \begin{macrocode}
 \NewDocumentCommand{\LWR@hyperimageb}{m +m}{%
-\LWR@ensuredoingapar%
-\def\LWR@templink{#1}%
-\@onelevel@sanitize\LWR@templink%
-\LWR@htmltag{img src="\LWR@templink" alt="#2" class="hyperimage"}%
-\LWR@ensuredoingapar%
-\endgroup%
+    \LWR@ensuredoingapar%
+    \def\LWR@templink{#1}%
+    \@onelevel@sanitize\LWR@templink%
+    \LWR@htmltag{img src="\LWR@templink" alt="#2" class="hyperimage"}%
+    \LWR@ensuredoingapar%
+    \endgroup%
 }
 
 \newrobustcmd*{\hyperimage}{%
-\begingroup%
-\catcode`\#=12%
-\catcode`\%=12%
-\catcode`\&=12%
-\catcode`\~=12%
-\catcode`\_=12%
-\LWR@hyperimageb%
+    \begingroup%
+    \LWR@linkcatcodes%
+    \LWR@hyperimageb%
 }
 
 %    \end{macrocode}
@@ -50618,20 +50789,16 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
 % \changes{v0.52}{2018/03/26}{\pkg{hyperref}: Fix: \progcode{\#}, \progcode{\%}, \progcode{\&}, \progcode{\~}, \progcode{\_} in \URL.}
 %    \begin{macrocode}
 \NewDocumentCommand{\LWR@hyperdefb}{m m +m}{%
-\LWR@ensuredoingapar%
-\LWR@sublabel{#1.#2}%
-#3%
-\endgroup%
+    \LWR@ensuredoingapar%
+    \LWR@sublabel{#1.#2}%
+    #3%
+    \endgroup%
 }
 
 \newcommand*{\hyperdef}{%
-\begingroup%
-\catcode`\#=12%
-\catcode`\%=12%
-\catcode`\&=12%
-\catcode`\~=12%
-\catcode`\_=12%
-\LWR@hyperdefb%
+    \begingroup%
+    \LWR@linkcatcodes%
+    \LWR@hyperdefb%
 }
 
 %    \end{macrocode}
@@ -50647,33 +50814,29 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
 % Creates an \HTML\ link to |URL#category.name| with the given text.
 %    \begin{macrocode}
 \newcommand{\LWR@hyperreffinish}[1]{%
-\begingroup%
-\RenewDocumentCommand{\ref}{}{\LWR@ref@ignorestar}%
-#1%
-\endgroup%
-\LWR@htmltag{/a}%
+    \begingroup%
+    \RenewDocumentCommand{\ref}{}{\LWR@ref@ignorestar}%
+    #1%
+    \endgroup%
+    \LWR@htmltag{/a}%
 }
 
 \newcommand*{\LWR@hyperrefbb}[3]{%
-\LWR@htmltag{%
-    a href="%
-        \detokenize\expandafter{#1}\LWR@hashmark%
-        \detokenize\expandafter{#2}.\detokenize\expandafter{#3}%
-    "%
-    \LWR@addlinktitle%
-}%
-\endgroup%
-\LWR@hyperreffinish%
+    \LWR@htmltag{%
+        a href="%
+            \detokenize\expandafter{#1}\LWR@hashmark%
+            \detokenize\expandafter{#2}.\detokenize\expandafter{#3}%
+        "%
+        \LWR@addlinktitle%
+    }%
+    \endgroup%
+    \LWR@hyperreffinish%
 }
 
 \newrobustcmd*{\LWR@hyperrefb}{%
-\begingroup%
-\catcode`\#=12%
-\catcode`\%=12%
-\catcode`\&=12%
-\catcode`\~=12%
-\catcode`\_=12%
-\LWR@hyperrefbb%
+    \begingroup%
+    \LWR@linkcatcodes%
+    \LWR@hyperrefbb%
 }
 %    \end{macrocode}
 % \end{noindmacro}
@@ -50684,19 +50847,15 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
 %    \begin{macrocode}
 
 \NewDocumentCommand{\LWR@hyperrefcb}{O{label}}{%
-\LWR@startref{#1}%
-\endgroup%
-\LWR@hyperreffinish%
+    \LWR@startref{#1}%
+    \endgroup%
+    \LWR@hyperreffinish%
 }
 
 \newcommand*{\LWR@hyperrefc}{%
-\begingroup%
-\catcode`\#=12%
-\catcode`\%=12%
-\catcode`\&=12%
-\catcode`\~=12%
-\catcode`\_=12%
-\LWR@hyperrefcb%
+    \begingroup%
+    \LWR@linkcatcodes%
+    \LWR@hyperrefcb%
 }
 %    \end{macrocode}
 % \end{noindmacro}
@@ -50710,8 +50869,8 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
 % \changes{v0.54}{2018/04/19}{\pkg{hyperref}: Fix: \cs{hyperref} and \cs{hyperlink} with special chars in text.}
 %    \begin{macrocode}
 \DeclareRobustCommand*{\hyperref}{%
-\LWR@ensuredoingapar%
-\@ifnextchar[\LWR@hyperrefc\LWR@hyperrefb%
+    \LWR@ensuredoingapar%
+    \@ifnextchar[\LWR@hyperrefc\LWR@hyperrefb%
 }
 %    \end{macrocode}
 % \end{noindmacro}
@@ -50725,19 +50884,15 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
 % \changes{v0.52}{2018/03/26}{\pkg{hyperref}: Fix: \progcode{\#}, \progcode{\%}, \progcode{\&}, \progcode{\~}, \progcode{\_} in \URL.}
 %    \begin{macrocode}
 \NewDocumentCommand{\LWR@hypertargetb}{m +m}{%
-\label{LWR-ht-#1}%
-#2%
-\endgroup%
+    \label{LWR-ht-#1}%
+    #2%
+    \endgroup%
 }
 
 \newcommand*{\hypertarget}{%
-\begingroup%
-\catcode`\#=12%
-\catcode`\%=12%
-\catcode`\&=12%
-\catcode`\~=12%
-\catcode`\_=12%
-\LWR@hypertargetb%
+    \begingroup%
+    \LWR@linkcatcodes%
+    \LWR@hypertargetb%
 }
 %    \end{macrocode}
 % \end{noindmacro}
@@ -50755,18 +50910,14 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
 % \changes{v0.54}{2018/04/19}{\pkg{hyperref}: Fix: \cs{hyperref} and \cs{hyperlink} with special chars in text.}
 %    \begin{macrocode}
 \DeclareDocumentCommand{\LWR@hyperlinkb}{m}{%
-\LWR@hyperrefcb[LWR-ht-#1]%
+    \LWR@hyperrefcb[LWR-ht-#1]%
 }
 
 \DeclareDocumentCommand{\hyperlink}{}{%
-\LWR@ensuredoingapar%
-\begingroup%
-\catcode`\#=12%
-\catcode`\%=12%
-\catcode`\&=12%
-\catcode`\~=12%
-\catcode`\_=12%
-\LWR@hyperlinkb%
+    \LWR@ensuredoingapar%
+    \begingroup%
+    \LWR@linkcatcodes%
+    \LWR@hyperlinkb%
 }
 %    \end{macrocode}
 % \end{noindmacro}
@@ -50851,7 +51002,7 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
 %
 %    \begin{macrocode}
 \def\hypercalcbp#1{%
-\strip@pt\dimexpr 0.99626401\dimexpr(#1)\relax\relax
+    \strip@pt\dimexpr 0.99626401\dimexpr(#1)\relax\relax
 }%
 %    \end{macrocode}
 % \end{noindmacro}
@@ -55052,11 +55203,7 @@ background:
 
 \newrobustcmd*{\includemedia}{%
     \begingroup%
-    \catcode`\#=12%
-    \catcode`\%=12%
-%     \catcode`\&=12% left alone for splitting flash variables
-    \catcode`\~=12%
-    \catcode`\_=12%
+    \LWR@linkmediacatcodes%
     \LWR@includemediab%
 }
 %    \end{macrocode}
@@ -55787,11 +55934,7 @@ background:
 
 \newrobustcmd*{\includemovie}{%
     \begingroup%
-    \catcode`\#=12%
-    \catcode`\%=12%
-    \catcode`\&=12%
-    \catcode`\~=12%
-    \catcode`\_=12%
+    \LWR@linkmediacatcodes%
     \LWR@includemovieb%
 }
 
@@ -65347,8 +65490,9 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
 % \end{noindmacro}
 
 % \begin{noindmacro}{\titleclass} \marg{name} \oarg{startlevel} \marg{class} \oarg{cmd}
+% \changes{v0.78}{2019/10/21}{\pkg{titlesec}: Fix for \cs{titleclass}.}
 %    \begin{macrocode}
-\NewDocumentCommand{\titleclass}{m o m o}
+\NewDocumentCommand{\titleclass}{m o m o}{}
 %    \end{macrocode}
 % \end{noindmacro}
 
@@ -71759,10 +71903,13 @@ height:\LWR@printlength{\LWR@tempheight}%
 %   \marg{audio/video} \marg{mimetype}
 %
 % Creates a video or audio from a file.
+% The 2019/10 update of the \LaTeX\ kernel may cause extra quotes to be added
+% in the filenames.  They are removed here.
+% \changes{v0.78}{2019/11/07}{\pkg{lwarp-common-multimedia}: Fix links with new LaTeX kernel.}
 %    \begin{macrocode}
 \newcommand*{\LWR@multimedia@fileAV}[4]{%
-\filename@parse{#2}%
-\IfFileExists{#2}{%
+\IfFileExists{#2}{% also sets \@filef@und
+\StrSubstitute[100]{\@filef@und}{"}{}[\LWR@parsedfilename]%
 %    \end{macrocode}
 % The container \element{div} is sized as desired.
 % \changes{v0.73}{2019/06/24}{\pkg{lwarp-common-multimedia}: Fix: No size for audio file.}
@@ -71790,17 +71937,19 @@ height:\LWR@printlength{\LWR@tempheight}%
     }\LWR@orignewline
 %    \end{macrocode}
 % The file source and type:
+% \changes{v0.78}{2019/11/07}{\pkg{lwarp-common-multimedia}: Fix links with new LaTeX kernel.}
 %    \begin{macrocode}
     \LWR@htmltag{%
         source % space
         src=\textquotedbl%
-        \@filef@und\unskip\textquotedbl\ % space
+        \LWR@parsedfilename\unskip\textquotedbl\ % space
         type=\textquotedbl{}#4\textquotedbl}
 %    \end{macrocode}
 % The poster text inside paragraph tags, along with a reference to the file.
+% \changes{v0.78}{2019/11/07}{\pkg{lwarp-common-multimedia}: Fix links with new LaTeX kernel.}
 %    \begin{macrocode}
     \LWR@startpars
-    \href{\@filef@und}{#1}
+    \href{\LWR@parsedfilename}{#1}
     \LWR@stoppars
 %    \end{macrocode}
 % Finish.
@@ -71986,11 +72135,7 @@ height:\LWR@printlength{\LWR@tempheight}%
 %    \begin{macrocode}
 \newrobustcmd*{\LWR@multimedia}{%
     \begingroup%
-    \catcode`\#=12%
-    \catcode`\%=12%
-    \catcode`\&=12%
-    \catcode`\~=12%
-    \catcode`\_=12%
+    \LWR@linkmediacatcodes%
     \LWR@multimediab%
 }
 %    \end{macrocode}
-- 
cgit v1.2.3

