texlive[49377] trunk: lwarp (10dec18)

commits+karl at tug.org commits+karl at tug.org
Mon Dec 10 23:58:31 CET 2018


Revision: 49377
          http://tug.org/svn/texlive?view=revision&revision=49377
Author:   karl
Date:     2018-12-10 23:58:31 +0100 (Mon, 10 Dec 2018)
Log Message:
-----------
lwarp (10dec18)

Modified Paths:
--------------
    trunk/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua
    trunk/Build/source/texk/texlive/linked_scripts/tlshell/tlshell.tcl
    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-addlines.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-anonchap.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-scrlayer-scrpage.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-scrlayer.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-tocbibind.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp.sty

Added Paths:
-----------
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-biblatex.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-bsheaders.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-gmeometric.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-marginal.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-rmpage.sty
    trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-scrpage2.sty

Modified: trunk/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua
===================================================================
--- trunk/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua	2018-12-10 22:57:48 UTC (rev 49376)
+++ trunk/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua	2018-12-10 22:58:31 UTC (rev 49377)
@@ -2,7 +2,7 @@
 
 -- Copyright 2016-2018 Brian Dunn
 
-printversion = "v0.63"
+printversion = "v0.64"
 requiredconfversion = "1" -- also at *lwarpmk.conf
 
 function printhelp ()

Modified: trunk/Build/source/texk/texlive/linked_scripts/tlshell/tlshell.tcl
===================================================================
--- trunk/Build/source/texk/texlive/linked_scripts/tlshell/tlshell.tcl	2018-12-10 22:57:48 UTC (rev 49376)
+++ trunk/Build/source/texk/texlive/linked_scripts/tlshell/tlshell.tcl	2018-12-10 22:58:31 UTC (rev 49377)
@@ -75,9 +75,9 @@
   if $::ddebug {
     puts stderr $s
     # On windows, stderr output goes nowhere.
-    # Therefore also debug output for the log toplevel.
+    # Therefore also debug output for the log dialog.
     lappend ::dbg_log $s
-    # Track debug output in the log toplevel if it is running:
+    # Track debug output in the log dialog if it is running:
     if [winfo exists .tllg.dbg.tx] {
       .tllg.dbg.tx configure -state normal
       .tllg.dbg.tx insert end "$s\n"
@@ -134,33 +134,40 @@
 
   # wallpaper frame; see populate_main
   pack [ttk::frame .tlmg.bg] -fill both -expand 1
-  ppack [ttk::frame .tlmg.tx] -in .tlmg.bg -side top -fill both -expand 1
-  pack [ttk::scrollbar .tlmg.tx.scroll -command ".tlmg.tx.txt yview"] \
-      -side right -fill y
-  ppack [text .tlmg.tx.txt -height 20 -width 60 -bd 2 -relief groove \
-      -wrap word -yscrollcommand ".tlmg.tx.scroll set"] -expand 1 -fill both
 
-  .tlmg.tx.txt insert end $str
-  .tlmg.tx.txt configure -state disabled
-
   # buttons
   pack [ttk::frame .tlmg.bts] -in .tlmg.bg -side bottom -fill x
   if {$type eq "ok" || $type eq "okcancel"} {
-    ttk::button .tlmg.ok -text [__ "ok"] -command "end_dlg \"ok\" .tlmg"
+    ttk::button .tlmg.ok -text [__ "Ok"] -command "end_dlg \"ok\" .tlmg"
     ppack .tlmg.ok -in .tlmg.bts -side right
   }
   if {$type eq "yesnocancel"} {
-    ttk::button .tlmg.yes -text [__ "yes"] -command "end_dlg \"yes\" .tlmg"
+    ttk::button .tlmg.yes -text [__ "Yes"] -command "end_dlg \"yes\" .tlmg"
     ppack .tlmg.yes -in .tlmg.bts -side right
     ttk::button .tlmg.no -text [__ "no"] -command "end_dlg \"no\" .tlmg"
     ppack .tlmg.no -in .tlmg.bts -side right
   }
   if {$type eq "yesnocancel" || $type eq "okcancel"} {
-    ttk::button .tlmg.cancel -text [__ "cancel"] -command \
+    ttk::button .tlmg.cancel -text [__ "Cancel"] -command \
         "end_dlg \"cancel\" .tlmg"
     ppack .tlmg.cancel -in .tlmg.bts -side right
   }
+  if [winfo exists .tlmg.cancel] {
+    bind .tlmg <Escape> {.tlmg.cancel invoke}
+  } elseif {$type eq "ok"} {
+    bind .tlmg <Escape> {.tlmg.ok invoke}
+  }
 
+  ppack [ttk::frame .tlmg.tx] -in .tlmg.bg -side top -fill both -expand 1
+  pack [ttk::scrollbar .tlmg.tx.scroll -command ".tlmg.tx.txt yview"] \
+      -side right -fill y
+  ppack [text .tlmg.tx.txt -height 20 -width 60 -bd 2 -relief groove \
+      -wrap word -yscrollcommand ".tlmg.tx.scroll set"] -expand 1 -fill both
+
+  .tlmg.tx.txt insert end $str
+  .tlmg.tx.txt configure -state disabled
+
+  # default resizable
   place_dlg .tlmg $p
   tkwait window .tlmg
   return $::dialog_ans
@@ -186,122 +193,116 @@
 
 ### enabling and disabling user interaction
 
-proc enable_menu_controls {y_n} {
-  if {! $y_n} {
-    . configure -menu .mn_empty
-    return
+proc selective_dis_enable {} {
+  # disable actions which make no sense at the time
+
+  # buttons in the middle section
+  set pkg_buttons [list .mrk_inst .mrk_upd .mrk_rem .upd_tlmgr .upd_all]
+  foreach b [list .mrk_inst .mrk_upd .mrk_rem .upd_tlmgr .upd_all] {
+    $b state !disabled
   }
-  . configure -menu .mn
-  if {! $::n_updates} {
-    .mn.pkg entryconfigure $::inx_upd_all -state disabled
-    .mn.pkg entryconfigure $::inx_upd_tlmgr -state disabled
+  if $::do_restore {.mrk_rest state !disabled}
+
+  if {!$::have_remote} {
+    foreach b [list .mrk_inst .mrk_upd .upd_tlmgr .upd_all] {
+      $b state disabled
+    }
+  } elseif {!$::n_updates} {
+    foreach b [list .mrk_upd .upd_tlmgr .upd_all] {
+      $b state disabled
+    }
   } elseif $::need_update_tlmgr {
-    .mn.pkg entryconfigure $::inx_upd_all -state disabled
-    .mn.pkg entryconfigure $::inx_upd_tlmgr -state normal
-  } else {
-    .mn.pkg entryconfigure $::inx_upd_all -state normal
-    .mn.pkg entryconfigure $::inx_upd_tlmgr -state disabled
+    foreach b [list .mrk_inst .mrk_upd] {
+      $b state disabled
+    }
+  } elseif {!$::need_update_tlmgr} {
+    .upd_tlmgr state disabled
   }
+
+  # platforms menu item
   if {$::tcl_platform(platform) ne "windows"} {
-    if $::have_remote {
+    if {!$::have_remote || $::need_update_tlmgr}  {
+      .mn.opt entryconfigure $::inx_platforms -state disabled
+    } else {
       .mn.opt entryconfigure $::inx_platforms -state normal
-    } else {
-      .mn.opt entryconfigure $::inx_platforms -state disabled
     }
   }
-}; # enable_menu_controls
+}; # selective_dis_enable
 
-proc enable_widgets {y_n} {
+proc total_dis_enable {y_n} {
+  # to be invoked when tlmgr becomes busy or idle,, i.e.
+  # if it starts with a tlmgr command through run_cmds
+  # or read_line notices the command(s) ha(s|ve) ended.
   # This proc should cover all active interface elements of the main window.
   # But if actions are initiated via a dialog, the main window can be
   # deactivated by a grab and focus on the dialog instead.
-  enable_menu_controls $y_n
 
-  if $y_n {
-    set st !disabled
-    set ::busy [__ "IDLE"]
+  if {!$y_n} {
+    . configure -menu .mn_empty
+    foreach c [winfo children .] {
+      if {$c ne ".showlogs" && [winfo class $c] in \
+              [list TButton TCheckbutton TRadiobutton TEntry Treeview]} {
+        # this should cover all relevant widgets in the main window
+        $c state disabled
+      }
+    }
+    set ::busy [__ "Running"]
   } else {
-    set st disabled
-    set ::busy [__ "BUSY"]
+    . configure -menu .mn
+    foreach c [winfo children .] {
+      if {[winfo class $c] in \
+              [list TButton TCheckbutton TRadiobutton TEntry Treeview]} {
+        $c state !disabled
+      }
+    }
+    set ::busy [__ "Idle"]
+    selective_dis_enable
   }
+} ; # total_dis_enable
 
-  # command entry
-  .ent.b configure -state $st
-  .ent.e configure -state $st
-
-  # filter options
-  # status
-  .pkfilter.inst configure -state $st
-  .pkfilter.alls configure -state $st
-  .pkfilter.upd configure -state $st
-  # detail
-  .pkfilter.alld configure -state $st
-  .pkfilter.coll configure -state $st
-  .pkfilter.schm configure -state $st
-
-  # mark commands
-  .mrk_all configure -state $st
-  .mrk_none configure -state $st
-
-  # search
-  .pksearch.e configure -state $st
-  .pksearch.d configure -state $st
-
-  # packages
-  #.pkglist configure -state $st
-  .pkglist state $st
-
-  # final buttons
-  .q configure -state $st
-  .r configure -state $st
-  .t configure -state $st
-  .showlogs configure -state $st
-} ; # enable_widgets
-
 ##### tl global data ##################################################
 
-set last_cmd ""
+set ::last_cmd ""
 
-set progname [info script]
-regexp {^.*[\\/]([^\\/\.]*)(?:\....)?$} $progname dummy progname
-set procid [pid]
+set ::progname [info script]
+regexp {^.*[\\/]([^\\/\.]*)(?:\....)?$} $progname dummy ::progname
+set ::procid [pid]
 
 # package repositories
-array unset repos
+array unset ::repos
 
 # mirrors: dict of dicts of lists of urls per country per continent
-set mirrors {}
+set ::mirrors [dict create]
 
 # dict of (local and global) package dicts
-set pkgs [dict create]
+set ::pkgs [dict create]
 
-if {$::tcl_platform(platform) ne "windows"} {
-  set ::platforms [dict create]
-}
+# platforms
+set ::platforms [dict create]
 
-set have_remote 0 ; # remote packages info not yet loaded
-set need_update_tlmgr 0
-set n_updates 0
-set tlshell_updatable 0
+set ::have_remote 0 ; # remote packages info not yet loaded
+set ::need_update_tlmgr 0
+set ::n_updates 0
+set ::tlshell_updatable 0
 
 ## data to be displayed ##
 
 # sorted display data for packages; package data stored as lists
-set filtered [dict create]
+set ::filtered [dict create]
 
 # selecting packages for display: status and detail
-set stat_opt "inst"
-set dtl_opt "all"
+set ::stat_opt "inst"
+set ::dtl_opt "all"
 # searching packages for display; also search short descriptions?
-set search_desc 0
+set ::search_desc 0
 
 ##### handling tlmgr via pipe and stderr tempfile #####################
 
-set prmpt "tlmgr>"
-set busy [__ "BUSY"]
+set ::prmpt "tlmgr>"
+set ::busy [__ "Running"]
 
 # copy logs to log window yes/no
-set show_output 0
+set ::show_output 0
 
 # about [chan] gets:
 # if a second parameter, in this case l, is supplied
@@ -374,7 +375,7 @@
     if $::ddebug {puts $::flid $l}
     if {[string first $::prmpt $l] == 0} {
       # prompt line: we are done with the current command
-      enable_widgets 1 ; # this may have to be redone later
+      total_dis_enable 1 ; # this may have to be redone later
       # catch up with stderr
       read_err_tempfile
       if $::show_output {
@@ -394,8 +395,8 @@
   }
 } ; # read_line
 
-# copy error strings to error page in logs toplevel .tllg and send it to top.
-# This by itself does not map the logs toplevel .tllg
+# copy error strings to error page in logs dialog .tllg and send it to top.
+# This by itself does not map the logs dialog .tllg
 
 proc show_err_log {} {
   #do_debug "show_err_log"
@@ -436,6 +437,7 @@
   }
   .tllg.status configure -text [__ "Idle"]
   .tllg.close configure -state !disabled
+  bind .tllg <Escape> {.tllg.close invoke}
 }
 
 ##### running tlmgr commands #####
@@ -445,7 +447,6 @@
   set ::show_output $show
   do_debug "run_cmds \"$cmds\""
   if $::ddebug {puts $::flid "\n$cmds"}
-  enable_widgets 0
   set ::out_log {}
   set ::err_log {}
   if $show {
@@ -458,6 +459,10 @@
     set cmd [lindex $cmds $i]
     set ::last_cmd $cmd
     unset -nocomplain ::done_waiting
+    # disable widgets for each new command,
+    # since read_line will re-enable them
+    # when a particular command is finished
+    total_dis_enable 0
     chan puts $::tlshl $cmd
     chan flush $::tlshl
     if {$i < [expr {$l-1}]} {vwait ::done_waiting}
@@ -492,15 +497,17 @@
 
 # displayed global status info is updated by update_globals.
 # update button/menu states are set at initialization and updated
-# by update_globals, both via the enable_menu_controls proc
+# by update_globals, both via the selective_dis_enable proc
 
 # get_packages_info_local is invoked only once, at initialization.  After
 # installations and removals, the collected information is updated by
 # update_local_revnumbers.
+# Both procs also invoke get_platforms
 
 # get_packages_info_remote will be invoked by collect_filtered if
 # ::have_remote is false. Afterwards, ::have_remote will be true, and
 # therefore get_packages_info_remote will not be called again.
+# get_packages_info_remot also invokes get_platforms
 # get_packages_info_remote invokes update_globals.
 
 # update_local_revnumbers will be invoked after any updates. It also
@@ -552,7 +559,7 @@
     .topf.luptodate configure -text [__ "Unknown"]
   }
   # ... and status of update buttons
-  enable_menu_controls 1
+  selective_dis_enable
 }
 
 # The package display treeview widget in the main window has columns
@@ -646,6 +653,25 @@
   display_packages_info
 } ; # collect_filtered
 
+# derive the set of platforms from the dictionary of packages:
+# collect the values $plname from packages 'tex\.$plname'
+proc get_platforms {} {
+  # guarantee fresh start
+  foreach k $::platforms {dict unset ::platforms $k}
+  set ::platforms [dict create]
+  # glob-style matching: $k should start with "tex."
+  foreach k [dict keys $::pkgs "tex.*"] {
+    set plname [string range $k 4 end]
+    if {$plname eq ""} continue
+    set pl [dict create "cur" 0 "fut" 0]
+    if {[dict get $::pkgs $k "localrev"] > 0} {
+      dict set pl "cur" 1
+      dict set pl "fut" 1
+    }
+    dict set ::platforms $plname $pl
+  }
+}
+
 # get fresh package list. invoked at program start
 # some local packages may not be available online.
 # to test, create local dual-platform installation from dvd, try to update
@@ -676,6 +702,7 @@
                "rcatv" 0 "category" $catg shortdesc $pdescr]
     }
   }
