texlive[52729] trunk: lwarp

commits+karl at tug.org commits+karl at tug.org
Sun Nov 10 23:10:55 CET 2019


Revision: 52729
          http://tug.org/svn/texlive?view=revision&revision=52729
Author:   karl
Date:     2019-11-10 23:10:55 +0100 (Sun, 10 Nov 2019)
Log Message:
-----------
lwarp

Modified Paths:
--------------
    trunk/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua
    trunk/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl
    trunk/Master/texmf-dist/doc/latex/lwarp/README.txt
    trunk/Master/texmf-dist/doc/latex/lwarp/lwarp.pdf
    trunk/Master/texmf-dist/scripts/lwarp/lwarpmk.lua
    trunk/Master/texmf-dist/source/latex/lwarp/lwarp.dtx
    trunk/Master/texmf-dist/source/latex/lwarp/lwarp.ins
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-afterpage.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-breakurl.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-caption.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-common-multimedia.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-geometry.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-graphics.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-hyperref.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-media9.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-movie15.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-titlesec.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp.sty

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

Modified: trunk/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua
===================================================================
--- trunk/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua	2019-11-10 22:10:15 UTC (rev 52728)
+++ trunk/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua	2019-11-10 22:10:55 UTC (rev 52729)
@@ -2,7 +2,7 @@
 
 -- Copyright 2016-2019 Brian Dunn
 
-printversion = "v0.76"
+printversion = "v0.78"
 requiredconfversion = "2" -- also at *lwarpmk.conf
 
 function printhelp ()

Modified: trunk/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl
===================================================================
--- trunk/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl	2019-11-10 22:10:15 UTC (rev 52728)
+++ trunk/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl	2019-11-10 22:10:55 UTC (rev 52729)
@@ -1,12 +1,12 @@
 #!/usr/bin/env perl
-# $Id: tlmgr.pl 52585 2019-10-31 18:26:15Z karl $
+# $Id: tlmgr.pl 52672 2019-11-07 18:35:53Z karl $
 #
 # Copyright 2008-2019 Norbert Preining
 # This file is licensed under the GNU General Public License version 2
 # or any later version.
 
-my $svnrev = '$Revision: 52585 $';
-my $datrev = '$Date: 2019-10-31 19:26:15 +0100 (Thu, 31 Oct 2019) $';
+my $svnrev = '$Revision: 52672 $';
+my $datrev = '$Date: 2019-11-07 19:35:53 +0100 (Thu, 07 Nov 2019) $';
 my $tlmgrrevision;
 my $tlmgrversion;
 my $prg;
@@ -1456,7 +1456,7 @@
         } elsif ($opts{"w32mode"} eq "admin") {
           $winadminmode = 1;
         } else {
-          tlwarn("$prg: Unknown --w32admin mode: $opts{w32mode}, should be 'admin' or 'user'\n");
+          tlwarn("$prg: unknown --w32admin mode: $opts{w32mode}, should be 'admin' or 'user'\n");
           return ($F_ERROR);
         }
       } else {
@@ -1467,7 +1467,7 @@
           tlwarn("$prg: You don't have the privileges to work in --w32mode admin\n");
           return ($F_ERROR);
         } else {
-          tlwarn("$prg: Unknown --w32admin mode: $opts{w32mode}, should be 'admin' or 'user'\n");
+          tlwarn("$prg: unknown --w32admin mode: $opts{w32mode}, should be 'admin' or 'user'\n");
           return ($F_ERROR);
         }
       }
@@ -1827,7 +1827,7 @@
     }
   }
   if (!$restore_file) {
-    tlwarn("$prg: Cannot find restore file $bd/${pkg}.r${rev}.tar.*, no action taken\n");
+    tlwarn("$prg: cannot find restore file $bd/${pkg}.r${rev}.tar.*, no action taken\n");
     return ($F_ERROR);
   }
   $localtlpdb->remove_package($pkg);
@@ -1841,7 +1841,7 @@
   TeXLive::TLUtils::announce_execute_actions("enable",
                                       $localtlpdb->get_package($pkg));
   $localtlpdb->save;
-  # TODO_ERROCHECKING we should check the return values of the
+  # TODO_ERRORCHECKING we should check the return values of the
   # various calls above
   return ($F_OK);
 }
@@ -1864,7 +1864,7 @@
         debug ("Automatic backups activated, keeping $autobackup backups.\n");
         $opts{"backup"} = 1;
       } else {
-        tlwarn ("$prg: Option autobackup can only be an integer >= -1.\n");
+        tlwarn ("$prg: Option autobackup value can only be an integer >= -1.\n");
         tlwarn ("$prg: Disabling auto backups.\n");
         $localtlpdb->option("autobackup", 0);
         $autobackup = 0;
@@ -1910,7 +1910,7 @@
     init_local_db(1);
     $opts{"backupdir"} = norm_tlpdb_path($localtlpdb->option("backupdir"));
     if (!$opts{"backupdir"}) {
-      return (0, "$prg: No way to determine backupdir.\n");
+      return (0, "$prg: cannot determine backupdir.\n");
     }
     # we are still here, there is something set in tlpdb
     my $ob = abs_path($opts{"backupdir"});
@@ -2284,7 +2284,7 @@
     # create backup; make_container expects file name in a format: some-name.r[0-9]+
     my ($size, undef, $fullname) = $localtlp->make_container("tar", $root, $temp, "__BACKUP_$pkg.r$oldrev");
     if ($size <= 0) {
-      tlwarn("$prg: Creation of backup container of $pkg failed.\n");
+      tlwarn("$prg: creation of backup container failed for: $pkg\n");
       return 1; # backup failed? abort
     }
     my $decompressor = $::progs{$DefaultCompressorFormat};
@@ -2299,13 +2299,13 @@
       }
       # now we should have the file present
       if (!-r $dlcontainer) {
-        tlwarn("$prg: Couldn't get $pkg_part.tar.$compressorextension, that is bad\n");
+        tlwarn("$prg: couldn't get $pkg_part.tar.$compressorextension, that is bad\n");
         return 1; # abort
       }
       # unpack xz archive
       my $sysret = system("$decompressor @decompressorArgs < \"$dlcontainer\" > \"$temp/$pkg_part.tar\"");
       if ($sysret) {
-        tlwarn("$prg: Couldn't unpack $pkg_part.tar.$compressorextension\n");
+        tlwarn("$prg: couldn't unpack $pkg_part.tar.$compressorextension\n");
         return 1; # unpack failed? abort
       }
       unlink($dlcontainer); # we don't need that archive anymore
@@ -2409,7 +2409,7 @@
     copy("$root/tlpkg/installer/tar.exe", "$temp");
     # make sure copied tar is working
     if (system("\"$temp/tar.exe\" --version >nul")) {
-      tlwarn("$prg: Could not copy tar.exe, that is bad.\n");
+      tlwarn("$prg: could not copy tar.exe, that is bad.\n");
       return 1; # abort
     }
     open UPDATER, ">$temp/updater-w32" or die "Cannot create updater script: $!";
@@ -2560,7 +2560,7 @@
 #   if foo is of type Package|Documentation it will update only foo
 #     and the respective .ARCH dependencies
 #   if foo is of type Collection|Scheme it will update itself AND
-#     will check all depending packs of type NOT(COllection|Scheme)
+#     will check all depending packs of type NOT(Collection|Scheme)
 #     for necessary updates
 #
 # tlmgr update --no-depends foo
@@ -3245,8 +3245,8 @@
                                       "__BACKUP_${pkg}.r" . $tlp->revision,
                                       $tlp->relocated);
         if ($s <= 0) {
-          tlwarn("\n$prg: Creation of backup container of $pkg failed.\n");
-          tlwarn("$prg: Continuing to update other packages, please retry...\n");
+          tlwarn("\n$prg: creation of backup container failed for: $pkg\n");
+          tlwarn("$prg: continuing to update other packages, please retry...\n");
           $ret |= $F_WARNING;
           # we should try to update other packages at least
           next;
@@ -3460,7 +3460,7 @@
           }
           if ($bad_file) {
             tlwarn("$prg: The file $k has disappeared from the critical" .
-                   "package $pkg but is still present in @found_pkgs\n");
+                   " package $pkg but is still present in @found_pkgs\n");
             $ret |= $F_WARNING;
           } else {
             push @infra_files_to_be_removed, $k;
@@ -3943,7 +3943,7 @@
       my $totalsize = $srcsize + $docsize + $runsize + $binsize;
       push @out, $totalsize;
     } else {
-      tlwarn("$prg: unkown data field $d\n");
+      tlwarn("$prg: unknown data field $d\n");
       return($F_WARNING);
     }
   }
@@ -4056,7 +4056,7 @@
       if (defined($tag)) {
         # we already searched for the package in a specific tag, don't retry
         # all candidates!
-        tlwarn("$prg: Cannot find package $pkg in repository $tag\n");
+        tlwarn("$prg: cannot find package $pkg in repository $tag\n");
         return($F_WARNING);
       }
       my @cand = $remotetlpdb->candidates($pkg);
@@ -4066,7 +4066,7 @@
         # subsidiary repository, but not installable
         # because it is not pinned
         # we will list it but warn about this fact