+  get_platforms
 } ; # get_packages_info_local
 
 # remote: preserve information on installed packages
@@ -714,8 +741,9 @@
       dict set ::pkgs $nm "shortdesc" $pdescr
     }
   }
+  get_platforms
   set ::have_remote 1
-  .topf.loaded configure -text "Loaded"
+  .topf.loaded configure -text "Loaded" -foreground black
   update_globals
   return 1
 } ; # get_packages_info_remote
@@ -739,6 +767,7 @@
       dict set ::pkgs $pk $pk_dict
     }
   }
+  get_platforms
   update_globals
 } ; # update_local_revnumbers
 
@@ -746,7 +775,7 @@
 
 # if invoked via run_cmds, it tracks progress of (a) tlmgr command(s).
 # run_cmds will temporarily disable the close button
-# and set .tllg.status to busy via enable_widgets 0.
+# and set .tllg.status to busy via total_dis_enable 0.
 # otherwise, it shows the output of the last completed (list of) command(s).
 
 # Note that run_cmds clears ::out_log and ::err_log, but not ::dbg_log.
@@ -758,6 +787,14 @@
   # wallpaper
   pack [ttk::frame .tllg.bg] -fill both -expand 1
 
+  # close button and busy label
+  pack [ttk::frame .tllg.bottom] -in .tllg.bg -side bottom -fill x
+  ttk::button .tllg.close -text [__ "Close"] -command {end_dlg 0 .tllg}
+  ppack .tllg.close -in .tllg.bottom -side right -anchor e
+  ppack [ttk::label .tllg.status -anchor w] -in .tllg.bottom -side left
+  bind .tllg <Escape> {.tllg.close invoke}
+
+  # notebook pages and scrollbars
   ttk::frame .tllg.log
   pack [ttk::scrollbar .tllg.log.scroll -command ".tllg.log.tx yview"] \
       -side right -fill y
@@ -802,6 +839,7 @@
     .tllg.dbg.tx yview moveto 1
   }
 
+  # collect pages in notebook widget
   pack [ttk::notebook .tllg.logs] -in .tllg.bg -side top -fill both -expand 1
   .tllg.logs add .tllg.log -text [__ "Output"]
   .tllg.logs add .tllg.err -text [__ "Errors"]
@@ -812,13 +850,8 @@
   raise .tllg.err .tllg.logs
   raise .tllg.log .tllg.logs
 
-  pack [ttk::frame .tllg.bottom] -in .tllg.bg -side bottom -fill x
-  ttk::button .tllg.close -text [__ "Close"] -command {end_dlg 0 .tllg}
-  ppack .tllg.close -in .tllg.bottom -side right -anchor e
-  ppack [ttk::label .tllg.status -anchor w] -in .tllg.bottom -side left
-
+  # default resizable
   place_dlg .tllg .
-  wm resizable .tllg 1 1
 } ; # show_logs
 
 ##### repositories ###############################################
@@ -1073,7 +1106,7 @@
 # main repository dialog
 proc repository_dialog {} {
 
-  # dialog toplevel with
+  # dialog with
   # - popup menu of mirrors (parse tlpkg/installer/ctan-mirrors.pl)
   # - text entry box
   # - directory browser button
@@ -1085,7 +1118,7 @@
   # wallpaper frame; see populate_main
   pack [ttk::frame .tlr.bg] -expand 1 -fill x
 
-  pack [ttk::frame .tlr.info] -in .tlr.bg -fill x
+  pack [ttk::frame .tlr.info] -in .tlr.bg -expand 1 -fill x
   grid columnconfigure .tlr.info 1 -weight 1
   set row -1
 
@@ -1099,8 +1132,8 @@
   incr row
   pgrid [ttk::label .tlr.lnew -text [__ "New"]] \
       -in .tlr.info -row $row -column 0 -sticky w
-  pgrid [ttk::entry .tlr.new -width 40] \
-      -in .tlr.info -row $row -column 1 -columnspan 2 -sticky w
+  pgrid [ttk::entry .tlr.new] \
+      -in .tlr.info -row $row -column 1 -columnspan 2 -sticky ew
 
   ### three ways to specify a repository ###
   pack [ttk::frame .tlr.mirbuttons] -in .tlr.bg -fill x
@@ -1173,9 +1206,10 @@
   ppack .tlr.save -in .tlr.closebuttons -side right
   ttk::button .tlr.abort -text [__ "Abort"] -command {end_dlg "" .tlr}
   ppack .tlr.abort -in .tlr.closebuttons -side right
+  bind .tlr <Escape> {.tlr.abort invoke}
 
+  wm resizable .tlr 1 0
   place_dlg .tlr .
-  wm resizable .tlr 0 0
 } ; # repository_dialog
 
 ### platforms
@@ -1182,8 +1216,6 @@
 
 if {$::tcl_platform(platform) ne "windows"} {
 
-  # the ::platforms dict has been created earlier
-
   proc toggle_pl_marked {pl cl} {
     # toggle_pl_marked is triggered by a mouse click only in column #1.
     # 'fut'[ure] should get updated in ::platforms _and_ in .tlpl.pl.
@@ -1246,19 +1278,6 @@
 
   # the platforms dialog
   proc platforms_select {} {
-    run_cmd_waiting "platform list"
-    set ::platforms {}
-    foreach l $::out_log {
-      if [regexp {^\s+(\S+)$} $l m p] {
-        dict set ::platforms $p {}
-        dict set ::platforms $p "cur" 0
-        dict set ::platforms $p "fut" 0
-      } elseif [regexp {^\(i\)\s+(\S+)$} $l m p] {
-        dict set ::platforms $p {}
-        dict set ::platforms $p "cur" 1
-        dict set ::platforms $p "fut" 1
-      }
-    }
     create_dlg .tlpl
     wm title .tlpl [__ "Platforms"]
     if $::plain_unix {wm attributes .tlpl -type dialog}
@@ -1266,14 +1285,26 @@
     # wallpaper frame
     pack [ttk::frame .tlpl.bg] -expand 1 -fill both
 
+    # buttons
+    pack [ttk::frame .tlpl.but] -in .tlpl.bg -side bottom -fill x
+    ttk::button .tlpl.do -text [__ "Apply and close"] -command {
+      platforms_commit; end_dlg "" .tlpl
+    }
+    ttk::button .tlpl.dont -text [__ "Close"] -command \
+        {end_dlg "" .tlpl}
+    ppack .tlpl.do -in .tlpl.but -side right
+    .tlpl.do configure -state disabled
+    ppack .tlpl.dont -in .tlpl.but -side right
+    bind .tlpl <Escape> {.tlpl.dont invoke}
+
     # platforms treeview; do we need a scrollbar?
     pack [ttk::frame .tlpl.fpl] -in .tlpl.bg -fill both -expand 1
     ttk::treeview .tlpl.pl -columns {sup plat} -show headings \
-        -height [dict size $::platforms] ; # -yscrollcommand {.tlpl.plsb set}
+        -height [dict size $::platforms] -yscrollcommand {.tlpl.plsb set}
     ppack .tlpl.pl -in .tlpl.fpl -side left -fill both -expand 1
-    #ttk::scrollbar .tlpl.plsb -orient vertical \
-    #    -command {.tlpl.pl yview}
-    #ppack .tlpl.plsb -in .tlpl.fpl -side right -fill y -expand 1
+    ttk::scrollbar .tlpl.plsb -orient vertical \
+        -command {.tlpl.pl yview}
+    ppack .tlpl.plsb -in .tlpl.fpl -side right -fill y -expand 1
     #.tlpl.pl heading sup -text ""
     .tlpl.pl column sup -width [expr {$::cw * 8}]
     .tlpl.pl heading plat -text [__ "platform"] -anchor w
@@ -1292,19 +1323,8 @@
              [.tlpl.pl identify item %x %y] \
              [.tlpl.pl identify column %x %y]}
 
-    # buttons
-    pack [ttk::frame .tlpl.but] -in .tlpl.bg -fill x
-    ttk::button .tlpl.do -text [__ "Apply and close"] -command {
-      platforms_commit; end_dlg "" .tlpl
-    }
-    ttk::button .tlpl.dont -text [__ "Close"] -command \
-        {end_dlg "" .tlpl}
-    ppack .tlpl.do -in .tlpl.but -side right
-    .tlpl.do configure -state disabled
-    ppack .tlpl.dont -in .tlpl.but -side right
-
+    wm resizable .tlpl 0 1
     place_dlg .tlpl .
-    wm resizable .tlpl 0 0
   } ; # platforms_select
 
 } ; # $::tcl_platform(platform) ne "windows"
@@ -1313,6 +1333,7 @@
 
 # This is currently rather dangerous.
 # ::do_restore is set to 0 or 1 near the top of this source.
+# This code, currently disbled, has not been tested in a while.
 
 if $::do_restore {
 # dictionary of backups, with mapping to list of available revisions
@@ -1328,7 +1349,7 @@
 proc finish_restore {} {
   vwait ::done_waiting
   # now log_widget_finish should have run and re-enabled its close button.
-  # We won't wait for the log toplevel to close, but we will
+  # We won't wait for the log dialog to close, but we will
   # update the packages display in the main window.
   update_local_revnumbers
   collect_filtered
@@ -1508,16 +1529,25 @@
 } ; # update_tlmgr
 
 proc update_all {} {
+  set updated_tlmgr 0
   if $::need_update_tlmgr {
-    tk_messageBox -message [__ "Update self first!"]
-    return
-  } elseif {! $::n_updates} {
+    run_cmd "update --self" 1
+    vwait ::done_waiting
+    # tlmgr restarts itself automatically
+    update_local_revnumbers
+    set updated_tlmgr 1
+  }
+  # tlmgr restarts itself automatically
+  #  tk_messageBox -message [__ "Update self first!"]
+  #  return
+  if {! $::n_updates && !$updated_tlmgr} {
     tk_messageBox -message [__ "Nothing to do!"]
     return
+  } elseif $::n_updates {
+    run_cmd "update --all" 1
+    vwait ::done_waiting
+    update_local_revnumbers
   }
-  run_cmd "update --all" 1
-  vwait ::done_waiting
-  update_local_revnumbers
   collect_filtered
 } ; # update_all
 
@@ -1575,6 +1605,7 @@
     show_err_log
   }
   update_local_revnumbers
+  if {$sel_opt eq "marked"} {mark_all 0}
   collect_filtered
 } ; # install_pkgs
 
@@ -1615,7 +1646,7 @@
        "yesnocancel"]
     switch $ans {
       "cancel" return
-      "yes" {run_cmd "update $todo"} 1
+      "yes" {run_cmd "update $todo" 1}
       "no" {
         set deps {}
         run_cmd_waiting "update --dry-run --no-depends $todo"
@@ -1647,6 +1678,7 @@
     show_err_log
   }
   update_local_revnumbers
+  if {$sel_opt eq "marked"} {mark_all 0}
   collect_filtered
 } ; # update_pkgs
 
@@ -1707,6 +1739,7 @@
     show_err_log
   }
   update_local_revnumbers
+  if {$sel_opt eq "marked"} {mark_all 0}
   collect_filtered
 } ; # remove_pkgs
 
@@ -1715,16 +1748,6 @@
 
 ##### varous callbacks #####
 