-        # useless test, @cand will always be defined becuase $remotetlpdb is virtual
+        # useless test, @cand will always be defined because $remotetlpdb is virtual
         my $first = shift @cand;
         if (defined($first)) {
           tlwarn("$prg: strange, we have a first candidate but no tlp: $pkg\n");
@@ -4680,12 +4680,12 @@
           } elsif ($what eq $TLPDBOptions{"backupdir"}->[2]) {
             info("$prg: setting option $what to $val.\n");
             if (! -d $val) {
-              info("$prg: the directory $val does not exist; you must create it\n");
+              info("$prg: the directory $val does not exists, it has to be created\n");
               info("$prg: before backups can be done automatically.\n");
             }
             $localtlpdb->option($opt, $val);
           } elsif ($what eq $TLPDBOptions{"w32_multi_user"}->[2]) {
-            # when running w32 do not allow that a non-admin user sets
+            # when running w32 do not allow that a non-admin users sets
             # this from false to true
             my $do_it = 0;
             if (win32()) {
@@ -4754,7 +4754,7 @@
                 $localtlpdb->option($opt, $n);
               }
             } else {
-              tlwarn ("$prg: Unknown type of option $opt: $TLPDBOptions{$opt}->[0]\n");
+              tlwarn ("$prg: unknown type of option $opt: $TLPDBOptions{$opt}->[0]\n");
               return ($F_ERROR);
             }
           }
@@ -5319,10 +5319,10 @@
   my $Master = $localtlpdb->root;
   my $tltree = TeXLive::TLTREE->new ("svnroot" => $Master);
   if ($svn) {
-    debug("Initializine TLTREE from svn\n");
+    debug("Initializing TLTREE from svn\n");
     $tltree->init_from_svn;
   } else {
-    debug("Initializine TLTREE from find\n");
+    debug("Initializing TLTREE from find\n");
     $tltree->init_from_files;
   }
   return($tltree);
@@ -5896,7 +5896,7 @@
 
 # 
 POSTACTION
 # 
-# explictly run the various post actions, e.g.,
+# explicitly run the various post actions, e.g.,
 # on a client system or overriding global settings.
 # 
 # tlmgr postaction [--w32mode=user|admin] [--fileassocmode=1|2] [--all]
@@ -5931,7 +5931,7 @@
         chomp($ENV{"TEXMFSYSVAR"} = `kpsewhich -var-value TEXMFVAR`);
       } elsif ($opts{"w32mode"} eq "admin") {
         if (!TeXLive::TLWinGoo::admin()) {
-          tlwarn("$prg: You don't have the permissions for --w32mode=admin\n");
+          tlwarn("$prg: you don't have the permissions for --w32mode=admin\n");
           return;
         }
       } else {
@@ -6620,8 +6620,8 @@
 #
 # set global $location variable.
 #
-# argument $should_i_die specifies what is requried
-# to suceed during initialization.
+# argument $should_i_die specifies what is required
+# to succeed during initialization.
 #
 # undef or false: TLPDB needs to be found and initialized, but
 #                 support programs need not be found
@@ -7219,7 +7219,7 @@
       } elsif ($val eq "1") {
         $config{"gui-expertmode"} = 1;
       } else {
-        tlwarn("$prg: $fn: Unknown value for gui-expertmode: $val\n");
+        tlwarn("$prg: $fn: unknown value for gui-expertmode: $val\n");
       }
 
     } elsif ($key eq "persistent-downloads") {
@@ -7226,7 +7226,7 @@
       if (($val eq "0") || ($val eq "1")) {
         $config{'persistent-downloads'} = $val;
       } else {
-        tlwarn("$prg: $fn: Unknown value for persistent-downloads: $val\n");
+        tlwarn("$prg: $fn: unknown value for persistent-downloads: $val\n");
       }
 
     } elsif ($key eq "update-exclude") {
@@ -7242,7 +7242,7 @@
       } elsif ($val eq "1") {
         $config{"auto-remove"} = 1;
       } else {
-        tlwarn("$prg: $fn: Unknown value for auto-remove: $val\n");
+        tlwarn("$prg: $fn: unknown value for auto-remove: $val\n");
       }
 
     } elsif ($key eq "require-verification") {
@@ -7251,7 +7251,7 @@
       } elsif ($val eq "1") {
         $config{"require-verification"} = 1;
       } else {
-        tlwarn("$prg: $fn: Unknown value for require-verification: $val\n");
+        tlwarn("$prg: $fn: unknown value for require-verification: $val\n");
       }
 
     } elsif ($key eq "verify-downloads") {
@@ -7260,7 +7260,7 @@
       } elsif ($val eq "1") {
         $config{"verify-downloads"} = 1;
       } else {
-        tlwarn("$prg: $fn: Unknown value for verify-downloads: $val\n");
+        tlwarn("$prg: $fn: unknown value for verify-downloads: $val\n");
       }
 
     } elsif ($key eq "verify-repo") {
@@ -7267,7 +7267,7 @@
       if ($val =~ m/$allowed_verify_args_regex/) {
         $config{"verify-repo"} = $val;
       } else {
-        tlwarn("$prg: $fn: Unknown value for verify-repo: $val\n");
+        tlwarn("$prg: $fn: unknown value for verify-repo: $val\n");
       }
 
     } elsif ($key eq "no-checksums") {
@@ -7276,7 +7276,7 @@
       } elsif ($val eq "0") {
         $config{"no-checksums"} = 0;
       } else {
-        tlwarn("$prg: $fn: Unknown value for no-checksums: $val\n");
+        tlwarn("$prg: $fn: unknown value for no-checksums: $val\n");
       }
 
     } elsif ($sysmode) {
@@ -7285,10 +7285,10 @@
         my @acts = split(/,/, $val);
         $config{'allowed-actions'} = \@acts;
       } else {
-        tlwarn("$prg: $fn: Unknown tlmgr configuration variable: $key\n");
+        tlwarn("$prg: $fn: unknown tlmgr configuration variable: $key\n");
       }
     } else {
-      tlwarn("$prg: $fn: Unknown tlmgr configuration variable: $key\n");
+      tlwarn("$prg: $fn: unknown tlmgr configuration variable: $key\n");
     }
   }
 }
@@ -7327,8 +7327,8 @@
   if ((defined($verify_downloads) || defined($require_verification)) &&
       defined($verify_repo)) {
     # we cannot have all three, warn and bail out
-    tldie("$prg: The options verify-downloads and require-verification have\n"
-        . "$prg: been superseded by verify-repo, please use only the latter!\n");
+    tldie("$prg: options verify-downloads and require-verification have\n"
+        . "$prg: been superseded by verify-repo; please use only the latter!\n");
   }
   # return immediately if verify_repo is already set
   return($verify_repo) if (defined($verify_repo));