-proc run_entry {} {
-  # TODO: some validation of $cmd
-  do_debug "run_entry"
-  set cmd [.ent.e get]
-  if {$cmd eq ""} return
-  do_debug $cmd
-  .ent.e delete 0 end
-  run_cmd $cmd 1
-}
-
 proc restart_self {} {
   do_debug "trying to restart"
   if {$::progname eq ""} {
@@ -1766,14 +1789,6 @@
   # alternatively: regenerate ::filtered and .pkglist from ::pkgs
 } ; # mark_all
 
-proc toggle_search_desc {} {
-  # when this proc is called, ::search_desc is not yet toggled
-  # so we temporarily pre-toggle and post-untoggle it
-  set ::search_desc [expr {$::search_desc ? 0 : 1}]
-  display_packages_info
-  set ::search_desc [expr {$::search_desc ? 0 : 1}]
-}
-
 ##### package popup #####
 
 proc do_package_popup_menu {x y X Y} {
@@ -1882,12 +1897,43 @@
   log_widget_init
 }
 
+proc show_help {} {
+  set ::env(NOPERLDOC) 1
+  long_message [exec tlmgr --help] ok
+}
+
+proc run_entry {} {
+  # TODO: some validation of $cmd
+  set cmd [.tlcust.e get]
+  if {$cmd eq ""} return
+  run_cmd $cmd 1
+  end_dlg "" .tlcust
+}
+
+## arbitrary commands: no way to know what data have to be updated
+#proc custom_command {} {
+#  create_dlg .tlcust .
+#  wm title .tlcust [__ "Custom command"]
+#  pack [ttk::frame .tlcust.bg] -expand 1 -fill x
+#
+#  ppack [ttk::entry .tlcust.e] \
+#      -in .tlcust.bg -side left -fill x -expand 1
+#  ppack [ttk::button .tlcust.b -text [__ "Go"] -command run_entry] \
+#      -in .tlcust.bg -side left
+#  bind .tlcust.e <Return> run_entry
+#  bind .tlcust <Escape> {end_dlg "" .tlcust}
+#  wm .tlcust resizable 1 0
+#  place_dlg .tlcust .
+#}
+
 ##### main window #####
 
 proc populate_main {} {
 
-  wm title . "$::progname $::procid"
+  wm withdraw .
 
+  wm title . "TeX Live Shell"
+
   # width of '0', as a rough estimate of average character width
   set ::cw [font measure TkTextFont "0"]
 
@@ -1926,31 +1972,10 @@
   # inx: keeping count to record indices where needed,
   # i.e. when an entry needs to be referenced.
   # not all submenus need this.
-  .mn add cascade -label [__ "Packages"] -menu .mn.pkg
-  menu .mn.pkg
-  set inx 0
-  set ::inx_upd_tlmgr $inx
-  .mn.pkg add command -label [__ "Update tlmgr"] -command update_tlmgr
-  incr inx
-  set ::inx_upd_all $inx
-  .mn.pkg add command -label [__ "Update all"] -command update_all
-  incr inx
-  .mn.pkg add command -label [__ "Install marked"] \
-      -command {install_pkgs "marked"}
-  incr inx
-  .mn.pkg add command -label [__ "Update marked"] \
-      -command {update_pkgs "marked"}
-  incr inx
-  .mn.pkg add command -label [__ "Remove marked"] \
-      -command {remove_pkgs "marked"}
-  if $::do_restore {
-    incr inx
-    .mn.pkg add command -label [__ "Restore from backup..."] \
-        -command restore_backups_dialog
-  }
 
   .mn add cascade -label [__ "Actions"] -menu .mn.act -underline 0
   menu .mn.act
+  incr inx
   .mn.act add command -label [__ "Regenerate filename database"] -command \
       {run_external "mktexlsr" [__ "Regenerating filename database..."]}
   .mn.act add command -label [__ "Regenerate formats"] -command \
@@ -1957,13 +1982,19 @@
       {run_external "fmtutil-sys --all" [__ "Rebuilding formats..."]}
   .mn.act add command -label [__ "Regenerate fontmaps"] -command \
       {run_external "updmap-sys" [__ "Rebuilding fontmap files..."]}
+  #.mn.act add command -label [__ "Custom command"] -command custom_command
 
   .mn add cascade -label [__ "Options"] -menu .mn.opt -underline 0
+
   menu .mn.opt
-  .mn.opt add command -label [__ "Repositories"] \
+  set inx -1
+  incr inx
+  .mn.opt add command -label "[__ "Repositories"]..." \
       -command repository_dialog
 
+  incr inx
   .mn.opt add cascade -label [__ "Paper"] -menu .mn.opt.paper
+  incr inx
   menu .mn.opt.paper
   foreach p [list a4 letter] {
     .mn.opt.paper add command -label $p -command "set_paper $p"
@@ -1970,7 +2001,9 @@
   }
 
   if {[llength $::langs] > 1} {
-    .mn.opt add cascade -label [__ "GUI language"] -menu .mn.opt.lang
+    incr inx
+    .mn.opt add cascade -label [__ "GUI language (restarts tlshell)"] \
+        -menu .mn.opt.lang
     menu .mn.opt.lang
     foreach l $::langs {
       .mn.opt.lang add command -label $l -command "set_language $l"
@@ -1980,14 +2013,19 @@
   if {$::tcl_platform(platform) ne "windows"} {
     incr inx
     set ::inx_platforms $inx
-    .mn.opt add command -label [__ "Platforms"] -command platforms_select
+    .mn.opt add command -label "[__ "Platforms"]..." -command platforms_select
   }
 
   .mn add cascade -label [__ "Help"] -menu .mn.help -underline 0
   menu .mn.help
-  .mn.help add command -command {tk_messageBox -message "Helpless"} \
-      -label "About"
+  .mn.help add command -label [__ "About"] -command {
+    tk_messageBox -message [__ "\u00a9 2017, 2018 Siep Kroonenberg
 
+GUI interface for TeX Live Manager
+Implemented in Tcl/Tk
+"]}
+  .mn.help add command -label [__ "tlmgr help"] -command show_help
+
   # wallpaper frame
   # it is possible to set a background color for a toplevel, but on
   # MacOS I did not find a way to determine the right $::default_bg
@@ -1995,17 +2033,34 @@
   # with the default ttk::frame color, which seems to work
   # everywhere.
   pack [ttk::frame .bg] -expand 1 -fill both
+  .bg configure -padding 5
 
+  # bottom of main window
+  pack [ttk::frame .endbuttons] -in .bg -side bottom -fill x
+  ttk::label .busy -textvariable ::busy -font TkHeadingFont -anchor w
+  ppack .busy -in .endbuttons -side left
+  ppack [ttk::button .q -text [__ Quit] -command {destroy .}] \
+      -in .endbuttons -side right
+  ppack [ttk::button .r -text [__ "Restart self"] -command restart_self] \
+      -in .endbuttons -side right
+  ppack [ttk::button .t -text [__ "Restart tlmgr"] \
+             -command {close_tlmgr; start_tlmgr}] \
+      -in .endbuttons -side right
+  ttk::button .showlogs -text [__ "Show logs"] -command show_logs
+  ppack .showlogs -in .endbuttons -side right
+
   # various info
-  ttk::frame .topf
-  pack .topf -in .bg -side top -anchor w
+  # frame .topf -background white -borderwidth 2 -relief sunken
+  ppack [ttk::frame .topf] -in .bg -side top -anchor w -fill x
+  pack [ttk::separator .sp -orient horizontal] \
+      -in .bg -side top -fill x -pady 6
 
-  pgrid [ttk::label .topf.llrepo -text [__ "Default repositories"] -anchor w] \
-      -row 0 -column 0 -sticky nw
-  pgrid [ttk::label .topf.lrepos -text ""] \
-      -row 0 -column 1 -sticky nw
-  pgrid [ttk::label .topf.loaded -text [__ "Not loaded"]] \
-      -row 1 -column 1 -sticky w
+  ttk::label .topf.llrepo -text [__ "Default repositories"] -anchor w
+  pgrid .topf.llrepo -row 0 -column 0 -sticky nw
+  ttk::label .topf.lrepos -text "" -justify left -anchor w
+  pgrid .topf.lrepos -row 0 -column 1 -sticky nw
+  ttk::label .topf.loaded -text [__ "Not loaded"] -foreground red -anchor w
+  pgrid .topf.loaded -row 1 -column 1 -sticky w
 
   ttk::label .topf.lluptodate -text [__ "TL Manager up to date?"] -anchor w
   pgrid .topf.lluptodate -row 2 -column 0 -sticky w
@@ -2012,26 +2067,20 @@
   ttk::label .topf.luptodate -text [__ "Unknown"] -anchor w
   pgrid .topf.luptodate -row 2 -column 1 -sticky w
 
-  pgrid [ttk::label .topf.llcmd -anchor w -text [__ "Last tlmgr command:"]] \
-      -row 3 -column 0 -sticky w
-  pgrid [ttk::label .topf.lcmd -anchor w -textvariable ::last_cmd] \
-      -row 3 -column 1 -sticky w
+  ttk::label .topf.llcmd -anchor w -text [__ "Last tlmgr command:"] -anchor w
+  pgrid .topf.llcmd -row 3 -column 0 -sticky w
+  ttk::label .topf.lcmd -anchor w -textvariable ::last_cmd -anchor w
+  pgrid .topf.lcmd -row 3 -column 1 -sticky w
 
-  # command entry widget
-  ttk::frame .ent
-         ppack [ttk::label .ent.l -text [__ "Type command:"]] -side left
-  ppack [ttk::entry .ent.e -width 40] -side left -padx 3
-         ppack [ttk::button .ent.b -text [__ "Go"] -command run_entry] \
-             -side left
-  bind .ent.e <Return> run_entry
-  pack .ent -pady 10 -in .bg -fill x -side top
-
   # package list
   ttk::label .lpack -text [__ "Package list"] -font TkHeadingFont -anchor w
-  ppack .lpack -in .bg -side top -fill x
+  pack .lpack -in .bg -side top -padx 3 -pady [list 15 3] -fill x
 
   # controlling package list
   ttk::frame .pkfilter
+  pack .pkfilter -in .bg -side top -fill x
+  grid columnconfigure .pkfilter 3 -weight 1
+  # column #3 is empty, but that is allright
   # filter on status: inst, all, upd
   ttk::label .pkfilter.lstat -font TkHeadingFont -text [__ "Status"]
   ttk::radiobutton .pkfilter.inst -text [__ "Installed"] -value inst \
@@ -2046,7 +2095,7 @@
   pgrid .pkfilter.upd -column 0 -row 3 -sticky w
 
   # filter on detail level: all, coll, schm
-  ttk::label .pkfilter.ldtl -font TkHeadingFont -text [__ "Global >> Detail"]
+  ttk::label .pkfilter.ldtl -font TkHeadingFont -text [__ "Detail >> Global"]
   ttk::radiobutton .pkfilter.alld -text [__ All] -value all \
       -variable ::dtl_opt -command collect_filtered
   ttk::radiobutton .pkfilter.coll -text [__ "Collections and schemes"] \
@@ -2064,42 +2113,67 @@
   grid [ttk::button .mrk_none -text [__ "Mark none"] -command {mark_all 0}] \
       -in .pkfilter -column 2 -row 2 -sticky w -padx {50 3} -pady 3
 
-  pack .pkfilter -in .bg -side top -fill x
+  # actions
+  set rw -1
+  incr rw
+  ttk::button .mrk_inst -text [__ "Install marked"] -command {
+      install_pkgs "marked"}
+  pgrid .mrk_inst -in .pkfilter -column 4 -row $rw -sticky ew
+  incr rw
+  ttk::button .mrk_upd -text [__ "Update marked"] -command {
+    update_pkgs "marked"}
+  pgrid .mrk_upd -in .pkfilter -column 4 -row $rw -sticky ew
+  incr rw
+  ttk::button .mrk_rem -text [__ "Remove marked"] -command {
+    remove_pkgs "marked"}
+  pgrid .mrk_rem -in .pkfilter -column 4 -row $rw -sticky ew
+  if $::do_restore {
+    incr rw
+    ttk::button .mrk_rest -text [__ "Restore from backup..."] -command \
+        restore_backups_dialog
+    pgrid .mrk_rest -in .pkfilter -column 4 -row $rw -sticky ew
+  }
+  incr rw
+  ttk::button .upd_tlmgr -text [__ "Update tlmgr"] -command update_tlmgr
+  pgrid .upd_tlmgr -in .pkfilter -column 4 -row $rw -sticky ew
+  incr rw
+  ttk::button .upd_all -text [__ "Update all"] -command update_all
+  pgrid .upd_all -in .pkfilter -column 4 -row $rw -sticky ew
 
-  # search interface
-  pack [ttk::frame .pksearch] -in .bg -side top -fill x
+  # search interface; no new row
+  grid [ttk::frame .pksearch] -in .pkfilter -row $rw \
+      -column 0 -columnspan 4 -sticky w
   ppack [ttk::label .pksearch.l \
-             -text [__ "Search package names"]] -side left
+             -text [__ "Search"]] -side left
   pack [ttk::entry .pksearch.e -width 30] -side left -padx {3 0} -pady 3
-  ppack [ttk::checkbutton .pksearch.d -variable ::search_desc \
-             -text [__ "Also search short descriptions"]] -side left
+  ppack [ttk::radiobutton .pksearch.n -variable ::search_desc \
+            -value 0 -text [__ "By name"]] -side left
+  ppack [ttk::radiobutton .pksearch.d -variable ::search_desc \
+             -value 1 -text [__ "By name and description"]] -side left
   bind .pksearch.e <KeyRelease> display_packages_info
-  bind .pksearch.d <ButtonRelease> toggle_search_desc
+  bind .pksearch.n <ButtonRelease> {set ::search_desc 0; display_packages_info}
+  bind .pksearch.d <ButtonRelease> {set ::search_desc 1; display_packages_info}
 
-  # packages list
+  # packages list itself
   pack [ttk::frame .fpkg] -in .bg -side top -fill both -expand 1
   ttk::treeview .pkglist -columns \
       {mk name localrev remoterev shortdesc} \
       -show headings -height 8 -selectmode extended \
-      -xscrollcommand {.pkhsb set} -yscrollcommand {.pkvsb set}
+      -yscrollcommand {.pkvsb set}
   .pkglist heading mk -text "" -anchor w
   .pkglist heading name -text [__ "Name"] -anchor w
   .pkglist heading localrev -text [__ "Local Rev. (ver.)"] -anchor w
   .pkglist heading remoterev -text [__ "Remote Rev. (ver.)"] -anchor w
   .pkglist heading shortdesc -text [__ "Description"] -anchor w
-  .pkglist column mk -width [expr {$::cw * 3}]
-  .pkglist column name -width [expr {$::cw * 25}]
-  .pkglist column localrev -width [expr {$::cw * 18}]
-  .pkglist column remoterev -width [expr {$::cw * 18}]
-  .pkglist column shortdesc -width [expr {$::cw * 50}]
+  .pkglist column mk -width [expr {$::cw * 3}] -stretch 0
+  .pkglist column name -width [expr {$::cw * 25}] -stretch 1
+  .pkglist column localrev -width [expr {$::cw * 18}] -stretch 0
+  .pkglist column remoterev -width [expr {$::cw * 18}] -stretch 0
+  .pkglist column shortdesc -width [expr {$::cw * 50}] -stretch 1
 
-  ttk::scrollbar .pkhsb -orient horizontal -command {.pkglist xview}
   ttk::scrollbar .pkvsb -orient vertical -command {.pkglist yview}
-  pgrid .pkglist -in .fpkg -row 0 -column 0 -sticky news
-  grid .pkvsb -in .fpkg -row 0 -column 1 -sticky ns
-  grid .pkhsb -in .fpkg -row 1 -column 0 -sticky ew
-  grid columnconfigure .fpkg 0 -weight 1
-  grid rowconfigure .fpkg 0 -weight 1
+  ppack .pkglist -in .fpkg -side left -expand 1 -fill both
+  ppack .pkvsb -in .fpkg -side left -fill y
 
   # "#1" refers to the first column (with mark symbols)
   bind .pkglist <space> {toggle_marked_pkg [.pkglist focus] "#1"}
@@ -2114,20 +2188,10 @@
     bind .pkg_popup <Leave> {.pkg_popup unpost}
   }
 
-  # bottom of main window
-  pack [ttk::frame .endbuttons] -in .bg -side bottom -fill x
-  ttk::label .busy -textvariable ::busy -font TkHeadingFont -anchor w
-  ppack .busy -in .endbuttons -side left
-  ppack [ttk::button .q -text [__ Quit] -command {destroy .}] \
-      -in .endbuttons -side right
-  ppack [ttk::button .r -text [__ "Restart self"] -command restart_self] \
-      -in .endbuttons -side right
-  ppack [ttk::button .t -text [__ "Restart tlmgr"] \
-             -command {close_tlmgr; start_tlmgr}] \
-      -in .endbuttons -side right
-  ttk::button .showlogs -text [__ "Show logs"] -command show_logs
-  ppack .showlogs -in .endbuttons -side right
-} ; # populate_main
+  wm protocol . WM_DELETE_WINDOW {.q invoke}
+  wm resizable . 1 1
+  wm state . normal
+}
 
 ##### initialize ######################################################
 
@@ -2197,7 +2261,7 @@
   .topf.lrepos configure -text [print_repos]
   get_packages_info_local
   collect_filtered ; # invokes display_packages_info
-  enable_menu_controls 1
+  selective_dis_enable
 }; # initialize
 
 initialize

Modified: trunk/Master/texmf-dist/doc/latex/lwarp/README.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/lwarp/README.txt	2018-12-10 22:57:48 UTC (rev 49376)
+++ trunk/Master/texmf-dist/doc/latex/lwarp/README.txt	2018-12-10 22:58:31 UTC (rev 49377)
@@ -1,5 +1,5 @@
 
-LaTeX lwarp package v0.63   README.txt
+LaTeX lwarp package v0.64   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	2018-12-10 22:57:48 UTC (rev 49376)
+++ trunk/Master/texmf-dist/scripts/lwarp/lwarpmk.lua	2018-12-10 22:58:31 UTC (rev 49377)
@@ -2,7 +2,7 @@
 
 -- Copyright 2016-2018 Brian Dunn
 
-printversion = "v0.63"
+printversion = "v0.64"
 requiredconfversion = "1" -- 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	2018-12-10 22:57:48 UTC (rev 49376)
+++ trunk/Master/texmf-dist/source/latex/lwarp/lwarp.dtx	2018-12-10 22:58:31 UTC (rev 49377)
@@ -16,7 +16,7 @@
 % \iffalse
 %<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
 %<package>\ProvidesPackage{lwarp}
-%<package>    [2018/12/03 v0.63  Allows LaTeX to directly produce HTML5 output.]
+%<package>    [2018/12/08 v0.64  Allows LaTeX to directly produce HTML5 output.]
 %
 %<*driver>
 \documentclass{ltxdoc}
@@ -572,7 +572,8 @@
 \pkg{lwarp} can also load \pkg{url}, but \pkg{url} should not be used at the
 same time as \pkg{hyperref}, since they both define the \cs{url} command.
 \pkg{lwarp} does not (yet) attempt to convert \pkg{url} links into hyperlinks
-during \HTML\ output, nor does \pkg{url} create hyperlinks during print output.
+during \HTML\ output, nor does the print version of \pkg{url}
+create hyperlinks.
 
 When generating \HTML, \pkg{lwarp}'s emulation of \pkg{hyperref} does not
 \trouble[\pkg{backref}]{hyperref=\pkg{hyperref}>backref=\pkg{backref}}
@@ -2561,7 +2562,7 @@
 %<*package>
 % \fi
 %
-% \CheckSum{26829}
+% \CheckSum{27072}
 %
 % \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
@@ -2667,6 +2668,7 @@
 % \changes{v0.61}{2018/10/13}{\ 2018/10/13}
 % \changes{v0.62}{2018/11/19}{\ 2018/11/19}
 % \changes{v0.63}{2018/12/03}{\ 2018/12/03}
+% \changes{v0.64}{2018/12/08}{\ PENDING}
 
 
 
@@ -2866,6 +2868,22 @@
 %
 % \begin{description}
 % \needspace{2\baselineskip}
+% \item[v0.64:] Koma-Script, Japanese, Chinese.
+%   \begin{itemize}
+%       \item Added \pkg{utarticle} and related classes.
+%       \margintag{Japanese}
+%       \item Improved \pkg{ujarticle} and related classes.
+%       \item Fix for \pkg{biblatex} with C\TeX\ and other classes.
+%       \margintag{Chinese}
+%       \item Fixes for \pkg{scrlayer}, \pkg{scrlayer-scrpage}.
+%       \margintag{Koma-Script}
+%       \item \pkg{addlines}: Updated to v0.3.
+%       \margintag{packages}
+%       \item Added \pkg{bsheaders},
+%               \pkg{gmeometric}, \pkg{marginal},
+%               \pkg{rmpage}, \pkg{scrpage2}.
+%   \end{itemize}
+% \needspace{2\baselineskip}
 % \item[v0.63:] \pkg{mdframed}, Chinese, Japanese, Korean
 %   \begin{itemize}
 %       \item Added \cs{linkhomename}: A user-definable name for the \UI{Home} link.
@@ -4225,8 +4243,8 @@
 %
 % Classes: & \pkg{article}, \pkg{book}, \pkg{report},
 %   \pkg{scrartcl}, \pkg{scrbook}, \pkg{scrreprt}, \pkg{memoir}, C\TeX-related,
-%       \pkg{bxjsarticle} and related, \pkg{ltjsarticle} and relatex,
-%       \pkg{ujarticle} and related. \\
+%       \pkg{bxjsarticle} and related, \pkg{ltjsarticle} and related,
+%       \pkg{ujarticle} and related, \pkg{utarticle} and related. \\
 %
 % Koma-script: & \pkg{scrextend}, \pkg{scrhack}, \pkg{scrlayer}.
 %   Others as listed below. \\
@@ -4247,6 +4265,7 @@
 %       \pkg{ltjsarticle} and related,
 %       \pkg{luatexja}, \pkg{luatexja-fontspec},
 %       \pkg{ujarticle} and related,
+%       \pkg{utarticle} and related,
 %       \pkg{zxjatype}. \\
 %
 % Korean: & \pkg{kotex}, \pkg{luatexko}, \pkg{xetexko}. \\
@@ -4256,16 +4275,18 @@
 % Page layout: & \pkg{2in1}, \pkg{2up}, \pkg{a4}, \pkg{a4wide}, \pkg{a5comb},
 %       \pkg{addlines}, \pkg{anysize}, \pkg{atbegshi},
 %       \pkg{blowup},  \pkg{booklet},  \pkg{bophook}, \pkg{bxpapersize},
-%       \pkg{canoniclayout}, \pkg{clrdblpg},
+%       \pkg{canoniclayout},
+%       \pkg{changepage}, \pkg{chngpage}, \pkg{clrdblpg},
 %       \pkg{continue}, \pkg{draftcopy}, \pkg{draftfigure}, \pkg{draftwatermark},
 %       \pkg{ebook}, \pkg{everyshi},
 %       \pkg{fancyhdr}, \pkg{fancytabs}, \pkg{flippdf},
 %       \pkg{fullminipage}, \pkg{fullpage},
-%       \pkg{fwlw}, \pkg{geometry}, \pkg{grid}, \pkg{grid-system}, \pkg{gridset},
+%       \pkg{fwlw}, \pkg{geometry}, \pkg{gmeometric},
+%       \pkg{grid}, \pkg{grid-system}, \pkg{gridset},
 %       \pkg{layaureo}, \pkg{leading},
 %       \pkg{ltxgrid}, \pkg{nccfancyhdr}, \pkg{notespages}, \pkg{pagegrid},
-%       \pkg{pdfprivacy}, \pkg{pagesel}, \pkg{preview},
-%       \pkg{scrlayer-scrpage}, \pkg{textarea}, \pkg{threadcol},
+%       \pkg{pdfprivacy}, \pkg{pagesel}, \pkg{preview}, \pkg{rmpage},
+%       \pkg{scrlayer-scrpage}, \pkg{scrpage2}, \pkg{textarea}, \pkg{threadcol},
 %       \pkg{thumb}, \pkg{thumbs}, \pkg{titleps}, \pkg{tocenter},
 %       \pkg{turnthepage}, \pkg{twoup}, \pkg{typearea}, \pkg{vmargin},
 %       \pkg{watermark}, \pkg{zwpagelayout}.
@@ -4277,9 +4298,11 @@
 % Sectioning: & Adds \progcode{FileDepth} for splitting the \HTML\ output.
 % 	Files may be numbered sequentially or named according to section name.
 % 	Common short words and punctuation are removed from the filenames. 
-%   \pkg{anonchap}, \pkg{fncychap}, \pkg{quotchap},
-%	\pkg{section}, \pkg{sectionbreak}, \pkg{sectsty}, \pkg{titlesec}. \\
+%   \pkg{anonchap}, \pkg{bsheaders}, \pkg{fncychap}, \pkg{quotchap},
+%	\pkg{section}, \pkg{sectionbreak}, \pkg{sectsty}, \pkg{titlesec}.
 %
+%       Tested to work as-is: \pkg{secdot}.\\
+%
 % Table of contents, figures, tables: & Supported, with hyperlinks.
 %   \pkg{multitoc}, \pkg{shorttoc}, \pkg{titletoc},
 %	\pkg{tocbasic}, \pkg{tocbibind}, \pkg{tocloft}, \pkg{tocstyle}. \\
@@ -4310,7 +4333,7 @@
 %
 % \midrule
 %
-% Margin notes: & \pkg{marginfit}, \pkg{marginfix}, \pkg{scrlayer-notecolumn}. \\
+% Margin notes: & \pkg{marginal}, \pkg{marginfit}, \pkg{marginfix}, \pkg{scrlayer-notecolumn}. \\
 %
 % Footnotes: & Adds \progcode{FootnoteDepth} to print footnotes at section breaks.
 %   \pkg{dblfnote},
@@ -7355,8 +7378,17 @@
 %
 % The following describes \cs{ForceHTMLPage} and \cs{ForceHTMLTOC},
 % which may be used for \pkg{endnotes}, \pkg{glossaries}, \pkg{tocbibind},
-% and the index.  See the following sections where applicable.
+% bibliographies, and the index.
+% See the following sections where applicable.
 % Continue here if interested in the reason for adding these commands to \pkg{lwarp}.
+% \trouble{endnotes>\HTML\ page and \TOC}
+% \trouble{glossaries=\pkg{glossaries}>\HTML\ page and \TOC}
+% \trouble{bibliography>\HTML\ page and \TOC}
+% \trouble{index>\HTML\ page and \TOC}
+% \gindex{endnotes>\HTML\ page and \TOC}
+% \gindex{glossaries=\pkg{glossaries}>\HTML\ page and \TOC}
+% \gindex{bibliography>\HTML\ page and \TOC}
+% \gindex{index>\HTML\ page and \TOC}
 %
 % Some packages use \cs{chapter*} or \cs{section*} to introduce reference
 % material such as notes or lists, often to be placed in the back matter of a book.
@@ -10201,18 +10233,8 @@
 % \changes{v0.54}{2018/04/06}{Added early check for disallowed packages.}
 % \changes{v0.54}{2018/09/26}{Never load \pkg{aecompl}.}
 % \changes{v0.62}{2018/11/18}{Added early checks for \pkg{CJK}, \pkg{CJKutf8}.}
-% \changes{v0.63}{2018/11/25}{\pkg{utarticle}, etc.: Not allowed.}
 %
-% \pkg{ujarticle} and related are supported by \pkg{lwarp}, but
-% \pkg{utarticle} and related use vertical Japanese text, which is not
-% read correctly by \prog{pdftotext}.  These may be supported in the future if
-% a way is found to undo the changes used for vertical text.
 %    \begin{macrocode}
-\LWR at earlyclassloadnever{utarticle}{ujarticle}
-\LWR at earlyclassloadnever{utbook}{ujbook}
-\LWR at earlyclassloadnever{utreport}{ujreport}
-%    \end{macrocode}
-%    \begin{macrocode}
 \LWR at earlyloadnever{ae}{cm-super, lmodern}
 \LWR at earlyloadnever{aecompl}{cm-super, lmodern}
 \LWR at earlyloadnever{aecc}{cm-super, lmodern}
@@ -10229,7 +10251,7 @@
 %    \end{macrocode}
 % \pkg{bxcjkatype} is based on \pkg{CJK}:
 %    \begin{macrocode}
-\LWR at earlyloadnever{bxcjkjatype}{pLaTeX, upLaTeX, bxjsarticle, ujarticle}
+\LWR at earlyloadnever{bxcjkjatype}{pLaTeX, upLaTeX, bxjsarticle, ujarticle, utarticle}
 %    \end{macrocode}
 % \pkg{hangul} is not in TeXLive, and is not tested:
 %    \begin{macrocode}
@@ -10303,6 +10325,7 @@
 \LWR at loadafter{boxedminipage2e}
 \LWR at loadafter{breakurl}
 \LWR at loadafter{breqn}
+\LWR at loadafter{bsheaders}
 \LWR at loadafter{bxpapersize}
 \LWR at loadafter{bytefield}
 \LWR at loadafter{cancel}
@@ -10395,6 +10418,7 @@
 \LWR at loadafter{fullwidth}
 \LWR at loadafter{fwlw}
 \LWR at notbxjsloadafter{geometry}
+\LWR at loadafter{gmeometric}
 \LWR at loadafter{glossaries}
 % \LWR at loadafter{graphics}% pre-loaded by xunicode
 % \LWR at loadafter{graphicx}% pre-loaded by xunicode
@@ -10512,6 +10536,7 @@
 \LWR at loadafter{relsize}
 \LWR at loadafter{repeatindex}
 \LWR at loadafter{resizegather}
+\LWR at loadafter{rmpage}
 \LWR at loadafter{romanbar}
 \LWR at loadafter{romanbarpagenumber}
 \LWR at loadafter{rotating}
@@ -10525,6 +10550,7 @@
 \LWR at loadafter{scrlayer}
 \LWR at loadafter{scrlayer-notecolumn}
 \LWR at loadafter{scrlayer-scrpage}
+\LWR at loadafter{scrpage2}
 \LWR at loadafter{section}
 \LWR at loadafter{sectionbreak}
 \LWR at loadafter{sectsty}
@@ -10599,7 +10625,6 @@
 \LWR at loadafter{vpe}
 \LWR at loadafter{vwcol}
 \LWR at loadafter{wallpaper}
-\LWR at loadafter{wasysym}
 \LWR at loadafter{watermark}
 \LWR at loadafter{widows-and-orphans}
 \LWR at loadafter{wrapfig}
@@ -12032,15 +12057,22 @@
 % or never at all.
 %
 % \changes{v0.63}{2018/12/02}{Added to reduce number of \filenm{lwarp-*} files.}
+% \changes{v0.64}{2018/12/07}{Prevented \pkg{bitfield}, \pkg{doublespace},
+%                               \pkg{newthm}, \pkg{rplain}, \pkg{si}.}
 %    \begin{macrocode}
 \newcommand*{\LWR at checkloadfilename}[1]{%
 \LWR at checkloadnever{#1}{ae}{latinmodern}
 \LWR at checkloadnever{#1}{aecc}{latinmodern}
+\LWR at checkloadnever{#1}{bitfield}{bytefield}
 \LWR at checkloadnever{#1}{boxedminipage}{boxedminipage2e}
 \LWR at checkloadnever{#1}{caption2}{caption}
 \LWR at checkloadnever{#1}{ccaption}{caption}
+\LWR at checkloadnever{#1}{doublespace}{setspace}
 \LWR at checkloadnever{#1}{fancyheadings}{fancyhdr}
 \LWR at checkloadnever{#1}{glossary}{glossaries}
+\LWR at checkloadnever{#1}{newthm}{ntheorem}
+\LWR at checkloadnever{#1}{rplain}{fancyhdr}
+\LWR at checkloadnever{#1}{si}{siunitx}
 \LWR at checkloadnever{#1}{t1enc}{fontenc, inputenc, inputenx}
 \LWR at checkloadnever{#1}{wasysym}{textcomp, amssymb, amsfonts, mnsymbol, fdsymbol}
 %
@@ -13541,12 +13573,16 @@
     \fi% \ifpdf
 }% latexmk
 %    \end{macrocode}
-% For \pkg{ujarticle} and related, using up\LaTeX\ and \prog{dvipdfmx}:
+% For \pkg{ujarticle}, \pkg{utarticle}, and related, using up\LaTeX\ and \prog{dvipdfmx}:
 % \changes{v0.63}{2018/11/25}{\pkg{ujarticle} and related: Compile options.}
+% \changes{v0.64}{2018/12/07}{\pkg{utarticle} and related: Added.}
 %    \begin{macrocode}
 \@ifclassloaded{ujarticle}{\LWR at compileuplatex}{}
 \@ifclassloaded{ujbook}{\LWR at compileuplatex}{}
 \@ifclassloaded{ujreport}{\LWR at compileuplatex}{}
+\@ifclassloaded{utarticle}{\LWR at compileuplatex}{}
+\@ifclassloaded{utbook}{\LWR at compileuplatex}{}
+\@ifclassloaded{utreport}{\LWR at compileuplatex}{}
 %    \end{macrocode}
 % Only make the setting permanent if the original was empty:
 % \changes{v0.61}{2018/09/20}{Added \optn{PrintLatexCmd} option.}
@@ -13751,7 +13787,7 @@
 p {margin: 1.5ex 0em 1.5ex 0em ;}
 table p {margin: .5ex 0em .5ex 0em ;}
 
-/* Holds a section number to add space between it and the name */
+/* Holds a section number */
 span.sectionnumber { margin-right: 0em }
 
 /* Inserted in front of index lines */
@@ -16087,7 +16123,7 @@
 -- Copyright 2016-2018 Brian Dunn
 
 
-printversion = "v0.63"
+printversion = "v0.64"
 requiredconfversion = "1" -- also at *lwarpmk.conf
 
 function printhelp ()
@@ -20337,7 +20373,7 @@
 % \changes{v0.38}{2017/08/21}{Added for \pkg{appendix}.}
 %
 %    \begin{macrocode}
-\def\@seccntformat#1{\csname the#1\endcsname\protect\quad}
+\def\@seccntformat#1{\csname the#1\endcsname\quad}
 %    \end{macrocode}
 % \end{macro}
 %
@@ -20570,11 +20606,16 @@
             \refstepcounter{#4}%
 %    \end{macrocode}
 % Add main matter numbered \TOC\ entry with the \TOC\ name or the regular name:
+% \changes{v0.64}{2018/12/07}{Support for \pkg{ujarticle and related.}}
 %    \begin{macrocode}
             \LWR at traceinfo{LWR at section: about to addcontentsline}%
             \addcontentsline{toc}{#4}%
             {%
-                 \protect\numberline{\@nameuse{the#4}}%
+                \protect\numberline{%
+                    \@nameuse{pre#4name}%
+                    \@nameuse{the#4}%
+                    \@nameuse{post#4name}%
+                }%
                 {%
                     \ignorespaces%
                     \IfValueTF{#2}{\LWR at isolate{#2}}{\LWR at isolate{#3}}\protect\relax%
@@ -20608,7 +20649,7 @@
         \ifthenelse{%
             \(\cnttest{\@nameuse{LWR at depth#4}}{<=}%
                 {\value{secnumdepth}}\) \AND%
-            \(\cnttest{\@nameuse{LWR at depth#4}}{<=}{\LWR at depthpart}\)%
+            \(\cnttest{\@nameuse{LWR at depth#4}}{=}{\LWR at depthpart}\)%
         }%
         {\@partnameformat}%
         {}%
@@ -20621,9 +20662,8 @@
         }%
         {%
             \ifstrequal{#4}{part}%
+            {\protect\LWR at sectionnumber{\@partcntformat{#4}}}%
             {%
-                \protect\LWR at sectionnumber{\@partcntformat{#4}}%
-            }{%
                 \ifstrequal{#4}{chapter}%
                     {\protect\LWR at sectionnumber{\@chapcntformat{#4}}}%
                     {\protect\LWR at sectionnumber{\@seccntformat{#4}}}%
@@ -20696,7 +20736,54 @@
 % \end{macro}
 
 
+% \subsection{Pre- and post- sectioning names}
 
+% \begin{macro}{\prepartname}
+% \begin{macro}{\postpartname}
+%
+% Usually null, but is used by \pkg{uj*} and \pkg{ut*} Japanese classes.
+%    \begin{macrocode}
+\providecommand*{\prepartname}{}
+\providecommand*{\postpartname}{}
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+
+% \begin{macro}{\prechaptername}
+% \begin{macro}{\postchaptername}
+%
+% Usually null, but is used by \pkg{uj*} and \pkg{ut*} Japanese classes.
+%    \begin{macrocode}
+\providecommand*{\prechaptername}{}
+\providecommand*{\postchaptername}{}
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+
+% \begin{macro}{\presectionname}
+% \begin{macro}{\postsectionname}
+%
+% Always null, but provided here for algorithmic simplicity in \cs{LWR at section}.
+%    \begin{macrocode}
+\providecommand*{\presectionname}{}
+\let\postsectionname\presectionname
+
+\let\presubsectionname\presectionname
+\let\postsubsectionname\postsectionname
+
+\let\presubsubsectionname\presectionname
+\let\postsubsubsectionname\postsectionname
+
+\let\preparagraphname\presectionname
+\let\postparagraphname\postsectionname
+
+\let\presubparagraphname\presectionname
+\let\postsubparagraphname\postsectionname
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+
+
 % \subsection{\cs{section} and friends}
 
 % \begin{macro}{\part} * \oarg{TOC name} \marg{name}
@@ -20874,15 +20961,20 @@
 % section name.
 % \changes{v0.52}{2018/04/01}{Fix: \cs{FileDepth} with non-utf8 encoding.}
 % \changes{v0.62}{2018/11/02}{Refactored.}
+% \changes{v0.64}{2018/12/07}{Added \pkg{utarticle} and related.}
 %    \begin{macrocode}
 \ifPDFTeX% pdflatex or dvi latex
-\ifdefstring{\inputencodingname}{utf8}{%
-    \newcommand*{\theHTMLTitleSeparator}{ — }% EMdash
-}{%
-    \newcommand*{\theHTMLTitleSeparator}{ - }% hyphen
-}%
+    \ifdefstring{\inputencodingname}{utf8}{%
+        \newcommand*{\theHTMLTitleSeparator}{ — }% EMdash
+    }{%
+        \newcommand*{\theHTMLTitleSeparator}{ - }% hyphen
+    }%
 \else%
-    \newcommand*{\theHTMLTitleSeparator}{ — }% EMdash
+    \ifpTeX
+        \newcommand*{\theHTMLTitleSeparator}{ - }% hyphen
+    \else
+        \newcommand*{\theHTMLTitleSeparator}{ — }% EMdash
+    \fi%
 \fi%
 %    \end{macrocode}
 % \end{macro}
@@ -21169,9 +21261,9 @@
 %    \begin{macrocode}
 \overfullrule=0pt
 %    \end{macrocode}
-% Reduce chance of line overflow in verbatim environments:
+% Reduce chance of line overflow when \HTML\ tags are added:
 %    \begin{macrocode}
-\LWR at print@scriptsize%
+\LWR at print@footnotesize%
 %    \end{macrocode}
 % In \PDF\ output, don't allow line breaks to interfere with \HTML\ tags:
 %    \begin{macrocode}
@@ -32981,8 +33073,9 @@
 
 % \begin{macro}{\quad}
 % Handles special minipage \& horizontal space interactions.
+% \changes{v0.64}{2018/12/08}{Made robust.}
 %    \begin{macrocode}
-\renewcommand*{\quad}{%
+\renewrobustcmd*{\quad}{%
 \LWR at minipagestoppars%
 \HTMLunicode{2001}%
 \LWR at minipagestartpars%
@@ -32992,15 +33085,17 @@
 
 % \begin{macro}{\qquad}
 % Handles special minipage \& horizontal space interactions.
+% \changes{v0.64}{2018/12/08}{Made robust.}
 %    \begin{macrocode}
-\renewcommand*{\qquad}{\quad\quad}
+\renewrobustcmd*{\qquad}{\quad\quad}
 %    \end{macrocode}
 % \end{macro}
 
 % \begin{macro}{\enskip}
 % Handles special minipage \& horizontal space interactions.
+% \changes{v0.64}{2018/12/08}{Made robust.}
 %    \begin{macrocode}
-\renewcommand*{\enskip}{%
+\renewrobustcmd*{\enskip}{%
 \LWR at minipagestoppars%
 \HTMLunicode{2000}%
 \LWR at minipagestartpars%
@@ -33687,6 +33782,66 @@
 %    \end{macrocode}
 
 
+% \section{\pkg{ut*} classes}
+%
+% Load patches to \pkg{uj*} and \pkg{ut*} classes.
+%
+% \changes{v0.64}{2018/12/07}{\pkg{ujarticle} and related: Improved \cs{today}.}
+% \changes{v0.64}{2018/12/07}{Added \pkg{utarticle} and related.}
+%
+% \codehtml
+%    \begin{macrocode}
+\begin{warpHTML}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\newcommand*{\LWR at patchujtclasses}{
+    \let\tate\relax
+    \DeclareDocumentCommand{\rensuji}{m}{##1}
+    \def\@partnameformat{}% uj/t does not use \partname
+    \def\@partcntformat##1{%
+        \prepartname%
+        \csname the##1\endcsname%
+        \postpartname%
+        \quad%
+    }
+    \@ifundefined{chapter}{}{
+        \def\@chapcntformat##1{%
+            \prechaptername%
+            \csname the##1\endcsname%
+            \postchaptername%
+            \quad%
+        }
+    }
+    \renewcommand{\thepart}{\@Roman\c at part}
+    \@ifundefined{chapter}{
+        \renewcommand{\thesection}{\@arabic\c at section}
+    }{
+        \renewcommand{\thechapter}{\@arabic\c at chapter}
+        \renewcommand{\thesection}{\thechapter.\@arabic\c at section}
+    }
+    \renewcommand{\thesubsection}{\thesection.\@arabic\c at subsection}
+    \renewcommand{\thesubsubsection}{%
+    \thesubsection.\@arabic\c at subsubsection}
+    \renewcommand{\theparagraph}{%
+    \thesubsubsection.\@arabic\c at paragraph}
+    \renewcommand{\thesubparagraph}{%
+    \theparagraph.\@arabic\c at subparagraph}
+}
+
+\@ifclassloaded{ujarticle}{\LWR at patchujtclasses}{}
+\@ifclassloaded{ujbook}{\LWR at patchujtclasses}{}
+\@ifclassloaded{ujreport}{\LWR at patchujtclasses}{}
+\@ifclassloaded{utarticle}{\LWR at patchujtclasses}{}
+\@ifclassloaded{utbook}{\LWR at patchujtclasses}{}
+\@ifclassloaded{utreport}{\LWR at patchujtclasses}{}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\end{warpHTML}
+%    \end{macrocode}
+
+
 % ^^A *ctex
 % \section{C\TeX patch}
 %
@@ -34367,18 +34522,22 @@
 % \pkg{addlines} is emulated.
 %
 % \changes{v0.39}{2017/08/27}{\pkg{addlines}: Added.}
+% \changes{v0.64}{2018/12/06}{\pkg{addlines}: Updated to v0.3.}
 %
 % \codehtml
 %
 %    \begin{macrocode}
-\LWR at ProvidesPackageDrop{addlines}
+\LWR at ProvidesPackageDrop{addlines}[2018/12/05]
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\newcommand*\addlines[1][1]{}
+\newcommand\addlines{\@ifstar\addlines at a\addlines at a}
+\newcommand\addlines at a[1][1]{}
 \let\addline\addlines
-\newcommand*\removelines[1][1]{}
+\newcommand\removelines{\@ifstar\removelines at a\removelines at a}
+\newcommand\removelines at a[1][1]{}
 \let\removeline\removelines
+\newcommand\squeezepage[1][0]{}
 %    \end{macrocode}
 %
 % \iffalse
@@ -35445,7 +35604,7 @@
 %    \begin{macrocode}
 \newcommand{\simplechapter}[1][\@empty]{%
     \def\@chapcntformat##1{%
-        #1~\csname the##1\endcsname\simplechapterdelim\protect\quad%
+        #1~\csname the##1\endcsname\simplechapterdelim\quad%
     }%
 }
 
@@ -36239,7 +36398,57 @@
 %
 %
 %
+%
+%
 % \iffalse
+%<*biblatex>
+% \fi
+%
+% \part{lwarp-biblatex.sty}
+%
+% \section{biblatex}
+%
+% \credits{Philipp Lehman}
+%
+% \DescribePackage{biblatex}
+% When \pkg{biblatex} is used, modifications from \pkg{newfloat} may have to
+% be undone.
+%
+% \changes{v0.64}{2018/12/08}{\pkg{biblatex}: Added patch for C\TeX.}
+%
+% \codehtml
+%
+% \begin{enumerate}
+% \item \pkg{lwarp} uses \pkg{newfloat}.
+% \item For classes with chapters which \pkg{newfloat} does not know about,
+%           such as C\TeX-related classes, \pkg{newfloat} may modify
+%           \cs{addtocontents}.
+% \item \pkg{biblatex}, though, wants to patch \cs{addtocontents},
+%           which causes an error if \cs{addtocontents} has been changed.
+% \item Therefore, \cs{addtocontents} is restored to its original here,
+%           since \pkg{biblatex} is about to be loaded.
+% \item This means that the \pkg{newfloat}'s \optn{chapterlistsgaps}
+%           option may no longer work.
+% \end{enumerate}
+% 
+%    \begin{macrocode}
+\ifdef{\newfloat at addtocontents@ORI}{
+    \let\addtocontents\newfloat at addtocontents@ORI
+}{}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\LWR at ProvidesPackagePass{biblatex}
+%    \end{macrocode}
+%
+%
+% \iffalse
+%</biblatex>
+% \fi
+%
+%
+%
+% \iffalse
 %<*bibunits>
 % \fi
 %
@@ -36872,6 +37081,32 @@
 %
 %
 % \iffalse
+%<*bsheaders>
+% \fi
+%
+% \part{lwarp-bsheaders.sty}
+%
+% \section{bsheaders}
+%
+% \DescribePackage{bsheaders}
+% \pkg{bsheaders} is ignored.
+%
+% \changes{v0.64}{2018/12/07}{\pkg{bsheaders}: Added.}
+%
+% \codehtml
+%
+%    \begin{macrocode}
+\LWR at ProvidesPackageDrop{bsheaders}[1997/10/06]
+%    \end{macrocode}
+%
+% \iffalse
+%</bsheaders>
+% \fi
+%
+%
+%
+%
+% \iffalse
 %<*bxpapersize>
 % \fi
 %
@@ -43511,9 +43746,33 @@
 %
 %
 %
+% \iffalse
+%<*gmeometric>
+% \fi
 %
+% \part{lwarp-gmeometric.sty}
 %
+% \section{gmeometric}
+%
+% \DescribePackage{gmeometric}
+% \pkg{gmeometric} is ignored.
+%
+% \changes{v0.64}{2018/12/07}{\pkg{gmeometric}: Added.}
+%
+% \codehtml
+%
+%    \begin{macrocode}
+\LWR at ProvidesPackageDrop{gmeometric}
+%    \end{macrocode}
+%
 % \iffalse
+%</gmeometric>
+% \fi
+%
+%
+%
+%
+% \iffalse
 %<*graphics>
 % \fi
 
@@ -47258,7 +47517,42 @@
 %
 %
 %
+%
+%
+%
 % \iffalse
+%<*marginal>
+% \fi
+%
+% \part{lwarp-marginal.sty}
+%
+% \section{marginal}
+%
+% \DescribePackage{marginal}
+% \pkg{marginal} is emulated.
+%
+% \changes{v0.64}{2018/127/07}{\pkg{marginal}: Added.}
+%
+% \codehtml
+%
+%    \begin{macrocode}
+\LWR at ProvidesPackageDrop{marginal}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\newcommand*{\showlostmarginals}{}
+\newcommand*{\enlargefreelist}{}
+\newcommand*{\onesidemarginals}{}
+%    \end{macrocode}
+%
+% \iffalse
+%</marginal>
+% \fi
+%
+%
+%
+%
+% \iffalse
 %<*marginfit>
 % \fi
 %
@@ -51882,7 +52176,35 @@
 %
 %
 %
+%
 % \iffalse
+%<*rmpage>
+% \fi
+%
+% \part{lwarp-rmpage.sty}
+%
+% \section{rmpage}
+%
+% \DescribePackage{rmpage}
+% \pkg{rmpage} is ignored.
+%
+% \changes{v0.64}{2018/12/07}{\pkg{rmpage}: Added.}
+%
+% \codehtml
+%
+%    \begin{macrocode}
+\LWR at ProvidesPackageDrop{rmpage}
+%    \end{macrocode}
+%
+% \iffalse
+%</rmpage>
+% \fi
+%
+%
+%
+%
+%
+% \iffalse
 %<*romanbar>
 % \fi
 %
@@ -52476,7 +52798,17 @@
 \DeclareDocumentCommand{\automark}{s o m}{}
 \DeclareDocumentCommand{\manualmark}{}{}
 \DeclareDocumentCommand{\MakeMarkcase}{m}{#1}
-\DeclareDocumentCommand{\GenericMarkFormat}{}{}
+%    \end{macrocode}
+% \changes{v0.64}{2018/12/07}{\pkg{scrlayer}: Fixes.}
+%    \begin{macrocode}
+\newcommand{\partmarkformat}{}
+\if at chapter
+\newcommand{\chaptermarkformat}{}
+\fi
+\newcommand{\sectionmarkformat}{}
+\DeclareDocumentCommand{\GenericMarkFormat}{m}{}
+%    \end{macrocode}
+%    \begin{macrocode}
 \newcommand*{\@mkleft}[1]{}
 \newcommand*{\@mkright}[1]{}
 \newcommand*{\@mkdouble}[1]{}
@@ -52578,17 +52910,22 @@
 \NewDocumentCommand{\ofoot}{s o m}{}
 \NewDocumentCommand{\cfoot}{s o m}{}
 \NewDocumentCommand{\ifoot}{s o m}{}
-\DeclareDocumentCommand{\automark}{s o m}{}
-\DeclareDocumentCommand{\manualmark}{}{}
 \DeclareDocumentCommand{\MakeMarkcase}{m}{#1}
-\DeclareDocumentCommand{\GenericMarkFormat}{}{}
 \newcommand*{\defpairofpagestyles}[3][]{}
 \newcommand*{\newpairofpagestyles}[3][]{}
 \newcommand*{\renewpairofpagestyles}[3][]{}
 \newcommand*{\providepairofpagestyles}[3][]{}
-\newcommand*{\clearmainofpairofpagestyles}
-\newcommand*{\clearplainofpairofpagestyles}
-\newcommand*{\clearpairofpagestyles}
+%    \end{macrocode}
+% \changes{v0.64}{2018/12/07}{\pkg{scrlayer-scrpage}: Fixes.}
+%    \begin{macrocode}
+\newcommand*{\clearmainofpairofpagestyles}{}
+\newcommand*{\clearplainofpairofpagestyles}{}
+\newcommand*{\clearpairofpagestyles}{}
+\newcommand*{\clearscrheadings}{}
+\newcommand*{\clearscrheadfoot}{}
+\newcommand*{\clearscrplain}{}
+%    \end{macrocode}
+%    \begin{macrocode}
 \NewDocumentCommand{\deftriplepagestyle}{m o o m m m m m m}{}
 \NewDocumentCommand{\newtriplepagestyle}{m o o m m m m m m}{}
 \NewDocumentCommand{\renewtriplepagestyle}{m o o m m m m m m}{}
@@ -52607,6 +52944,79 @@
 %
 %
 % \iffalse
+%<*scrpage2>
+% \fi
+%
+% \part{lwarp-scrpage2.sty}
+%
+% \section{scrpage2}
+%
+% \credits{Markus Kohm}
+%
+% \DescribePackage{scrpage2}
+% \pkg{scrpage2} is emulated.
+%
+% \testthis
+%
+% \changes{v0.64}{2018/12/07}{\pkg{scrpage2}: Added.}
+%
+% \codehtml
+%
+%    \begin{macrocode}
+\LWR at ProvidesPackageDrop{scrpage2}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\@ifundefined{footheight}{\newlength\footheight}{}
+\NewDocumentCommand{\lehead}{o m}{}
+\NewDocumentCommand{\cehead}{o m}{}
+\NewDocumentCommand{\rehead}{o m}{}
+\NewDocumentCommand{\lohead}{o m}{}
+\NewDocumentCommand{\cohead}{o m}{}
+\NewDocumentCommand{\rohead}{o m}{}
+\NewDocumentCommand{\lefoot}{o m}{}
+\NewDocumentCommand{\cefoot}{o m}{}
+\NewDocumentCommand{\refoot}{o m}{}
+\NewDocumentCommand{\lofoot}{o m}{}
+\NewDocumentCommand{\cofoot}{o m}{}
+\NewDocumentCommand{\rofoot}{o m}{}
+\NewDocumentCommand{\ohead}{o m}{}
+\NewDocumentCommand{\chead}{o m}{}
+\NewDocumentCommand{\ihead}{o m}{}
+\NewDocumentCommand{\ofoot}{o m}{}
+\NewDocumentCommand{\cfoot}{o m}{}
+\NewDocumentCommand{\ifoot}{o m}{}
+\DeclareDocumentCommand{\automark}{o m}{}
+\DeclareDocumentCommand{\manualmark}{}{}
+\DeclareDocumentCommand{\MakeMarkcase}{m}{#1}
+\NewDocumentCommand{\deftripstyle}{m o o m m m m m m}{}
+\NewDocumentCommand{\defpagestyle}{s m m m}{}
+\NewDocumentCommand{\newpagestyle}{s m m m}{}
+\NewDocumentCommand{\renewpagestyle}{s m m m}{}
+\NewDocumentCommand{\providepagestyle}{s m m m}{}
+\newcommand{\partmarkformat}{}
+\if at chapter
+\newcommand{\chaptermarkformat}{}
+\fi
+\newcommand{\sectionmarkformat}{}
+\newcommand{\subsectionmarkformat}{}
+\newcommand{\subsubsectionmarkformat}{}
+\newcommand{\paragraphmarkformat}{}
+\newcommand{\subparagraphmarkformat}{}
+
+\newcommand*{\clearscrheadings}{}
+\newcommand*{\clearscrheadfoot}{}
+\newcommand*{\clearscrplain}{}
+%    \end{macrocode}
+%
+% \iffalse
+%</scrpage2>
+% \fi
+%
+%
+%
+%
+% \iffalse
 %<*section>
 % \fi
 %
@@ -56467,7 +56877,7 @@
 %    \begin{macrocode}
 \DeclareDocumentCommand{\simplechapter}{O{\@empty}}{%
     \def\@chapcntformat##1{%
-        #1~\csname the##1\endcsname\simplechapterdelim\protect\quad%
+        #1~\csname the##1\endcsname\simplechapterdelim\quad%
     }%
 }
 

Modified: trunk/Master/texmf-dist/source/latex/lwarp/lwarp.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/lwarp/lwarp.ins	2018-12-10 22:57:48 UTC (rev 49376)
+++ trunk/Master/texmf-dist/source/latex/lwarp/lwarp.ins	2018-12-10 22:58:31 UTC (rev 49377)
@@ -65,6 +65,7 @@
 \file{lwarp-axodraw2.sty}{\from{lwarp.dtx}{axodraw2}}
 \file{lwarp-backref.sty}{\from{lwarp.dtx}{backref}}
 \file{lwarp-balance.sty}{\from{lwarp.dtx}{balance}}
+\file{lwarp-biblatex.sty}{\from{lwarp.dtx}{biblatex}}
 \file{lwarp-bibunits.sty}{\from{lwarp.dtx}{bibunits}}
 \file{lwarp-bigdelim.sty}{\from{lwarp.dtx}{bigdelim}}
 \file{lwarp-bigstrut.sty}{\from{lwarp.dtx}{bigstrut}}
@@ -77,6 +78,7 @@
 \file{lwarp-boxedminipage2e.sty}{\from{lwarp.dtx}{boxedminipage2e}}
 \file{lwarp-breakurl.sty}{\from{lwarp.dtx}{breakurl}}
 \file{lwarp-breqn.sty}{\from{lwarp.dtx}{breqn}}
+\file{lwarp-bsheaders.sty}{\from{lwarp.dtx}{bsheaders}}
 \file{lwarp-bxpapersize.sty}{\from{lwarp.dtx}{bxpapersize}}
 \file{lwarp-bytefield.sty}{\from{lwarp.dtx}{bytefield}}
 \file{lwarp-cancel.sty}{\from{lwarp.dtx}{cancel}}
@@ -168,6 +170,7 @@
 \file{lwarp-fwlw.sty}{\from{lwarp.dtx}{fwlw}}
 \file{lwarp-geometry.sty}{\from{lwarp.dtx}{geometry}}
 \file{lwarp-glossaries.sty}{\from{lwarp.dtx}{glossaries}}
+\file{lwarp-gmeometric.sty}{\from{lwarp.dtx}{gmeometric}}
 \file{lwarp-graphicx.sty}{\from{lwarp.dtx}{graphicx}}
 \file{lwarp-graphics.sty}{\from{lwarp.dtx}{graphics}}
 \file{lwarp-grffile.sty}{\from{lwarp.dtx}{grffile}}
@@ -209,6 +212,7 @@
 \file{lwarp-luatodonotes.sty}{\from{lwarp.dtx}{luatodonotes}}
 \file{lwarp-magaz.sty}{\from{lwarp.dtx}{magaz}}
 \file{lwarp-makeidx.sty}{\from{lwarp.dtx}{makeidx}}
+\file{lwarp-marginal.sty}{\from{lwarp.dtx}{marginal}}
 \file{lwarp-marginfit.sty}{\from{lwarp.dtx}{marginfit}}
 \file{lwarp-marginfix.sty}{\from{lwarp.dtx}{marginfix}}
 \file{lwarp-marginnote.sty}{\from{lwarp.dtx}{marginnote}}
@@ -277,6 +281,7 @@
 \file{lwarp-relsize.sty}{\from{lwarp.dtx}{relsize}}
 \file{lwarp-repeatindex.sty}{\from{lwarp.dtx}{repeatindex}}
 \file{lwarp-resizegather.sty}{\from{lwarp.dtx}{resizegather}}
+\file{lwarp-rmpage.sty}{\from{lwarp.dtx}{rmpage}}
 \file{lwarp-romanbar.sty}{\from{lwarp.dtx}{romanbar}}
 \file{lwarp-romanbarpagenumber.sty}{\from{lwarp.dtx}{romanbarpagenumber}}
 \file{lwarp-rotating.sty}{\from{lwarp.dtx}{rotating}}
@@ -290,6 +295,7 @@
 \file{lwarp-scrlayer.sty}{\from{lwarp.dtx}{scrlayer}}
 \file{lwarp-scrlayer-notecolumn.sty}{\from{lwarp.dtx}{scrlayer-notecolumn}}
 \file{lwarp-scrlayer-scrpage.sty}{\from{lwarp.dtx}{scrlayer-scrpage}}
+\file{lwarp-scrpage2.sty}{\from{lwarp.dtx}{scrpage2}}
 \file{lwarp-section.sty}{\from{lwarp.dtx}{section}}
 \file{lwarp-sectionbreak.sty}{\from{lwarp.dtx}{sectionbreak}}
 \file{lwarp-sectsty.sty}{\from{lwarp.dtx}{sectsty}}

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-addlines.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-addlines.sty	2018-12-10 22:57:48 UTC (rev 49376)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-addlines.sty	2018-12-10 22:58:31 UTC (rev 49377)
@@ -15,11 +15,14 @@
 %%   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{addlines}
-\newcommand*\addlines[1][1]{}
+\LWR at ProvidesPackageDrop{addlines}[2018/12/05]
+\newcommand\addlines{\@ifstar\addlines at a\addlines at a}
+\newcommand\addlines at a[1][1]{}
 \let\addline\addlines
-\newcommand*\removelines[1][1]{}
+\newcommand\removelines{\@ifstar\removelines at a\removelines at a}
+\newcommand\removelines at a[1][1]{}
 \let\removeline\removelines
+\newcommand\squeezepage[1][0]{}
 \endinput
 %%
 %% End of file `lwarp-addlines.sty'.

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-anonchap.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-anonchap.sty	2018-12-10 22:57:48 UTC (rev 49376)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-anonchap.sty	2018-12-10 22:58:31 UTC (rev 49377)
@@ -18,7 +18,7 @@
 \LWR at ProvidesPackageDrop{anonchap}
 \newcommand{\simplechapter}[1][\@empty]{%
     \def\@chapcntformat##1{%
-        #1~\csname the##1\endcsname\simplechapterdelim\protect\quad%
+        #1~\csname the##1\endcsname\simplechapterdelim\quad%
     }%
 }
 

Added: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-biblatex.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-biblatex.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-biblatex.sty	2018-12-10 22:58:31 UTC (rev 49377)
@@ -0,0 +1,24 @@
+%%
+%% This is file `lwarp-biblatex.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lwarp.dtx  (with options: `biblatex')
+%% This is a generated file.
+%% Copyright 2016-2018 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.
+\ifdef{\newfloat at addtocontents@ORI}{
+    \let\addtocontents\newfloat at addtocontents@ORI
+}{}
+\LWR at ProvidesPackagePass{biblatex}
+\endinput
+%%
+%% End of file `lwarp-biblatex.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-biblatex.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-bsheaders.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-bsheaders.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-bsheaders.sty	2018-12-10 22:58:31 UTC (rev 49377)
@@ -0,0 +1,21 @@
+%%
+%% This is file `lwarp-bsheaders.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lwarp.dtx  (with options: `bsheaders')
+%% This is a generated file.
+%% Copyright 2016-2018 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{bsheaders}[1997/10/06]
+\endinput
+%%
+%% End of file `lwarp-bsheaders.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-bsheaders.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-gmeometric.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-gmeometric.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-gmeometric.sty	2018-12-10 22:58:31 UTC (rev 49377)
@@ -0,0 +1,21 @@
+%%
+%% This is file `lwarp-gmeometric.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lwarp.dtx  (with options: `gmeometric')
+%% This is a generated file.
+%% Copyright 2016-2018 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{gmeometric}
+\endinput
+%%
+%% End of file `lwarp-gmeometric.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-gmeometric.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-marginal.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-marginal.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-marginal.sty	2018-12-10 22:58:31 UTC (rev 49377)
@@ -0,0 +1,24 @@
+%%
+%% This is file `lwarp-marginal.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lwarp.dtx  (with options: `marginal')
+%% This is a generated file.
+%% Copyright 2016-2018 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{marginal}
+\newcommand*{\showlostmarginals}{}
+\newcommand*{\enlargefreelist}{}
+\newcommand*{\onesidemarginals}{}
+\endinput
+%%
+%% End of file `lwarp-marginal.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-marginal.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-rmpage.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-rmpage.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-rmpage.sty	2018-12-10 22:58:31 UTC (rev 49377)
@@ -0,0 +1,21 @@
+%%
+%% This is file `lwarp-rmpage.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lwarp.dtx  (with options: `rmpage')
+%% This is a generated file.
+%% Copyright 2016-2018 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{rmpage}
+\endinput
+%%
+%% End of file `lwarp-rmpage.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-rmpage.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-scrlayer-scrpage.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-scrlayer-scrpage.sty	2018-12-10 22:57:48 UTC (rev 49376)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-scrlayer-scrpage.sty	2018-12-10 22:58:31 UTC (rev 49377)
@@ -35,17 +35,17 @@
 \NewDocumentCommand{\ofoot}{s o m}{}
 \NewDocumentCommand{\cfoot}{s o m}{}
 \NewDocumentCommand{\ifoot}{s o m}{}
-\DeclareDocumentCommand{\automark}{s o m}{}
-\DeclareDocumentCommand{\manualmark}{}{}
 \DeclareDocumentCommand{\MakeMarkcase}{m}{#1}
-\DeclareDocumentCommand{\GenericMarkFormat}{}{}
 \newcommand*{\defpairofpagestyles}[3][]{}
 \newcommand*{\newpairofpagestyles}[3][]{}
 \newcommand*{\renewpairofpagestyles}[3][]{}
 \newcommand*{\providepairofpagestyles}[3][]{}
-\newcommand*{\clearmainofpairofpagestyles}
-\newcommand*{\clearplainofpairofpagestyles}
-\newcommand*{\clearpairofpagestyles}
+\newcommand*{\clearmainofpairofpagestyles}{}
+\newcommand*{\clearplainofpairofpagestyles}{}
+\newcommand*{\clearpairofpagestyles}{}
+\newcommand*{\clearscrheadings}{}
+\newcommand*{\clearscrheadfoot}{}
+\newcommand*{\clearscrplain}{}
 \NewDocumentCommand{\deftriplepagestyle}{m o o m m m m m m}{}
 \NewDocumentCommand{\newtriplepagestyle}{m o o m m m m m m}{}
 \NewDocumentCommand{\renewtriplepagestyle}{m o o m m m m m m}{}

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-scrlayer.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-scrlayer.sty	2018-12-10 22:57:48 UTC (rev 49376)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-scrlayer.sty	2018-12-10 22:58:31 UTC (rev 49377)
@@ -71,7 +71,12 @@
 \DeclareDocumentCommand{\automark}{s o m}{}
 \DeclareDocumentCommand{\manualmark}{}{}
 \DeclareDocumentCommand{\MakeMarkcase}{m}{#1}
-\DeclareDocumentCommand{\GenericMarkFormat}{}{}
+\newcommand{\partmarkformat}{}
+\if at chapter
+\newcommand{\chaptermarkformat}{}
+\fi
+\newcommand{\sectionmarkformat}{}
+\DeclareDocumentCommand{\GenericMarkFormat}{m}{}
 \newcommand*{\@mkleft}[1]{}
 \newcommand*{\@mkright}[1]{}
 \newcommand*{\@mkdouble}[1]{}

Added: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-scrpage2.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-scrpage2.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-scrpage2.sty	2018-12-10 22:58:31 UTC (rev 49377)
@@ -0,0 +1,61 @@
+%%
+%% This is file `lwarp-scrpage2.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lwarp.dtx  (with options: `scrpage2')
+%% This is a generated file.
+%% Copyright 2016-2018 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{scrpage2}
+\@ifundefined{footheight}{\newlength\footheight}{}
+\NewDocumentCommand{\lehead}{o m}{}
+\NewDocumentCommand{\cehead}{o m}{}
+\NewDocumentCommand{\rehead}{o m}{}
+\NewDocumentCommand{\lohead}{o m}{}
+\NewDocumentCommand{\cohead}{o m}{}
+\NewDocumentCommand{\rohead}{o m}{}
+\NewDocumentCommand{\lefoot}{o m}{}
+\NewDocumentCommand{\cefoot}{o m}{}
+\NewDocumentCommand{\refoot}{o m}{}
+\NewDocumentCommand{\lofoot}{o m}{}
+\NewDocumentCommand{\cofoot}{o m}{}
+\NewDocumentCommand{\rofoot}{o m}{}
+\NewDocumentCommand{\ohead}{o m}{}
+\NewDocumentCommand{\chead}{o m}{}
+\NewDocumentCommand{\ihead}{o m}{}
+\NewDocumentCommand{\ofoot}{o m}{}
+\NewDocumentCommand{\cfoot}{o m}{}
+\NewDocumentCommand{\ifoot}{o m}{}
+\DeclareDocumentCommand{\automark}{o m}{}
+\DeclareDocumentCommand{\manualmark}{}{}
+\DeclareDocumentCommand{\MakeMarkcase}{m}{#1}
+\NewDocumentCommand{\deftripstyle}{m o o m m m m m m}{}
+\NewDocumentCommand{\defpagestyle}{s m m m}{}
+\NewDocumentCommand{\newpagestyle}{s m m m}{}
+\NewDocumentCommand{\renewpagestyle}{s m m m}{}
+\NewDocumentCommand{\providepagestyle}{s m m m}{}
+\newcommand{\partmarkformat}{}
+\if at chapter
+\newcommand{\chaptermarkformat}{}
+\fi
+\newcommand{\sectionmarkformat}{}
+\newcommand{\subsectionmarkformat}{}
+\newcommand{\subsubsectionmarkformat}{}
+\newcommand{\paragraphmarkformat}{}
+\newcommand{\subparagraphmarkformat}{}
+
+\newcommand*{\clearscrheadings}{}
+\newcommand*{\clearscrheadfoot}{}
+\newcommand*{\clearscrplain}{}
+\endinput
+%%
+%% End of file `lwarp-scrpage2.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-scrpage2.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-tocbibind.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-tocbibind.sty	2018-12-10 22:57:48 UTC (rev 49376)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-tocbibind.sty	2018-12-10 22:58:31 UTC (rev 49377)
@@ -51,7 +51,7 @@
 }{}
 \DeclareDocumentCommand{\simplechapter}{O{\@empty}}{%
     \def\@chapcntformat##1{%
-        #1~\csname the##1\endcsname\simplechapterdelim\protect\quad%
+        #1~\csname the##1\endcsname\simplechapterdelim\quad%
     }%
 }
 

Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp.sty	2018-12-10 22:57:48 UTC (rev 49376)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp.sty	2018-12-10 22:58:31 UTC (rev 49377)
@@ -17,7 +17,7 @@
 %% version 2005/12/01 or later.
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
 \ProvidesPackage{lwarp}
-    [2018/12/03 v0.63  Allows LaTeX to directly produce HTML5 output.]
+    [2018/12/08 v0.64  Allows LaTeX to directly produce HTML5 output.]
 
 
 
@@ -129,9 +129,6 @@
 For a possible alternative, see class(es) #2.}
 }{}%
 }
-\LWR at earlyclassloadnever{utarticle}{ujarticle}
-\LWR at earlyclassloadnever{utbook}{ujbook}
-\LWR at earlyclassloadnever{utreport}{ujreport}
 \LWR at earlyloadnever{ae}{cm-super, lmodern}
 \LWR at earlyloadnever{aecompl}{cm-super, lmodern}
 \LWR at earlyloadnever{aecc}{cm-super, lmodern}
@@ -141,7 +138,7 @@
     \LWR at earlyloadnever{CJK}{ctex, xeCJK}
     \LWR at earlyloadnever{CJKutf8}{ctex, xeCJK}
 }
-\LWR at earlyloadnever{bxcjkjatype}{pLaTeX, upLaTeX, bxjsarticle, ujarticle}
+\LWR at earlyloadnever{bxcjkjatype}{pLaTeX, upLaTeX, bxjsarticle, ujarticle, utarticle}
 \LWR at earlyloadnever{hangul}{kotex, xetexko, luatexko}
 \LWR at earlyloadnever{fancyheadings}{fancyhdr}
 \LWR at earlyloadnever{glossary}{glossaries}
@@ -192,6 +189,7 @@
 \LWR at loadafter{boxedminipage2e}
 \LWR at loadafter{breakurl}
 \LWR at loadafter{breqn}
+\LWR at loadafter{bsheaders}
 \LWR at loadafter{bxpapersize}
 \LWR at loadafter{bytefield}
 \LWR at loadafter{cancel}
@@ -280,6 +278,7 @@
 \LWR at loadafter{fullwidth}
 \LWR at loadafter{fwlw}
 \LWR at notbxjsloadafter{geometry}
+\LWR at loadafter{gmeometric}
 \LWR at loadafter{glossaries}
 \LWR at loadafter{glossary}
 \LWR at loadafter{grffile}
@@ -389,6 +388,7 @@
 \LWR at loadafter{relsize}
 \LWR at loadafter{repeatindex}
 \LWR at loadafter{resizegather}
+\LWR at loadafter{rmpage}
 \LWR at loadafter{romanbar}
 \LWR at loadafter{romanbarpagenumber}
 \LWR at loadafter{rotating}
@@ -401,6 +401,7 @@
 \LWR at loadafter{scrlayer}
 \LWR at loadafter{scrlayer-notecolumn}
 \LWR at loadafter{scrlayer-scrpage}
+\LWR at loadafter{scrpage2}
 \LWR at loadafter{section}
 \LWR at loadafter{sectionbreak}
 \LWR at loadafter{sectsty}
@@ -468,7 +469,6 @@
 \LWR at loadafter{vpe}
 \LWR at loadafter{vwcol}
 \LWR at loadafter{wallpaper}
-\LWR at loadafter{wasysym}
 \LWR at loadafter{watermark}
 \LWR at loadafter{widows-and-orphans}
 \LWR at loadafter{wrapfig}
@@ -900,11 +900,16 @@
 \newcommand*{\LWR at checkloadfilename}[1]{%
 \LWR at checkloadnever{#1}{ae}{latinmodern}
 \LWR at checkloadnever{#1}{aecc}{latinmodern}
+\LWR at checkloadnever{#1}{bitfield}{bytefield}
 \LWR at checkloadnever{#1}{boxedminipage}{boxedminipage2e}
 \LWR at checkloadnever{#1}{caption2}{caption}
 \LWR at checkloadnever{#1}{ccaption}{caption}
+\LWR at checkloadnever{#1}{doublespace}{setspace}
 \LWR at checkloadnever{#1}{fancyheadings}{fancyhdr}
 \LWR at checkloadnever{#1}{glossary}{glossaries}
+\LWR at checkloadnever{#1}{newthm}{ntheorem}
+\LWR at checkloadnever{#1}{rplain}{fancyhdr}
+\LWR at checkloadnever{#1}{si}{siunitx}
 \LWR at checkloadnever{#1}{t1enc}{fontenc, inputenc, inputenx}
 \LWR at checkloadnever{#1}{wasysym}{textcomp, amssymb, amsfonts, mnsymbol, fdsymbol}
 \LWR at checkloadbefore{#1}{ctex}
@@ -1576,6 +1581,9 @@
 \@ifclassloaded{ujarticle}{\LWR at compileuplatex}{}
 \@ifclassloaded{ujbook}{\LWR at compileuplatex}{}
 \@ifclassloaded{ujreport}{\LWR at compileuplatex}{}
+\@ifclassloaded{utarticle}{\LWR at compileuplatex}{}
+\@ifclassloaded{utbook}{\LWR at compileuplatex}{}
+\@ifclassloaded{utreport}{\LWR at compileuplatex}{}
 \ifdefempty{\LWR at PrintLatexCmd}{
     \def\LWR at PrintLatexCmd{\LWR at tempprintlatexcmd}
 }{}
@@ -1672,7 +1680,7 @@
 p {margin: 1.5ex 0em 1.5ex 0em ;}
 table p {margin: .5ex 0em .5ex 0em ;}
 
-/* Holds a section number to add space between it and the name */
+/* Holds a section number */
 span.sectionnumber { margin-right: 0em }
 
 /* Inserted in front of index lines */
@@ -3639,7 +3647,7 @@
 
 -- Copyright 2016-2018 Brian Dunn
 
-printversion = "v0.63"
+printversion = "v0.64"
 requiredconfversion = "1" -- also at *lwarpmk.conf
 
 function printhelp ()
@@ -5825,7 +5833,7 @@
 }
 \newcounter{LWR at prevFileDepth}
 \setcounter{LWR at prevFileDepth}{\LWR at depthsubparagraph}
-\def\@seccntformat#1{\csname the#1\endcsname\protect\quad}
+\def\@seccntformat#1{\csname the#1\endcsname\quad}
 \newcommand*{\simplechapterdelim}{}
 \let\@chapcntformat\@seccntformat
 \let\@partcntformat\@seccntformat
@@ -5919,7 +5927,11 @@
             \LWR at traceinfo{LWR at section: about to addcontentsline}%
             \addcontentsline{toc}{#4}%
             {%
-                 \protect\numberline{\@nameuse{the#4}}%
+                \protect\numberline{%
+                    \@nameuse{pre#4name}%
+                    \@nameuse{the#4}%
+                    \@nameuse{post#4name}%
+                }%
                 {%
                     \ignorespaces%
                     \IfValueTF{#2}{\LWR at isolate{#2}}{\LWR at isolate{#3}}\protect\relax%
@@ -5944,7 +5956,7 @@
         \ifthenelse{%
             \(\cnttest{\@nameuse{LWR at depth#4}}{<=}%
                 {\value{secnumdepth}}\) \AND%
-            \(\cnttest{\@nameuse{LWR at depth#4}}{<=}{\LWR at depthpart}\)%
+            \(\cnttest{\@nameuse{LWR at depth#4}}{=}{\LWR at depthpart}\)%
         }%
         {\@partnameformat}%
         {}%
@@ -5954,9 +5966,8 @@
         }%
         {%
             \ifstrequal{#4}{part}%
+            {\protect\LWR at sectionnumber{\@partcntformat{#4}}}%
             {%
-                \protect\LWR at sectionnumber{\@partcntformat{#4}}%
-            }{%
                 \ifstrequal{#4}{chapter}%
                     {\protect\LWR at sectionnumber{\@chapcntformat{#4}}}%
                     {\protect\LWR at sectionnumber{\@seccntformat{#4}}}%
@@ -5995,6 +6006,28 @@
 }
 
 
+\providecommand*{\prepartname}{}
+\providecommand*{\postpartname}{}
+
+\providecommand*{\prechaptername}{}
+\providecommand*{\postchaptername}{}
+
+\providecommand*{\presectionname}{}
+\let\postsectionname\presectionname
+
+\let\presubsectionname\presectionname
+\let\postsubsectionname\postsectionname
+
+\let\presubsubsectionname\presectionname
+\let\postsubsubsectionname\postsectionname
+
+\let\preparagraphname\presectionname
+\let\postparagraphname\postsectionname
+
+\let\presubparagraphname\presectionname
+\let\postsubparagraphname\postsectionname
+
+
 \newcommand{\part at preamble}{}% for koma-script
 
 \DeclareDocumentCommand{\part}{s o m}{%
@@ -6095,13 +6128,17 @@
 }
 
 \ifPDFTeX% pdflatex or dvi latex
-\ifdefstring{\inputencodingname}{utf8}{%
-    \newcommand*{\theHTMLTitleSeparator}{ — }% EMdash
-}{%
-    \newcommand*{\theHTMLTitleSeparator}{ - }% hyphen
-}%
+    \ifdefstring{\inputencodingname}{utf8}{%
+        \newcommand*{\theHTMLTitleSeparator}{ — }% EMdash
+    }{%
+        \newcommand*{\theHTMLTitleSeparator}{ - }% hyphen
+    }%
 \else%
-    \newcommand*{\theHTMLTitleSeparator}{ — }% EMdash
+    \ifpTeX
+        \newcommand*{\theHTMLTitleSeparator}{ - }% hyphen
+    \else
+        \newcommand*{\theHTMLTitleSeparator}{ — }% EMdash
+    \fi%
 \fi%
 
 \newcommand*{\HTMLTitleBeforeSection}{%
@@ -6223,7 +6260,7 @@
 \LWR at origonecolumn%
 \LWR at origpagestyle{empty}%
 \overfullrule=0pt
-\LWR at print@scriptsize%
+\LWR at print@footnotesize%
 \LWR at print@raggedright%
 \LetLtxMacro{\\}{\LWR at endofline}%
 \linespread{1.3}%
@@ -11145,15 +11182,15 @@
 \ifbool{LWR at minipagethispar}{\LWR at stoppars}{}%
 }
 
-\renewcommand*{\quad}{%
+\renewrobustcmd*{\quad}{%
 \LWR at minipagestoppars%
 \HTMLunicode{2001}%
 \LWR at minipagestartpars%
 }
 
-\renewcommand*{\qquad}{\quad\quad}
+\renewrobustcmd*{\qquad}{\quad\quad}
 
-\renewcommand*{\enskip}{%
+\renewrobustcmd*{\enskip}{%
 \LWR at minipagestoppars%
 \HTMLunicode{2000}%
 \LWR at minipagestartpars%
@@ -11430,6 +11467,49 @@
 \end{warpHTML}
 
 \begin{warpHTML}
+\newcommand*{\LWR at patchujtclasses}{
+    \let\tate\relax
+    \DeclareDocumentCommand{\rensuji}{m}{##1}
+    \def\@partnameformat{}% uj/t does not use \partname
+    \def\@partcntformat##1{%
+        \prepartname%
+        \csname the##1\endcsname%
+        \postpartname%
+        \quad%
+    }
+    \@ifundefined{chapter}{}{
+        \def\@chapcntformat##1{%
+            \prechaptername%
+            \csname the##1\endcsname%
+            \postchaptername%
+            \quad%
+        }
+    }
+    \renewcommand{\thepart}{\@Roman\c at part}
+    \@ifundefined{chapter}{
+        \renewcommand{\thesection}{\@arabic\c at section}
+    }{
+        \renewcommand{\thechapter}{\@arabic\c at chapter}
+        \renewcommand{\thesection}{\thechapter.\@arabic\c at section}
+    }
+    \renewcommand{\thesubsection}{\thesection.\@arabic\c at subsection}
+    \renewcommand{\thesubsubsection}{%
+    \thesubsection.\@arabic\c at subsubsection}
+    \renewcommand{\theparagraph}{%
+    \thesubsubsection.\@arabic\c at paragraph}
+    \renewcommand{\thesubparagraph}{%
+    \theparagraph.\@arabic\c at subparagraph}
+}
+
+\@ifclassloaded{ujarticle}{\LWR at patchujtclasses}{}
+\@ifclassloaded{ujbook}{\LWR at patchujtclasses}{}
+\@ifclassloaded{ujreport}{\LWR at patchujtclasses}{}
+\@ifclassloaded{utarticle}{\LWR at patchujtclasses}{}
+\@ifclassloaded{utbook}{\LWR at patchujtclasses}{}
+\@ifclassloaded{utreport}{\LWR at patchujtclasses}{}
+\end{warpHTML}
+
+\begin{warpHTML}
 \AtBeginDocument{
     \@ifpackageloaded{ctexpatch}{%
         \def\@partcntformat#1{%



More information about the tex-live-commits mailing list