@@ -7341,7 +7341,7 @@
         $ret = "all";
       } else {
         # either nothing passed or --no-require-verification (default)
-        # use explit setting to main
+        # use explicit setting to main
         $ret = "main";
       }
     } else {
@@ -7605,7 +7605,7 @@
 
 Specify the package repository from which packages should be installed
 or updated, either a local directory or network location, as below. This
-overrides the default package repository found in the installation's TeX
+overridesthe default package repository found in the installation's TeX
 Live Package Database (a.k.a. the TLPDB, which is given entirely in the
 file C<tlpkg/texlive.tlpdb>).
 
@@ -8709,7 +8709,7 @@
 the C<list> keyword, it is interpreted as the source from which to
 initialize a TL database and lists the contained packages. This can also
 be an otherwise-unused repository, either local or remote. If the option
-C<--with-platforms> is spcified in addition, for each package the
+C<--with-platforms> is specified in addition, for each package the
 available platforms (if any) are also listed.
 
 The form C<repository add> adds a repository (optionally attaching a
@@ -8925,9 +8925,9 @@
 
 =item B<--all>
 
-Update all installed packages except for C<tlmgr> itself.  Thus, if
-updates to C<tlmgr> itself are present, this will simply give an error,
-unless also the option C<--force> or C<--self> is given.  (See below.)
+Update all installed packages except for C<tlmgr> itself. If updates to
+C<tlmgr> itself are present, this gives an error, unless also the option
+C<--force> or C<--self> is given. (See below.)
 
 In addition to updating the installed packages, during the update of a
 collection the local installation is (by default) synchronized to the
@@ -8944,7 +8944,7 @@
 that is also installed locally, it will be added to the local
 installation.  This is called ``auto-install'' and is announced as such
 when using the option C<--list>.  This auto-installation can be
-suppressed using the option C<--no-auto-install>.
+suppressed using the option C<--no-auto-install> (also not recommended).
 
 An exception to the collection dependency checks (including the
 auto-installation of packages just mentioned) are those that have been
@@ -8952,6 +8952,13 @@
 on them.  (See the C<remove> action documentation.)  To reinstall any
 such forcibly removed packages use C<--reinstall-forcibly-removed>.
 
+To reiterate: automatic removals and additions are entirely determined
+by comparison of collections. Thus, if you manually install an
+individual package C<foo> which is later removed from the server,
+C<tlmgr> will not notice and will not remove it locally. (It has to be
+this way, without major rearchitecture work, because the tlpdb does not
+record the repository from which packages come from.)
+
 If you want to exclude some packages from the current update run (e.g.,
 due to a slow link), see the C<--exclude> option below.
 
@@ -9015,12 +9022,12 @@
 
 =item B<--no-auto-remove> [I<pkg>...]
 
-By default, C<tlmgr> tries to remove packages which have disappeared on
-the server, as described above under C<--all>.  This option prevents
-such removals, either for all packages (with C<--all>), or for just the
-given I<pkg> names.  This can lead to an inconsistent TeX installation,
-since packages are not infrequently renamed or replaced by their
-authors.  Therefore this is not recommend.
+By default, C<tlmgr> tries to remove packages in an existing collection
+which have disappeared on the server, as described above under C<--all>.
+This option prevents such removals, either for all packages (with
+C<--all>), or for just the given I<pkg> names. This can lead to an
+inconsistent TeX installation, since packages are not infrequently
+renamed or replaced by their authors. Therefore this is not recommended.
 
 =item B<--no-auto-install> [I<pkg>...]
 
@@ -9041,6 +9048,9 @@
   tlmgr update --all
   tlmgr remove --force foobar
 
+Again, since packages are sometimes renamed or replaced, using this
+option is not ecommended.
+
 =item B<--reinstall-forcibly-removed>
 
 Under normal circumstances C<tlmgr> will not install packages that have
@@ -9915,7 +9925,7 @@
 distribution (L<https://tug.org/texlive>) and both are licensed under the
 GNU General Public License Version 2 or later.
 
-$Id: tlmgr.pl 52585 2019-10-31 18:26:15Z karl $
+$Id: tlmgr.pl 52672 2019-11-07 18:35:53Z karl $
 =cut
 
 # test HTML version: pod2html --cachedir=/tmp tlmgr.pl >/tmp/tlmgr.html

Modified: trunk/Master/texmf-dist/doc/latex/lwarp/README.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/lwarp/README.txt	2019-11-10 22:10:15 UTC (rev 52728)
+++ trunk/Master/texmf-dist/doc/latex/lwarp/README.txt	2019-11-10 22:10:55 UTC (rev 52729)
@@ -1,5 +1,5 @@
 
-LaTeX lwarp package v0.77   README.txt
+LaTeX lwarp package v0.78   README.txt
 
 Files included are:
 

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

Modified: trunk/Master/texmf-dist/scripts/lwarp/lwarpmk.lua
===================================================================
--- trunk/Master/texmf-dist/scripts/lwarp/lwarpmk.lua	2019-11-10 22:10:15 UTC (rev 52728)
+++ trunk/Master/texmf-dist/scripts/lwarp/lwarpmk.lua	2019-11-10 22:10:55 UTC (rev 52729)
@@ -2,7 +2,7 @@
 
 -- Copyright 2016-2019 Brian Dunn
 
-printversion = "v0.76"
+printversion = "v0.78"
 requiredconfversion = "2" -- also at *lwarpmk.conf
 
 function printhelp ()

Modified: trunk/Master/texmf-dist/source/latex/lwarp/lwarp.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/lwarp/lwarp.dtx	2019-11-10 22:10:15 UTC (rev 52728)
+++ trunk/Master/texmf-dist/source/latex/lwarp/lwarp.dtx	2019-11-10 22:10:55 UTC (rev 52729)
@@ -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 @@
 \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 @@
 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,19 +2348,32 @@
 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\} \\
+\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{PassOptionsToPackage}\{options\_list\}\{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:
 \trouble[numbering]{caption=\pkg{caption}>numbering}
@@ -2679,7 +2692,7 @@
 %<*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 @@
 % \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 @@
 %
 % \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 @@
 %
 % \midrule
 %
-% Accessibility: & \ipkg{accsupp}, \ipkg{axessibility}. \\
+% Accessibility: & \epkg{accessibility}, \ipkg{accsupp}, \ipkg{axessibility}. \\
 %
 % \midrule
 %
@@ -6318,7 +6348,7 @@
 % \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 @@
 %   \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,8 +7855,8 @@
 % \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 @@
 % 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 @@
 %
 % \DescribePackage{caption}
 % \DescribePackage{subcaption}
+% \label{sec:limitscaption}
 % \limitscaption
 %
 %
@@ -10524,6 +10566,12 @@
 %
 %       \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 @@
 \LWR at loadafter{a5comb}
 \LWR at notmemoirloadafter{abstract}
 \LWR at loadafter{academicons}
+\LWR at loadafter{accessibility}
 \LWR at loadafter{accsupp}
 \LWR at loadafter{acro}
 \LWR at loadafter{acronym}
@@ -13386,34 +13435,59 @@
 
 % \DescribePackage{filecontents}
 %
-% Used to write helper files, done in print mode.
+% Used to write helper files while creating the print version.
 %
-% 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}}
-%
 % \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 at ntents@opt}{% older kernel, discard optional args
 
-\@ifpackagelater{filecontents}{2011/10/09}%
-{}
-{
-\newwrite\fcwrite
-\let\LWR at origfilec@ntents\filec at ntents
-\def\filec at ntents{\def\chardef##1\write{\let\reserved at c\fcwrite}\LWR at origfilec@ntents}
-}
+    \RequirePackage{filecontents}
+
+    \LetLtxMacro\LWR at orig@filec at ntents\filec at 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 at ntents}[1][]{\LWR at orig@filec at 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 at ntents}[1][]{%
+            \def\chardef##1\write{\let\reserved at c\fcwrite}%
+            \LWR at orig@filec at 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}
 \end{warpall}
 %    \end{macrocode}
 
@@ -13559,6 +13633,7 @@
 % Remember the original \cs{RequirePackage}:
 %    \begin{macrocode}
 \LetLtxMacro\LWR at origRequirePackage\RequirePackage
+\LetLtxMacro\LWR at origRequirePackageWithOptions\RequirePackageWithOptions
 %    \end{macrocode}
 
 % \begin{macro}{\LWR at requirepackagenames}
@@ -13792,13 +13867,13 @@
 \IfValueTF{#1}%
 {% options given
     \IfValueTF{#3}% version given?
-    {\LWR at origRequirePackage[#1]{\LWR at parsedrequirepackagenames}[#3]}%
-    {\LWR at origRequirePackage[#1]{\LWR at parsedrequirepackagenames}}%
+        {\LWR at origRequirePackage[#1]{\LWR at parsedrequirepackagenames}[#3]}%
+        {\LWR at origRequirePackage[#1]{\LWR at parsedrequirepackagenames}}%
 }%
 {% no options given
     \IfValueTF{#3}% version given?
-    {\LWR at origRequirePackage{\LWR at parsedrequirepackagenames}[#3]}%
-    {\LWR at origRequirePackage{\LWR at parsedrequirepackagenames}}%
+        {\LWR at origRequirePackage{\LWR at parsedrequirepackagenames}[#3]}%
+        {\LWR at origRequirePackage{\LWR at parsedrequirepackagenames}}%
 }%
 }
 \LetLtxMacro\usepackage\RequirePackage
@@ -13824,13 +13899,15 @@
     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 at origRequirePackage{#1}[#2]}
-{\LWR at origRequirePackage{#1}}
+    {\ProvidesPackage{lwarp-#1}[#2]}
+    {\ProvidesPackage{lwarp-#1}}
+\DeclareOption*{%
+    \PassOptionsToPackage{\CurrentOption}{#1}%
+}
+\ProcessOptions\relax%
+\IfValueTF{#2}%
+    {\LWR at origRequirePackage{#1}[#2]}%
+    {\LWR at origRequirePackage{#1}}%
 %    \end{macrocode}
 % In some cases, the following seems to be required
 % to avoid an ``unknown option'' error, such
@@ -13838,7 +13915,7 @@
 % \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 @@
 % \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 @@
 % \codeconfig
 %    \begin{macrocode}
 \begin{LWRwriteconf}
-\begin{filecontents*}{lwarp_sagebrush.css}
+\begin{filecontents*}[overwrite]{lwarp_sagebrush.css}
 @import url("lwarp.css") ;
 
 
@@ -17287,7 +17364,7 @@
 % \codeconfig
 %    \begin{macrocode}
 \begin{LWRwriteconf}
-\begin{filecontents*}{lwarp_formal.css}
+\begin{filecontents*}[overwrite]{lwarp_formal.css}
 @import url("lwarp.css") ;
 
 
@@ -17504,7 +17581,7 @@
 % \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 @@
 % \codeconfig
 %    \begin{macrocode}
 \begin{LWRwriteconf}
-\begin{filecontents*}{lwarp.ist}
+\begin{filecontents*}[overwrite]{lwarp.ist}
 preamble
 "\\begin{theindex}
   \\providecommand*\\lettergroupDefault[1]{}
@@ -17591,7 +17668,7 @@
 % \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 @@
 % \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 @@
 %
 % ^^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 @@
 \providecommand*{\LWR at 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 at FBcancel\NoAutoSpacing%
+    }%
+
 \@ifundefined{frenchbsetup}%
 {}%
 {%
@@ -19917,7 +20004,6 @@
 % ^^A OR: redefine \insertfootnotemarkFB?
 %    \begin{macrocode}
 %
-    \LetLtxMacro\LWR at FBcancel\NoAutoSpacing%
     \renewrobustcmd*{\FBcolonspace}{%
         \begingroup%
         \LWR at FBcancel%
@@ -29009,11 +29095,11 @@
 % 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 at nullifyNoAutoSpacing}{}
 }% no babel-french
@@ -29889,6 +29975,8 @@
 %    \end{macrocode}
 % \end{macro}
 
+
+
 % \subsection{Hyper-references}
 %
 % Note that the code currently only sanitizes the underscore character.
@@ -29925,7 +30013,47 @@
 % \end{macro}
 
 
+% \begin{macro}{\LWR at linkcatcodes}
+% Sets catcodes before processing macros which have hyperlinks as arguments.
+% \changes{v0.78}{2019/10/29}{Factored.}
+%    \begin{macrocode}
+\newcommand*{\LWR at 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 at FBcancel%
+}
+%    \end{macrocode}
+% \end{macro}
 
+
+% \begin{macro}{\LWR at 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 at 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 at FBcancel%
+}
+%    \end{macrocode}
+% \end{macro}
+
+
 % \begin{macro}{\LWR at subhyperref} \marg{URL}
 %
 % Starts a link for \cs{LWR at hrefb}.
@@ -29937,13 +30065,13 @@
 % \changes{v0.57}{2018/06/05}{Fix: Text catcodes.}
 %    \begin{macrocode}
 \NewDocumentCommand{\LWR at subhyperref}{m}{%
-\LWR at traceinfo{LWR at subhyperref !#1!}%
-\LWR at sanitize{#1}%
-\LWR at htmltag{%
-    a href="\LWR at sanitized" % space
-    \LWR at addlinktitle % space
-    target="\_{}blank" % space
-}%
+    \LWR at traceinfo{LWR at subhyperref !#1!}%
+    \LWR at sanitize{#1}%
+    \LWR at htmltag{%
+        a href="\LWR at sanitized" % space
+        \LWR at addlinktitle % space
+        target="\_{}blank" % space
+    }%
 }
 %    \end{macrocode}
 % \end{macro}
@@ -29956,9 +30084,9 @@
 % \changes{v0.57}{2018/06/05}{Fix: Text catcodes.}
 %    \begin{macrocode}
 \newcommand{\LWR at subhyperreftext}[1]{%
-#1%
-\LWR at htmltag{/a}%
-\LWR at ensuredoingapar%
+    #1%
+    \LWR at htmltag{/a}%
+    \LWR at ensuredoingapar%
 }
 %    \end{macrocode}
 % \end{macro}
@@ -29968,17 +30096,18 @@
 % \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 at subhyperrefclass}{m +m m}{%
-\LWR at htmltag{%
-    a % space
-    href="\begingroup\@sanitize#1\endgroup" % space
-    class="#3" % space
-    \LWR at addlinktitle % space
-}\LWR at orignewline%
-#2\LWR at orignewline%
-\LWR at htmltag{/a}%
-\LWR at ensuredoingapar%
+    \LWR at htmltag{%
+        a % space
+        href="\begingroup\@sanitize#1\endgroup" % space
+        class="#3" % space
+        \LWR at addlinktitle % space
+    }\LWR at orignewline%
+    #2%
+    \LWR at htmltag{/a}%
+    \LWR at ensuredoingapar%
 }
 %    \end{macrocode}
 % \end{macro}
@@ -29995,20 +30124,16 @@
 % \changes{v0.57}{2018/06/05}{Fix: Text catcodes.}
 %    \begin{macrocode}
 \DeclareDocumentCommand{\LWR at hrefb}{O{} m}{%
-\LWR at ensuredoingapar%
-\LWR at subhyperref{#2}%
-\endgroup% restore catcodes
-\LWR at subhyperreftext%
+    \LWR at ensuredoingapar%
+    \LWR at subhyperref{#2}%
+    \endgroup% restore catcodes
+    \LWR at subhyperreftext%
 }
 
 \newrobustcmd*{\href}{%
-\begingroup%
-\catcode`\#=12%
-\catcode`\%=12%
-\catcode`\&=12%
-\catcode`\~=12%
-\catcode`\_=12%
-\LWR at hrefb%
+    \begingroup%
+    \LWR at linkcatcodes%
+    \LWR at hrefb%
 }
 %    \end{macrocode}
 % \end{macro}
@@ -30021,21 +30146,17 @@
 % \changes{v0.52}{2018/03/26}{Fix: \progcode{\#}, \progcode{\%}, \progcode{\&}, \progcode{\~}, \progcode{\_} in \URL.}
 %    \begin{macrocode}
 \newcommand*{\LWR at nolinkurlb}[1]{%
-\LWR at ensuredoingapar%
-\def\LWR at templink{#1}%
-\@onelevel at sanitize\LWR at templink%
-\LWR at templink%
-\endgroup%
+    \LWR at ensuredoingapar%
+    \def\LWR at templink{#1}%
+    \@onelevel at sanitize\LWR at templink%
+    \LWR at templink%
+    \endgroup%
 }
 
 \newrobustcmd*{\nolinkurl}{%
-\begingroup%
-\catcode`\#=12%
-\catcode`\%=12%
-\catcode`\&=12%
-\catcode`\~=12%
-\catcode`\_=12%
-\LWR at nolinkurlb%
+    \begingroup%
+    \LWR at linkcatcodes%
+    \LWR at nolinkurlb%
 }
 %    \end{macrocode}
 % \end{macro}
@@ -30054,21 +30175,17 @@
 % \changes{v0.52}{2018/03/26}{Fix: \progcode{\#}, \progcode{\%}, \progcode{\&}, \progcode{\~}, \progcode{\_} in \URL.}
 %    \begin{macrocode}
 \DeclareDocumentCommand{\LWR at urlb}{m}{%
-\LWR at ensuredoingapar%
-\def\LWR at templink{#1}%
-\@onelevel at sanitize\LWR at templink%
-\href{\LWR at templink}{\LWR at templink}%
-\endgroup%
+    \LWR at ensuredoingapar%
+    \def\LWR at templink{#1}%
+    \@onelevel at sanitize\LWR at templink%
+    \href{\LWR at templink}{\LWR at templink}%
+    \endgroup%
 }
 
 \newrobustcmd*{\url}{%
-\begingroup%
-\catcode`\#=12%
-\catcode`\%=12%
-\catcode`\&=12%
-\catcode`\~=12%
-\catcode`\_=12%
-\LWR at urlb%
+    \begingroup%
+    \LWR at linkcatcodes%
+    \LWR at urlb%
 }
 %    \end{macrocode}
 % \end{macro}
@@ -36147,8 +36264,10 @@
 % \end{macro}
 
 % \begin{macro}{\normalfont}
+% \changes{v0.78}{2019/11/05}{Uses \cs{LWR at formatted}.}
 %    \begin{macrocode}
-\renewrobustcmd*{\normalfont}{\rmfamily\mdseries\upshape\ulcshape}
+\newrobustcmd*{\LWR at HTML@normalfont}{\rmfamily\mdseries\upshape\ulcshape}
+\LWR at formatted{normalfont}
 %    \end{macrocode}
 % \end{macro}
 
@@ -37801,7 +37920,73 @@
 %
 %
 %
+%
 % \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 at 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 at 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 @@
 \LetLtxMacro\burl\url
 
 \NewDocumentCommand{\LWR at burlaltb}{O{} +m m}{%
-\LWR at ensuredoingapar%
-\LWR at subhyperref{#2}%
-\LWR at subhyperreftext{#3}%
-\endgroup% restore catcodes
+    \LWR at ensuredoingapar%
+    \LWR at subhyperref{#2}%
+    \LWR at subhyperreftext{#3}%
+    \endgroup% restore catcodes
 }
 
 \newrobustcmd*{\burlalt}{%
-\begingroup%
-\catcode`\#=12%
-\catcode`\%=12%
-\catcode`\&=12%
-\catcode`\~=12%
-\catcode`\_=12%
-\LWR at burlaltb%
+    \begingroup%
+    \LWR at linkcatcodes%
+    \LWR at burlaltb%
 }
 
 \LetLtxMacro\urlalt\burlalt
@@ -41411,7 +41592,15 @@
 %
 % \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 at ProvidesPackagePass{caption}[2019/09/01]
 %    \end{macrocode}
 
@@ -49048,27 +49237,12 @@
 \ifbool{LWR at allowanothergeometry}{%
 %    \end{macrocode}
 %
-% Gather all options:
-%    \begin{macrocode}
-\newcommand*{\LWR at newgeometryoptions}{reset,}
-
-\DeclareOption*{%
-    \edef\LWR at newgeometryoptions{\LWR at 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 at newgeometryoptions}{}{
-    \expandafter\LWR at origgeometry\expandafter{\LWR at newgeometryoptions}
-}
-
+    \edef\LWR at tempone{reset,\@ptionlist{\@currname.\@currext}}%
+    \expandafter\LWR at origgeometry\expandafter{\LWR at tempone}%
 }{}% LWR at allowanothergeometry
 %    \end{macrocode}
 %
@@ -49665,11 +49839,12 @@
 %    \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 at ThisAltText}{%
-    \renewcommand*{\LWR at igalt}{\ImageAltText}%
+    \edef\LWR at igalt{\ImageAltText}%
 }{%
-    \renewcommand*{\LWR at igalt}{\LWR at ThisAltText}%
+    \edef\LWR at igalt{\LWR at ThisAltText}%
 }%
 %    \end{macrocode}
 % 
@@ -50588,22 +50763,18 @@
 % \changes{v0.52}{2018/03/26}{\pkg{hyperref}: Fix: \progcode{\#}, \progcode{\%}, \progcode{\&}, \progcode{\~}, \progcode{\_} in \URL.}
 %    \begin{macrocode}
 \NewDocumentCommand{\LWR at hyperimageb}{m +m}{%
-\LWR at ensuredoingapar%
-\def\LWR at templink{#1}%
-\@onelevel at sanitize\LWR at templink%
-\LWR at htmltag{img src="\LWR at templink" alt="#2" class="hyperimage"}%
-\LWR at ensuredoingapar%
-\endgroup%
+    \LWR at ensuredoingapar%
+    \def\LWR at templink{#1}%
+    \@onelevel at sanitize\LWR at templink%
+    \LWR at htmltag{img src="\LWR at templink" alt="#2" class="hyperimage"}%
+    \LWR at ensuredoingapar%
+    \endgroup%
 }
 
 \newrobustcmd*{\hyperimage}{%
-\begingroup%
-\catcode`\#=12%
-\catcode`\%=12%
-\catcode`\&=12%
-\catcode`\~=12%
-\catcode`\_=12%
-\LWR at hyperimageb%
+    \begingroup%
+    \LWR at linkcatcodes%
+    \LWR at hyperimageb%
 }
 
 %    \end{macrocode}
@@ -50618,20 +50789,16 @@
 % \changes{v0.52}{2018/03/26}{\pkg{hyperref}: Fix: \progcode{\#}, \progcode{\%}, \progcode{\&}, \progcode{\~}, \progcode{\_} in \URL.}
 %    \begin{macrocode}
 \NewDocumentCommand{\LWR at hyperdefb}{m m +m}{%
-\LWR at ensuredoingapar%
-\LWR at sublabel{#1.#2}%
-#3%
-\endgroup%
+    \LWR at ensuredoingapar%
+    \LWR at sublabel{#1.#2}%
+    #3%
+    \endgroup%
 }
 
 \newcommand*{\hyperdef}{%
-\begingroup%
-\catcode`\#=12%
-\catcode`\%=12%
-\catcode`\&=12%
-\catcode`\~=12%
-\catcode`\_=12%
-\LWR at hyperdefb%
+    \begingroup%
+    \LWR at linkcatcodes%
+    \LWR at hyperdefb%
 }
 
 %    \end{macrocode}
@@ -50647,33 +50814,29 @@
 % Creates an \HTML\ link to |URL#category.name| with the given text.
 %    \begin{macrocode}
 \newcommand{\LWR at hyperreffinish}[1]{%
-\begingroup%
-\RenewDocumentCommand{\ref}{}{\LWR at ref@ignorestar}%
-#1%
-\endgroup%
-\LWR at htmltag{/a}%
+    \begingroup%
+    \RenewDocumentCommand{\ref}{}{\LWR at ref@ignorestar}%
+    #1%
+    \endgroup%
+    \LWR at htmltag{/a}%
 }
 
 \newcommand*{\LWR at hyperrefbb}[3]{%
-\LWR at htmltag{%
-    a href="%
-        \detokenize\expandafter{#1}\LWR at hashmark%
-        \detokenize\expandafter{#2}.\detokenize\expandafter{#3}%
-    "%
-    \LWR at addlinktitle%
-}%
-\endgroup%
-\LWR at hyperreffinish%
+    \LWR at htmltag{%
+        a href="%
+            \detokenize\expandafter{#1}\LWR at hashmark%
+            \detokenize\expandafter{#2}.\detokenize\expandafter{#3}%
+        "%
+        \LWR at addlinktitle%
+    }%
+    \endgroup%
+    \LWR at hyperreffinish%
 }
 
 \newrobustcmd*{\LWR at hyperrefb}{%
-\begingroup%
-\catcode`\#=12%
-\catcode`\%=12%
-\catcode`\&=12%
-\catcode`\~=12%
-\catcode`\_=12%
-\LWR at hyperrefbb%
+    \begingroup%
+    \LWR at linkcatcodes%
+    \LWR at hyperrefbb%
 }
 %    \end{macrocode}
 % \end{noindmacro}
@@ -50684,19 +50847,15 @@
 %    \begin{macrocode}
 
 \NewDocumentCommand{\LWR at hyperrefcb}{O{label}}{%
-\LWR at startref{#1}%
-\endgroup%
-\LWR at hyperreffinish%
+    \LWR at startref{#1}%
+    \endgroup%
+    \LWR at hyperreffinish%
 }
 
 \newcommand*{\LWR at hyperrefc}{%
-\begingroup%
-\catcode`\#=12%
-\catcode`\%=12%
-\catcode`\&=12%
-\catcode`\~=12%
-\catcode`\_=12%
-\LWR at hyperrefcb%
+    \begingroup%
+    \LWR at linkcatcodes%
+    \LWR at hyperrefcb%
 }
 %    \end{macrocode}
 % \end{noindmacro}
@@ -50710,8 +50869,8 @@
 % \changes{v0.54}{2018/04/19}{\pkg{hyperref}: Fix: \cs{hyperref} and \cs{hyperlink} with special chars in text.}
 %    \begin{macrocode}
 \DeclareRobustCommand*{\hyperref}{%
-\LWR at ensuredoingapar%
-\@ifnextchar[\LWR at hyperrefc\LWR at hyperrefb%
+    \LWR at ensuredoingapar%
+    \@ifnextchar[\LWR at hyperrefc\LWR at hyperrefb%
 }
 %    \end{macrocode}
 % \end{noindmacro}
@@ -50725,19 +50884,15 @@
 % \changes{v0.52}{2018/03/26}{\pkg{hyperref}: Fix: \progcode{\#}, \progcode{\%}, \progcode{\&}, \progcode{\~}, \progcode{\_} in \URL.}
 %    \begin{macrocode}
 \NewDocumentCommand{\LWR at 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 at hypertargetb%
+    \begingroup%
+    \LWR at linkcatcodes%
+    \LWR at hypertargetb%
 }
 %    \end{macrocode}
 % \end{noindmacro}
@@ -50755,18 +50910,14 @@
 % \changes{v0.54}{2018/04/19}{\pkg{hyperref}: Fix: \cs{hyperref} and \cs{hyperlink} with special chars in text.}
 %    \begin{macrocode}
 \DeclareDocumentCommand{\LWR at hyperlinkb}{m}{%
-\LWR at hyperrefcb[LWR-ht-#1]%
+    \LWR at hyperrefcb[LWR-ht-#1]%
 }
 
 \DeclareDocumentCommand{\hyperlink}{}{%
-\LWR at ensuredoingapar%
-\begingroup%
-\catcode`\#=12%
-\catcode`\%=12%
-\catcode`\&=12%
-\catcode`\~=12%
-\catcode`\_=12%
-\LWR at hyperlinkb%
+    \LWR at ensuredoingapar%
+    \begingroup%
+    \LWR at linkcatcodes%
+    \LWR at hyperlinkb%
 }
 %    \end{macrocode}
 % \end{noindmacro}
@@ -50851,7 +51002,7 @@
 %
 %    \begin{macrocode}
 \def\hypercalcbp#1{%
-\strip at pt\dimexpr 0.99626401\dimexpr(#1)\relax\relax
+    \strip at pt\dimexpr 0.99626401\dimexpr(#1)\relax\relax
 }%
 %    \end{macrocode}
 % \end{noindmacro}
@@ -55052,11 +55203,7 @@
 
 \newrobustcmd*{\includemedia}{%
     \begingroup%
-    \catcode`\#=12%
-    \catcode`\%=12%
-%     \catcode`\&=12% left alone for splitting flash variables
-    \catcode`\~=12%
-    \catcode`\_=12%
+    \LWR at linkmediacatcodes%
     \LWR at includemediab%
 }
 %    \end{macrocode}
@@ -55787,11 +55934,7 @@
 
 \newrobustcmd*{\includemovie}{%
     \begingroup%
-    \catcode`\#=12%
-    \catcode`\%=12%
-    \catcode`\&=12%
-    \catcode`\~=12%
-    \catcode`\_=12%
+    \LWR at linkmediacatcodes%
     \LWR at includemovieb%
 }
 
@@ -65347,8 +65490,9 @@
 % \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 @@
 %   \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 at multimedia@fileAV}[4]{%
-\filename at parse{#2}%
-\IfFileExists{#2}{%
+\IfFileExists{#2}{% also sets \@filef at und
+\StrSubstitute[100]{\@filef at und}{"}{}[\LWR at 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 @@
     }\LWR at 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 at htmltag{%
         source % space
         src=\textquotedbl%
-        \@filef at und\unskip\textquotedbl\ % space
+        \LWR at 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 at startpars
-    \href{\@filef at und}{#1}
+    \href{\LWR at parsedfilename}{#1}
     \LWR at stoppars
 %    \end{macrocode}
 % Finish.
@@ -71986,11 +72135,7 @@
 %    \begin{macrocode}
 \newrobustcmd*{\LWR at multimedia}{%
     \begingroup%
-    \catcode`\#=12%
-    \catcode`\%=12%
-    \catcode`\&=12%
-    \catcode`\~=12%
-    \catcode`\_=12%
+    \LWR at linkmediacatcodes%
     \LWR at multimediab%
 }
 %    \end{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/lwarp/lwarp.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/lwarp/lwarp.ins	2019-11-10 22:10:15 UTC (rev 52728)
+++ trunk/Master/texmf-dist/source/latex/lwarp/lwarp.ins	2019-11-10 22:10:55 UTC (rev 52729)
@@ -40,6 +40,7 @@
 \file{lwarp-a5comb.sty}{\from{lwarp.dtx}{a5comb}}
 \file{lwarp-abstract.sty}{\from{lwarp.dtx}{abstract}}
 \file{lwarp-academicons.sty}{\from{lwarp.dtx}{academicons}}
+\file{lwarp-accessibility.sty}{\from{lwarp.dtx}{accessibility}}
 \file{lwarp-accsupp.sty}{\from{lwarp.dtx}{accsupp}}
 \file{lwarp-acro.sty}{\from{lwarp.dtx}{acro}}
 \file{lwarp-acronym.sty}{\from{lwarp.dtx}{acronym}}

Added: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-accessibility.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-accessibility.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-accessibility.sty	2019-11-10 22:10:55 UTC (rev 52729)
@@ -0,0 +1,24 @@
+%%
+%% This is file `lwarp-accessibility.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lwarp.dtx  (with options: `accessibility')
+%% This is a generated file.
+%% Copyright 2016-2019 Brian Dunn
+%% 
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%   http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+\LWR at ProvidesPackageDrop{accessibility}[2019/10/14]
+\newcommand{\alt}[1]{\ThisAltText{#1}}
+\newcommand{\newhref}[3]{\ThisAltText{#2}\href{#1}{#3}}%
+\providecommand{\thead}[1]{\textbf{#1}}
+\endinput
+%%
+%% End of file `lwarp-accessibility.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-accessibility.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-afterpage.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-afterpage.sty	2019-11-10 22:10:15 UTC (rev 52728)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-afterpage.sty	2019-11-10 22:10:55 UTC (rev 52729)
@@ -17,6 +17,8 @@
 %% version 2005/12/01 or later.
 \LWR at ProvidesPackageDrop{afterpage}[2014/10/28]
 \newcommand{\afterpage}[1]{#1}
+\LWR at ProvidesPackageDrop{afterpage}[2014/10/28]
+\newcommand{\afterpage}[1]{#1}
 \endinput
 %%
 %% End of file `lwarp-afterpage.sty'.

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-breakurl.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-breakurl.sty	2019-11-10 22:10:15 UTC (rev 52728)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-breakurl.sty	2019-11-10 22:10:55 UTC (rev 52729)
@@ -19,20 +19,16 @@
 \LetLtxMacro\burl\url
 
 \NewDocumentCommand{\LWR at burlaltb}{O{} +m m}{%
-\LWR at ensuredoingapar%
-\LWR at subhyperref{#2}%
-\LWR at subhyperreftext{#3}%
-\endgroup% restore catcodes
+    \LWR at ensuredoingapar%
+    \LWR at subhyperref{#2}%
+    \LWR at subhyperreftext{#3}%
+    \endgroup% restore catcodes
 }
 
 \newrobustcmd*{\burlalt}{%
-\begingroup%
-\catcode`\#=12%
-\catcode`\%=12%
-\catcode`\&=12%
-\catcode`\~=12%
-\catcode`\_=12%
-\LWR at burlaltb%
+    \begingroup%
+    \LWR at linkcatcodes%
+    \LWR at burlaltb%
 }
 
 \LetLtxMacro\urlalt\burlalt

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-caption.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-caption.sty	2019-11-10 22:10:15 UTC (rev 52728)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-caption.sty	2019-11-10 22:10:55 UTC (rev 52729)
@@ -16,6 +16,13 @@
 %% and version 1.3 or later is part of all distributions of LaTeX
 %% version 2005/12/01 or later.
 
+\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 at ProvidesPackagePass{caption}[2019/09/01]
 
 \renewcommand\caption at ibox[3]{%

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-common-multimedia.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-common-multimedia.sty	2019-11-10 22:10:15 UTC (rev 52728)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-common-multimedia.sty	2019-11-10 22:10:55 UTC (rev 52729)
@@ -45,8 +45,8 @@
     }{}%
 }
 \newcommand*{\LWR at multimedia@fileAV}[4]{%
-\filename at parse{#2}%
-\IfFileExists{#2}{%
+\IfFileExists{#2}{% also sets \@filef at und
+\StrSubstitute[100]{\@filef at und}{"}{}[\LWR at parsedfilename]%
     \ifstrequal{#3}{audio}{%
         \begin{BlockClass}{AVviewport}
     }{%
@@ -64,10 +64,10 @@
     \LWR at htmltag{%
         source % space
         src=\textquotedbl%
-        \@filef at und\unskip\textquotedbl\ % space
+        \LWR at parsedfilename\unskip\textquotedbl\ % space
         type=\textquotedbl{}#4\textquotedbl}
     \LWR at startpars
-    \href{\@filef at und}{#1}
+    \href{\LWR at parsedfilename}{#1}
     \LWR at stoppars
     \LWR at htmltag{/#3}\LWR at orignewline
     \end{BlockClass}
@@ -154,11 +154,7 @@
 }
 \newrobustcmd*{\LWR at multimedia}{%
     \begingroup%
-    \catcode`\#=12%
-    \catcode`\%=12%
-    \catcode`\&=12%
-    \catcode`\~=12%
-    \catcode`\_=12%
+    \LWR at linkmediacatcodes%
     \LWR at multimediab%
 }
 \endinput

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-geometry.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-geometry.sty	2019-11-10 22:10:15 UTC (rev 52728)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-geometry.sty	2019-11-10 22:10:55 UTC (rev 52729)
@@ -19,16 +19,8 @@
 
 \LWR at ProvidesPackageDropA{geometry}{2018/04/16}
 \ifbool{LWR at allowanothergeometry}{%
-\newcommand*{\LWR at newgeometryoptions}{reset,}
-
-\DeclareOption*{%
-    \edef\LWR at newgeometryoptions{\LWR at newgeometryoptions\CurrentOption,}%
-}
-\ProcessOptions\relax
-\ifdefvoid{\LWR at newgeometryoptions}{}{
-    \expandafter\LWR at origgeometry\expandafter{\LWR at newgeometryoptions}
-}
-
+    \edef\LWR at tempone{reset,\@ptionlist{\@currname.\@currext}}%
+    \expandafter\LWR at origgeometry\expandafter{\LWR at tempone}%
 }{}% LWR at allowanothergeometry
 \renewcommand*{\geometry}[1]{}
 \renewcommand*{\newgeometry}[1]{}

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-graphics.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-graphics.sty	2019-11-10 22:10:15 UTC (rev 52728)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-graphics.sty	2019-11-10 22:10:55 UTC (rev 52729)
@@ -197,9 +197,9 @@
 \renewcommand*{\LWR at igyscale}{1}%
 \renewcommand*{\LWR at igclass}{inlineimage}%
 \ifdefvoid{\LWR at ThisAltText}{%
-    \renewcommand*{\LWR at igalt}{\ImageAltText}%
+    \edef\LWR at igalt{\ImageAltText}%
 }{%
-    \renewcommand*{\LWR at igalt}{\LWR at ThisAltText}%
+    \edef\LWR at igalt{\LWR at ThisAltText}%
 }%
 \IfValueF{#3}{%
     \IfValueTF{#2}%

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-hyperref.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-hyperref.sty	2019-11-10 22:10:15 UTC (rev 52728)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-hyperref.sty	2019-11-10 22:10:55 UTC (rev 52729)
@@ -33,122 +33,98 @@
 \newcommand*{\hyperbaseurl}[1]{}
 
 \NewDocumentCommand{\LWR at hyperimageb}{m +m}{%
-\LWR at ensuredoingapar%
-\def\LWR at templink{#1}%
-\@onelevel at sanitize\LWR at templink%
-\LWR at htmltag{img src="\LWR at templink" alt="#2" class="hyperimage"}%
-\LWR at ensuredoingapar%
-\endgroup%
+    \LWR at ensuredoingapar%
+    \def\LWR at templink{#1}%
+    \@onelevel at sanitize\LWR at templink%
+    \LWR at htmltag{img src="\LWR at templink" alt="#2" class="hyperimage"}%
+    \LWR at ensuredoingapar%
+    \endgroup%
 }
 
 \newrobustcmd*{\hyperimage}{%
-\begingroup%
-\catcode`\#=12%
-\catcode`\%=12%
-\catcode`\&=12%
-\catcode`\~=12%
-\catcode`\_=12%
-\LWR at hyperimageb%
+    \begingroup%
+    \LWR at linkcatcodes%
+    \LWR at hyperimageb%
 }
 
 \NewDocumentCommand{\LWR at hyperdefb}{m m +m}{%
-\LWR at ensuredoingapar%
-\LWR at sublabel{#1.#2}%
-#3%
-\endgroup%
+    \LWR at ensuredoingapar%
+    \LWR at sublabel{#1.#2}%
+    #3%
+    \endgroup%
 }
 
 \newcommand*{\hyperdef}{%
-\begingroup%
-\catcode`\#=12%
-\catcode`\%=12%
-\catcode`\&=12%
-\catcode`\~=12%
-\catcode`\_=12%
-\LWR at hyperdefb%
+    \begingroup%
+    \LWR at linkcatcodes%
+    \LWR at hyperdefb%
 }
 
 \newcommand{\LWR at hyperreffinish}[1]{%
-\begingroup%
-\RenewDocumentCommand{\ref}{}{\LWR at ref@ignorestar}%
-#1%
-\endgroup%
-\LWR at htmltag{/a}%
+    \begingroup%
+    \RenewDocumentCommand{\ref}{}{\LWR at ref@ignorestar}%
+    #1%
+    \endgroup%
+    \LWR at htmltag{/a}%
 }
 
 \newcommand*{\LWR at hyperrefbb}[3]{%
-\LWR at htmltag{%
-    a href="%
-        \detokenize\expandafter{#1}\LWR at hashmark%
-        \detokenize\expandafter{#2}.\detokenize\expandafter{#3}%
-    "%
-    \LWR at addlinktitle%
-}%
-\endgroup%
-\LWR at hyperreffinish%
+    \LWR at htmltag{%
+        a href="%
+            \detokenize\expandafter{#1}\LWR at hashmark%
+            \detokenize\expandafter{#2}.\detokenize\expandafter{#3}%
+        "%
+        \LWR at addlinktitle%
+    }%
+    \endgroup%
+    \LWR at hyperreffinish%
 }
 
 \newrobustcmd*{\LWR at hyperrefb}{%
-\begingroup%
-\catcode`\#=12%
-\catcode`\%=12%
-\catcode`\&=12%
-\catcode`\~=12%
-\catcode`\_=12%
-\LWR at hyperrefbb%
+    \begingroup%
+    \LWR at linkcatcodes%
+    \LWR at hyperrefbb%
 }
 
 
 \NewDocumentCommand{\LWR at hyperrefcb}{O{label}}{%
-\LWR at startref{#1}%
-\endgroup%
-\LWR at hyperreffinish%
+    \LWR at startref{#1}%
+    \endgroup%
+    \LWR at hyperreffinish%
 }
 
 \newcommand*{\LWR at hyperrefc}{%
-\begingroup%
-\catcode`\#=12%
-\catcode`\%=12%
-\catcode`\&=12%
-\catcode`\~=12%
-\catcode`\_=12%
-\LWR at hyperrefcb%
+    \begingroup%
+    \LWR at linkcatcodes%
+    \LWR at hyperrefcb%
 }
 
 \DeclareRobustCommand*{\hyperref}{%
-\LWR at ensuredoingapar%
-\@ifnextchar[\LWR at hyperrefc\LWR at hyperrefb%
+    \LWR at ensuredoingapar%
+    \@ifnextchar[\LWR at hyperrefc\LWR at hyperrefb%
 }
 
 \NewDocumentCommand{\LWR at 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 at hypertargetb%
+    \begingroup%
+    \LWR at linkcatcodes%
+    \LWR at hypertargetb%
 }
 
 \DeclareDocumentCommand{\LWR at hyperlinkb}{m}{%
-\LWR at hyperrefcb[LWR-ht-#1]%
+    \LWR at hyperrefcb[LWR-ht-#1]%
 }
 
 \DeclareDocumentCommand{\hyperlink}{}{%
-\LWR at ensuredoingapar%
-\begingroup%
-\catcode`\#=12%
-\catcode`\%=12%
-\catcode`\&=12%
-\catcode`\~=12%
-\catcode`\_=12%
-\LWR at hyperlinkb%
+    \LWR at ensuredoingapar%
+    \begingroup%
+    \LWR at linkcatcodes%
+    \LWR at hyperlinkb%
 }
 
 \NewDocumentCommand{\autoref}{s m}{%
@@ -171,7 +147,7 @@
 \newcommand{\texorpdfstring}[2]{#1}
 
 \def\hypercalcbp#1{%
-\strip at pt\dimexpr 0.99626401\dimexpr(#1)\relax\relax
+    \strip at pt\dimexpr 0.99626401\dimexpr(#1)\relax\relax
 }%
 
 \newcommand{\Acrobatmenu}[2]{}

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-media9.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-media9.sty	2019-11-10 22:10:15 UTC (rev 52728)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-media9.sty	2019-11-10 22:10:55 UTC (rev 52729)
@@ -66,10 +66,7 @@
 
 \newrobustcmd*{\includemedia}{%
     \begingroup%
-    \catcode`\#=12%
-    \catcode`\%=12%
-    \catcode`\~=12%
-    \catcode`\_=12%
+    \LWR at linkmediacatcodes%
     \LWR at includemediab%
 }
 \newcommand*{\mediabutton}[2][]{}

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-movie15.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-movie15.sty	2019-11-10 22:10:15 UTC (rev 52728)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-movie15.sty	2019-11-10 22:10:55 UTC (rev 52729)
@@ -32,11 +32,7 @@
 
 \newrobustcmd*{\includemovie}{%
     \begingroup%
-    \catcode`\#=12%
-    \catcode`\%=12%
-    \catcode`\&=12%
-    \catcode`\~=12%
-    \catcode`\_=12%
+    \LWR at linkmediacatcodes%
     \LWR at includemovieb%
 }
 

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-titlesec.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-titlesec.sty	2019-11-10 22:10:15 UTC (rev 52728)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-titlesec.sty	2019-11-10 22:10:55 UTC (rev 52729)
@@ -59,7 +59,7 @@
 
 \newcommand{\assignpagestyle}[2]{#2}
 
-\NewDocumentCommand{\titleclass}{m o m o}
+\NewDocumentCommand{\titleclass}{m o m o}{}
 
 \endinput
 %%

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp.sty	2019-11-10 22:10:15 UTC (rev 52728)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp.sty	2019-11-10 22:10:55 UTC (rev 52729)
@@ -17,7 +17,7 @@
 %% version 2005/12/01 or later.
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
 \ProvidesPackage{lwarp}
-    [2019/10/15 v0.77  Allows LaTeX to directly produce HTML5 output.]
+    [2019/11/07 v0.78  Allows LaTeX to directly produce HTML5 output.]
 
 
 
@@ -188,6 +188,7 @@
 \LWR at loadafter{a5comb}
 \LWR at notmemoirloadafter{abstract}
 \LWR at loadafter{academicons}
+\LWR at loadafter{accessibility}
 \LWR at loadafter{accsupp}
 \LWR at loadafter{acro}
 \LWR at loadafter{acronym}
@@ -1077,16 +1078,28 @@
 
 \begin{warpall}
 
-\RequirePackage{filecontents}
+\@ifundefined{filec at ntents@opt}{% older kernel, discard optional args
 
-\@ifpackagelater{filecontents}{2011/10/09}%
-{}
-{
-\newwrite\fcwrite
-\let\LWR at origfilec@ntents\filec at ntents
-\def\filec at ntents{\def\chardef##1\write{\let\reserved at c\fcwrite}\LWR at origfilec@ntents}
-}
+    \RequirePackage{filecontents}
 
+    \LetLtxMacro\LWR at orig@filec at ntents\filec at ntents
+
+    \@ifpackagelater{filecontents}{2011/10/08}
+    {
+        \renewcommand*{\filec at ntents}[1][]{\LWR at orig@filec at ntents}
+    }
+    {% patch older package for morewrites
+        \newwrite\fcwrite
+        \renewcommand*{\filec at ntents}[1][]{%
+            \def\chardef##1\write{\let\reserved at c\fcwrite}%
+            \LWR at orig@filec at ntents%
+        }
+    }
+
+}% older kernel
+{% newer kernel
+}% newer kernel, filecontents env accepts optional args, do not load package
+
 \end{warpall}
 
 \begin{warpHTML}
@@ -1138,6 +1151,7 @@
 \begin{warpall}
 
 \LetLtxMacro\LWR at origRequirePackage\RequirePackage
+\LetLtxMacro\LWR at origRequirePackageWithOptions\RequirePackageWithOptions
 
 \newcommand*{\LWR at requirepackagenames}{}
 
@@ -1259,13 +1273,13 @@
 \IfValueTF{#1}%
 {% options given
     \IfValueTF{#3}% version given?
-    {\LWR at origRequirePackage[#1]{\LWR at parsedrequirepackagenames}[#3]}%
-    {\LWR at origRequirePackage[#1]{\LWR at parsedrequirepackagenames}}%
+        {\LWR at origRequirePackage[#1]{\LWR at parsedrequirepackagenames}[#3]}%
+        {\LWR at origRequirePackage[#1]{\LWR at parsedrequirepackagenames}}%
 }%
 {% no options given
     \IfValueTF{#3}% version given?
-    {\LWR at origRequirePackage{\LWR at parsedrequirepackagenames}[#3]}%
-    {\LWR at origRequirePackage{\LWR at parsedrequirepackagenames}}%
+        {\LWR at origRequirePackage{\LWR at parsedrequirepackagenames}[#3]}%
+        {\LWR at origRequirePackage{\LWR at parsedrequirepackagenames}}%
 }%
 }
 \LetLtxMacro\usepackage\RequirePackage
@@ -1279,15 +1293,17 @@
     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 at origRequirePackage{#1}[#2]}
-{\LWR at origRequirePackage{#1}}
+    {\ProvidesPackage{lwarp-#1}[#2]}
+    {\ProvidesPackage{lwarp-#1}}
+\DeclareOption*{%
+    \PassOptionsToPackage{\CurrentOption}{#1}%
+}
+\ProcessOptions\relax%
+\IfValueTF{#2}%
+    {\LWR at origRequirePackage{#1}[#2]}%
+    {\LWR at origRequirePackage{#1}}%
 \DeclareOption*{}%
-\ProcessOptions\relax
+\ProcessOptions\relax%
 }
 
 \newcommand*{\LWR at ProvidesPackageDropA}[2]{%
@@ -1928,7 +1944,7 @@
 
 
 \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
@@ -3464,7 +3480,7 @@
 
 
 \begin{LWRwriteconf}
-\begin{filecontents*}{lwarp_sagebrush.css}
+\begin{filecontents*}[overwrite]{lwarp_sagebrush.css}
 @import url("lwarp.css") ;
 
 A:link {color:#105030 ; text-decoration: none ; }
@@ -3696,7 +3712,7 @@
 
 
 \begin{LWRwriteconf}
-\begin{filecontents*}{lwarp_formal.css}
+\begin{filecontents*}[overwrite]{lwarp_formal.css}
 @import url("lwarp.css") ;
 
 A:link {color:#802020 ; text-decoration:none; }
@@ -3889,7 +3905,7 @@
 
 
 \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 --- ) */
 
@@ -3907,7 +3923,7 @@
 
 
 \begin{LWRwriteconf}
-\begin{filecontents*}{lwarp.ist}
+\begin{filecontents*}[overwrite]{lwarp.ist}
 preamble
 "\\begin{theindex}
   \\providecommand*\\lettergroupDefault[1]{}
@@ -3932,7 +3948,7 @@
 
 
 \begin{LWRwriteconf}
-\begin{filecontents*}{lwarp.xdy}
+\begin{filecontents*}[overwrite]{lwarp.xdy}
 (require "tex/inputenc/latin.xdy")
 (merge-rule "\\PS *" "Postscript")
 (require "texindy.xdy")
@@ -3982,7 +3998,7 @@
 
 
 \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">
@@ -4083,12 +4099,12 @@
 
 
 \begin{LWR at createlwarpmk}
-\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 ()
@@ -5390,11 +5406,16 @@
 \providecommand*{\LWR at FBcancel}{}
 
 \AtBeginDocument{%
+\@ifundefined{NoAutoSpacing}%
+    {}%
+    {%
+        \LetLtxMacro\LWR at FBcancel\NoAutoSpacing%
+    }%
+
 \@ifundefined{frenchbsetup}%
 {}%
 {%
     \frenchbsetup{FrenchFootnotes=false}%
-    \LetLtxMacro\LWR at FBcancel\NoAutoSpacing%
     \renewrobustcmd*{\FBcolonspace}{%
         \begingroup%
         \LWR at FBcancel%
@@ -9104,7 +9125,7 @@
 }
 
 \AtBeginDocument{
-\@ifundefined{frenchbsetup}%
+\@ifundefined{NoAutoSpacing}%
 {% no babel-french
     \newcommand*{\LWR at nullifyNoAutoSpacing}{}
 }% no babel-french
@@ -9448,85 +9469,90 @@
 }
 }
 
+\newcommand*{\LWR at linkcatcodes}{%
+    \catcode`\#=12%
+    \catcode`\%=12%
+    \catcode`\&=12%
+    \catcode`\~=12%
+    \catcode`\_=12%
+    \LWR at FBcancel%
+}
+
+\newcommand*{\LWR at linkmediacatcodes}{%
+    \catcode`\#=12%
+    \catcode`\%=12%
+    \catcode`\~=12%
+    \catcode`\_=12%
+    \LWR at FBcancel%
+}
+
 \NewDocumentCommand{\LWR at subhyperref}{m}{%
-\LWR at traceinfo{LWR at subhyperref !#1!}%
-\LWR at sanitize{#1}%
-\LWR at htmltag{%
-    a href="\LWR at sanitized" % space
-    \LWR at addlinktitle % space
-    target="\_{}blank" % space
-}%
+    \LWR at traceinfo{LWR at subhyperref !#1!}%
+    \LWR at sanitize{#1}%
+    \LWR at htmltag{%
+        a href="\LWR at sanitized" % space
+        \LWR at addlinktitle % space
+        target="\_{}blank" % space
+    }%
 }
 
 \newcommand{\LWR at subhyperreftext}[1]{%
-#1%
-\LWR at htmltag{/a}%
-\LWR at ensuredoingapar%
+    #1%
+    \LWR at htmltag{/a}%
+    \LWR at ensuredoingapar%
 }
 
 \NewDocumentCommand{\LWR at subhyperrefclass}{m +m m}{%
-\LWR at htmltag{%
-    a % space
-    href="\begingroup\@sanitize#1\endgroup" % space
-    class="#3" % space
-    \LWR at addlinktitle % space
-}\LWR at orignewline%
-#2\LWR at orignewline%
-\LWR at htmltag{/a}%
-\LWR at ensuredoingapar%
+    \LWR at htmltag{%
+        a % space
+        href="\begingroup\@sanitize#1\endgroup" % space
+        class="#3" % space
+        \LWR at addlinktitle % space
+    }\LWR at orignewline%
+    #2%
+    \LWR at htmltag{/a}%
+    \LWR at ensuredoingapar%
 }
 
 \DeclareDocumentCommand{\LWR at hrefb}{O{} m}{%
-\LWR at ensuredoingapar%
-\LWR at subhyperref{#2}%
-\endgroup% restore catcodes
-\LWR at subhyperreftext%
+    \LWR at ensuredoingapar%
+    \LWR at subhyperref{#2}%
+    \endgroup% restore catcodes
+    \LWR at subhyperreftext%
 }
 
 \newrobustcmd*{\href}{%
-\begingroup%
-\catcode`\#=12%
-\catcode`\%=12%
-\catcode`\&=12%
-\catcode`\~=12%
-\catcode`\_=12%
-\LWR at hrefb%
+    \begingroup%
+    \LWR at linkcatcodes%
+    \LWR at hrefb%
 }
 
 \newcommand*{\LWR at nolinkurlb}[1]{%
-\LWR at ensuredoingapar%
-\def\LWR at templink{#1}%
-\@onelevel at sanitize\LWR at templink%
-\LWR at templink%
-\endgroup%
+    \LWR at ensuredoingapar%
+    \def\LWR at templink{#1}%
+    \@onelevel at sanitize\LWR at templink%
+    \LWR at templink%
+    \endgroup%
 }
 
 \newrobustcmd*{\nolinkurl}{%
-\begingroup%
-\catcode`\#=12%
-\catcode`\%=12%
-\catcode`\&=12%
-\catcode`\~=12%
-\catcode`\_=12%
-\LWR at nolinkurlb%
+    \begingroup%
+    \LWR at linkcatcodes%
+    \LWR at nolinkurlb%
 }
 
 \DeclareDocumentCommand{\LWR at urlb}{m}{%
-\LWR at ensuredoingapar%
-\def\LWR at templink{#1}%
-\@onelevel at sanitize\LWR at templink%
-\href{\LWR at templink}{\LWR at templink}%
-\endgroup%
+    \LWR at ensuredoingapar%
+    \def\LWR at templink{#1}%
+    \@onelevel at sanitize\LWR at templink%
+    \href{\LWR at templink}{\LWR at templink}%
+    \endgroup%
 }
 
 \newrobustcmd*{\url}{%
-\begingroup%
-\catcode`\#=12%
-\catcode`\%=12%
-\catcode`\&=12%
-\catcode`\~=12%
-\catcode`\_=12%
-\LWR at urlb%
+    \begingroup%
+    \LWR at linkcatcodes%
+    \LWR at urlb%
 }
 
 \newcommand*{\LWR at subinlineimage}[5]{%
@@ -12191,7 +12217,8 @@
 \newrobustcmd*{\LWR at HTML@slshape}{\renewcommand*{\LWR at f@shape}{sl}}
 \LWR at formatted{slshape}
 
-\renewrobustcmd*{\normalfont}{\rmfamily\mdseries\upshape\ulcshape}
+\newrobustcmd*{\LWR at HTML@normalfont}{\rmfamily\mdseries\upshape\ulcshape}
+\LWR at formatted{normalfont}
 
 
 \renewcommand{\sp}[1]{\text{<sup>#1</sup>}{}}



More information about the tex-live-commits mailing list