diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/lwarp/lwarp.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/lwarp/lwarp.sty | 4307 |
1 files changed, 2297 insertions, 2010 deletions
diff --git a/Master/texmf-dist/tex/latex/lwarp/lwarp.sty b/Master/texmf-dist/tex/latex/lwarp/lwarp.sty index 9fb90c6691c..6dd7b680198 100644 --- a/Master/texmf-dist/tex/latex/lwarp/lwarp.sty +++ b/Master/texmf-dist/tex/latex/lwarp/lwarp.sty @@ -6,7 +6,7 @@ %% %% lwarp.dtx (with options: `package') %% This is a generated file. -%% Copyright 2016-2019 Brian Dunn +%% Copyright 2016-2020 Brian Dunn %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 @@ -17,7 +17,7 @@ %% version 2005/12/01 or later. \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesPackage{lwarp} - [2019/11/07 v0.78 Allows LaTeX to directly produce HTML5 output.] + [2020/02/01 v0.79 Allows LaTeX to directly produce HTML5 output.] @@ -25,8 +25,10 @@ -\RequirePackage{iftex} +\RequirePackage{iftex}[2019/11/07] + \newif\ifxetexorluatex + \ifXeTeX \xetexorluatextrue \else @@ -36,13 +38,6 @@ \xetexorluatexfalse \fi \fi - -\ifLuaTeX -\RequirePackage{luatex85}% until the geometry package is updated -\fi - -\RequirePackage{ifpdf} -\RequirePackage{ifptex} \RequirePackage{etoolbox}[2011/01/03]% v2.6 for \BeforeBeginEnvironment, etc. \RequirePackage{xpatch} @@ -105,7 +100,7 @@ {% Package #1 is not supported\MessageBreak by lwarp's HTML conversion.\MessageBreak - Package(s) #2 may be useful instead + Package(s) #2 may be useful instead% } {% Package #1 might conflict with lwarp in some way,\MessageBreak @@ -120,19 +115,9 @@ }{}% } \newcommand*{\LWR@earlyloadnever}[2]{% -\@ifpackageloaded{#1}{% -\PackageError{lwarp} -{% - Package #1 is not supported\MessageBreak - by lwarp's HTML conversion.\MessageBreak - Package(s) #2 may be useful instead -} -{% - Package #1 might conflict with lwarp in some way,\MessageBreak - or is superceded by another package.\MessageBreak - For a possible alternative, see package(s) #2. -} -}{}% + \@ifpackageloaded{#1}{% + \LWR@loadnever{#1}{#2}% + }{}% } \newcommand*{\LWR@earlyclassloadnever}[2]{% \@ifclassloaded{#1}{% @@ -160,27 +145,32 @@ \LWR@earlyloadnever{aecc}{cm-super, lmodern} \LWR@earlyloadnever{alg}{algorithm2e, algorithmicx} \LWR@earlyloadnever{algorithmic}{algorithm2e, algorithmicx} +\LWR@earlyloadnever{bitfield}{bytefield} \LWR@earlyloadnever{boxedminipage}{boxedminipage2e} \LWR@earlyloadnever{caption2}{caption} -\@ifpackageloaded{xeCJK}{}{ - \LWR@earlyloadnever{CJK}{ctex, xeCJK} - \LWR@earlyloadnever{CJKutf8}{ctex, xeCJK} -} -\LWR@earlyloadnever{bxcjkjatype}{upLaTeX, bxjsarticle, ujarticle, utarticle} -\LWR@earlyloadnever{hangul}{kotex, xetexko, luatexko} \LWR@earlyloadnever{colortab}{colortbl} +\LWR@earlyloadnever{doublespace}{setspace} \LWR@earlyloadnever{epsf}{graphicx} \LWR@earlyloadnever{fancyheadings}{fancyhdr} \LWR@earlyloadnever{fncylab}{cleveref} \LWR@earlyloadnever{glossary}{glossaries} \LWR@earlyloadnever{hyper}{hyperref} +\LWR@earlyloadnever{newthm}{ntheorem} \LWR@earlyloadnever{pdfcprot}{microtype} \LWR@earlyloadnever{picinpar}{floatflt, wrapfig} \LWR@earlyloadnever{picins}{floatflt, wrapfig} +\LWR@earlyloadnever{rplain}{fancyhdr} +\LWR@earlyloadnever{si}{siunitx} \LWR@earlyloadnever{sistyle}{siunitx} \LWR@earlyloadnever{t1enc}{fontenc, inputenc, inputenx} \LWR@earlyloadnever{ucs}{inputenc, inputencx} \LWR@earlyloadnever{wasysym}{textcomp, amssymb, amsfonts, mnsymbol, fdsymbol} +\@ifpackageloaded{xeCJK}{}{ + \LWR@earlyloadnever{CJK}{ctex, xeCJK} + \LWR@earlyloadnever{CJKutf8}{ctex, xeCJK} +} +\LWR@earlyloadnever{bxcjkjatype}{upLaTeX, bxjsarticle, ujarticle, utarticle} +\LWR@earlyloadnever{hangul}{kotex, xetexko, luatexko} \LWR@loadafter{2in1} \LWR@loadafter{2up} \LWR@loadafter{a4} @@ -194,8 +184,6 @@ \LWR@loadafter{acronym} \LWR@loadafter{adjmulticol} \LWR@loadafter{addlines} -\LWR@loadafter{ae} -\LWR@loadafter{aecc} \LWR@loadafter{afterpage} \LWR@loadafter{algorithm2e} \LWR@loadafter{algorithmicx} @@ -214,6 +202,7 @@ \LWR@loadafter{attachfile2} \LWR@loadafter{authblk} \LWR@loadafter{autonum} +\LWR@loadafter{awesomebox} \LWR@loadafter{axessibility} \LWR@loadafter{axodraw2} \LWR@loadafter{backnaur} @@ -225,13 +214,14 @@ \LWR@loadafter{bigstrut} \LWR@loadafter{bitpattern} \LWR@loadafter{blowup} +\LWR@loadafter{bm} \LWR@loadafter{booklet} \LWR@loadafter{bookmark} \LWR@notmemoirloadafter{booktabs} \LWR@loadafter{bophook} \LWR@loadafter{bounddvi} -\LWR@loadafter{boxedminipage} \LWR@loadafter{boxedminipage2e} +\LWR@loadafter{braket} \LWR@loadafter{breakurl} \LWR@loadafter{breqn} \LWR@loadafter{bsheaders} @@ -299,7 +289,6 @@ \LWR@loadafter{extramarks} \LWR@loadafter{fancybox} \LWR@loadafter{fancyhdr} -\LWR@loadafter{fancyheadings} \LWR@loadafter{fancyref} \LWR@loadafter{fancytabs} \LWR@loadafter{fancyvrb} @@ -437,9 +426,16 @@ \LWR@notmemoirloadafter{pagenote} \LWR@loadafter{pagesel} \LWR@loadafter{paralist} +\LWR@loadafter{parallel} +\LWR@loadafter{parcolumns} \LWR@loadafter{parnotes} \LWR@notmemoirloadafter{parskip} \LWR@loadafter{pbox} +\LWR@loadafter{pdfcol} +\LWR@loadafter{pdfcolfoot} +\LWR@loadafter{pdfcolmk} +\LWR@loadafter{pdfcolparallel} +\LWR@loadafter{pdfcolparcolumns} \LWR@loadafter{pdfcomment} \LWR@loadafter{pdfcrypt} \LWR@loadafter{pdflscape} @@ -453,6 +449,7 @@ \LWR@loadafter{perpage} \LWR@loadafter{pfnote} \LWR@loadafter{phfqit} +\LWR@loadafter{physics} \LWR@loadafter{pifont} \LWR@loadafter{placeins} \LWR@loadafter{plarray} @@ -510,6 +507,7 @@ \LWR@loadafter{SIunits} \LWR@loadafter{siunitx} \LWR@loadafter{slantsc} +\LWR@loadafter{slashed} \LWR@loadafter{soul} \LWR@loadafter{soulpos} \LWR@loadafter{soulutf8} @@ -518,12 +516,14 @@ \LWR@loadafter{srctex} \LWR@loadafter{stabular} \LWR@loadafter{stackengine} +\LWR@loadafter{steinmetz} \LWR@notltjloadafter{stfloats} \LWR@loadafter{struktex} \LWR@loadafter{subcaption} \LWR@loadafter{subfig} \LWR@loadafter{subfigure} \LWR@loadafter{supertabular} +\LWR@loadafter{svg} \LWR@loadafter{t1inc} \LWR@loadafter{tabfigures} \LWR@loadafter{tabls} @@ -564,6 +564,7 @@ \LWR@loadafter{typicons} \LWR@loadafter{umoline} \LWR@loadafter{underscore} +\LWR@loadafter{unicode-math} \LWR@loadafter{units} \LWR@loadafter{unitsdef} \LWR@loadafter{upref} @@ -579,7 +580,9 @@ \LWR@loadafter{vwcol} \LWR@loadafter{wallpaper} \LWR@loadafter{watermark} +\LWR@loadafter{widetable} \LWR@loadafter{widows-and-orphans} +\LWR@loadafter{witharrows} \LWR@loadafter{wrapfig} \LWR@loadafter{xbmks} \LWR@loadafter{xcolor} @@ -637,7 +640,7 @@ \newunicodechar{⨯}{\texttimes} \ifPDFTeX% pdflatex or dvi latex -\newunicodechar{ff}{ff}% the first arguments are ligatures +\newunicodechar{ff}{ff}% Here, the first arguments are ligatures. \newunicodechar{fi}{fi} \newunicodechar{fl}{fl} \newunicodechar{ffi}{ffi} @@ -691,10 +694,15 @@ } +\providecommand*{\defaddtocounter}[2]{% + \defcounter{#1}{\value{#1}+#2}% +} + + \newcommand*{\LWR@patcherror}[2]{% \PackageError{lwarp} {Unable to patch package #1, macro #2} -{Please contact the author of the lwarp package.} +{Please contact the author of the Lwarp package.} } \newcommand{\LWR@isolate}[1]{#1}% @@ -740,6 +748,12 @@ \color@setgroup \ignorespaces} \let\LWR@endglrbox\LWR@endlrbox +\newcommand*{\macrotocsname}[1]{% + \ifcat\relax\noexpand#1% + \expandafter\expandafter\expandafter\@gobble\expandafter\string + \fi + #1% +} \let\LWRpercent\@percentchar \catcode`\$=12 \def\LWRdollar{$} @@ -964,17 +978,26 @@ \includecomment{warpall} \ifbool{warpingHTML} -{\includecomment{warpHTML}} -{\excludecomment{warpHTML}}% + {\includecomment{warpHTML}} + {\excludecomment{warpHTML}}% \ifbool{warpingprint} -{\includecomment{warpprint}} -{\excludecomment{warpprint}} + {\includecomment{warpprint}} + {\excludecomment{warpprint}} +\begin{warpprint} +\excludecomment{warpMathJax} +\end{warpprint} + +\begin{warpHTML} +\ifbool{mathjax} + {\includecomment{warpMathJax}} + {\excludecomment{warpMathJax}} +\end{warpHTML} \ifbool{LWR@creatinglwarpmk} -{\includecomment{LWR@createlwarpmk}} -{\excludecomment{LWR@createlwarpmk}} + {\includecomment{LWR@createlwarpmk}} + {\excludecomment{LWR@createlwarpmk}} \begin{warpHTML} @@ -1025,6 +1048,7 @@ \booltrue{LWR@allowanothergeometry} \AtEndPreamble{ \LWR@origsavegeometry{LWR@usergeometry} +%% \begin{macrocode} \newlength{\LWR@userspaperwidth} \setlength{\LWR@userspaperwidth}{\paperwidth} @@ -1033,6 +1057,12 @@ \newlength{\LWR@usersmarginparwidth} \setlength{\LWR@usersmarginparwidth}{\marginparwidth} + +\newlength{\LWR@userstextwidth} +\setlength{\LWR@userstextwidth}{\textwidth} + +\newlength{\LWR@userstextheight} +\setlength{\LWR@userstextwidth}{\textheight} \LWR@origgeometry{ reset, paperheight=190in, @@ -1129,15 +1159,15 @@ \RequirePackage{printlen} \newrobustcmd*{\LWR@printlength}[1]{% -\begingroup% -\uselengthunit{PT}% -\renewcommand*{\unitspace}{}% -\ifdimless{#1}{10pt}{% - \printlength{#1}% -}{% - \rndprintlength{#1}% -}% -\endgroup% + \begingroup% + \uselengthunit{PT}% + \renewcommand*{\unitspace}{}% + \ifdimless{#1}{10pt}{% + \printlength{#1}% + }{% + \rndprintlength{#1}% + }% + \endgroup% } \end{warpHTML} @@ -1169,14 +1199,15 @@ } \newcommand*{\LWR@checkloadfilename}[1]{% -\LWR@checkloadnever{#1}{ae}{latinmodern} -\LWR@checkloadnever{#1}{aecc}{latinmodern} +\LWR@checkloadnever{#1}{ae}{cm-super, lmodern} +\LWR@checkloadnever{#1}{aecc}{cm-super, lmodern} +\LWR@checkloadnever{#1}{aecompl}{cm-super, lmodern} \LWR@checkloadnever{#1}{alg}{algorithm2e, algorithmicx} \LWR@checkloadnever{#1}{algorithmic}{algorithm2e, algorithmicx} \LWR@checkloadnever{#1}{bitfield}{bytefield} \LWR@checkloadnever{#1}{boxedminipage}{boxedminipage2e} \LWR@checkloadnever{#1}{caption2}{caption} -\LWR@checkloadnever{#1}{ccaption}{caption} +\LWR@checkloadnever{#1}{ccaption}{caption}% might be preloaded by memoir \LWR@checkloadnever{#1}{colortab}{colortbl} \LWR@checkloadnever{#1}{doublespace}{setspace} \LWR@checkloadnever{#1}{epsf}{graphicx} @@ -1194,6 +1225,8 @@ \LWR@checkloadnever{#1}{t1enc}{fontenc, inputenc, inputenx} \LWR@checkloadnever{#1}{ucs}{inputenc, inputencx} \LWR@checkloadnever{#1}{wasysym}{textcomp, amssymb, amsfonts, mnsymbol, fdsymbol} +\LWR@checkloadnever{#1}{bxcjkjatype}{upLaTeX, bxjsarticle, ujarticle, utarticle} +\LWR@checkloadnever{#1}{hangul}{kotex, xetexko, luatexko} \LWR@checkloadbefore{#1}{ctex} \LWR@checkloadbefore{#1}{fontspec} \LWR@checkloadbefore{#1}{inputenc} @@ -1289,21 +1322,34 @@ \begin{warpHTML} \NewDocumentCommand{\LWR@ProvidesPackagePass}{m o}{ -\PackageInfo{lwarp}{% - Using package `#1' and adding lwarp modifications,\MessageBreak - including options,}% -\IfValueTF{#2} - {\ProvidesPackage{lwarp-#1}[#2]} - {\ProvidesPackage{lwarp-#1}} -\DeclareOption*{% - \PassOptionsToPackage{\CurrentOption}{#1}% -} -\ProcessOptions\relax% -\IfValueTF{#2}% - {\LWR@origRequirePackage{#1}[#2]}% - {\LWR@origRequirePackage{#1}}% -\DeclareOption*{}% -\ProcessOptions\relax% + \PackageInfo{lwarp}{% + Using package `#1' and adding lwarp modifications,\MessageBreak + including options,}% + \IfValueTF{#2}% + {\ProvidesPackage{lwarp-#1}[#2]}% + {\ProvidesPackage{lwarp-#1}}% + \DeclareOption*{% + \PassOptionsToPackage{\CurrentOption}{#1}% + }% + \ProcessOptions\relax% + \@ifpackageloaded{#1}{% + \edef\LWR@tempone{\csuse{opt@#1.sty}}% + \IfValueTF{#2}% + {% + \expandafter\LWR@origRequirePackage% + \expandafter[\LWR@tempone]{#1}[#2]% + }% + {% + \expandafter\LWR@origRequirePackage% + \expandafter[\LWR@tempone]{#1}% + }% + }{% + \IfValueTF{#2}% + {\LWR@origRequirePackage{#1}[#2]}% + {\LWR@origRequirePackage{#1}}% + }% + \DeclareOption*{}% + \ProcessOptions\relax% } \newcommand*{\LWR@ProvidesPackageDropA}[2]{% @@ -1946,8 +1992,8 @@ \begin{LWRwriteconf} \begin{filecontents*}[overwrite]{lwarp.css} /* - CSS stylesheet for the LaTeX lwarp package - Copyright 2016-2019 Brian Dunn — BD Tech Concepts LLC + CSS stylesheet for the LaTeX Lwarp package + Copyright 2016-2020 Brian Dunn — BD Tech Concepts LLC */ /* a fix for older browsers: */ @@ -2895,7 +2941,7 @@ table { line-height: 1.3 ; } -tr.hline td {border-top: 1px solid #808080 ; margin-top: 0ex ; +table > tbody > tr.hline > td {border-top: 1px solid #808080 ; margin-top: 0ex ; margin-bottom: 0ex ; } /* for \hline */ tr.tbrule td {border-top: 1px solid black ; margin-top: 0ex ; @@ -4102,9 +4148,9 @@ src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.6/MathJax.js?config=TeX- \begin{filecontents*}[overwrite]{lwarpmk.lua} #!/usr/bin/env texlua --- Copyright 2016-2019 Brian Dunn +-- Copyright 2016-2020 Brian Dunn -printversion = "v0.78" +printversion = "v0.79" requiredconfversion = "2" -- also at *lwarpmk.conf function printhelp () @@ -4801,7 +4847,7 @@ else -- not --version -- print intro: -print ("lwarpmk: " .. printversion .. " Automated make for the LaTeX lwarp package.") +print ("lwarpmk: " .. printversion .. " Automated make for the LaTeX Lwarp package.") -- lwarpmk print: @@ -5115,13 +5161,13 @@ end -- not --version \begin{warpHTML} \NewDocumentCommand{\LWR@setexparray}{m m m}{% - \begingroup% + \let\LWR@temp@par\par% \let\par\relax% - \xdef\LWR@thisexparrayname{#1#2}% + \edef\LWR@thisexparrayname{#1#2}% \ifstrempty{#3}% - {\csgdef{\LWR@thisexparrayname}{}}% - {\csxdef{\LWR@thisexparrayname}{#3}}% - \endgroup% + {\csdef{\LWR@thisexparrayname}{}}% + {\csedef{\LWR@thisexparrayname}{#3}}% + \let\par\LWR@temp@par% } \newcommand*{\LWR@getexparray}[2]{% \@nameuse{#1#2}% @@ -5131,24 +5177,24 @@ end -- not --version \begin{warpall} \newcommand{\StartDefiningTabulars}{% -\LWR@traceinfo{StartDefiningTabulars}% -\warpHTMLonly{\catcode`\&=\active}% + \LWR@traceinfo{StartDefiningTabulars}% + \warpHTMLonly{\catcode`\&=\active}% } \newcommand{\StopDefiningTabulars}{% -\LWR@traceinfo{StopDefiningTabulars}% -\warpHTMLonly{\catcode`\&=4}% + \LWR@traceinfo{StopDefiningTabulars}% + \warpHTMLonly{\catcode`\&=4}% } \newbool{LWR@mathmacro} \boolfalse{LWR@mathmacro} \newcommand{\StartDefiningMath}{% -\LWR@traceinfo{StartDefiningMath}% -\warpHTMLonly{\catcode`\$=\active}% + \LWR@traceinfo{StartDefiningMath}% + \warpHTMLonly{\catcode`\$=\active}% } \newcommand{\StopDefiningMath}{% -\LWR@traceinfo{StopDefiningMath}% -\warpHTMLonly{\catcode`\$=3}% math shift + \LWR@traceinfo{StopDefiningMath}% + \warpHTMLonly{\catcode`\$=3}% math shift } \end{warpall} @@ -6065,7 +6111,7 @@ end -- not --version \expandafter\ifvoid\csname LWR@#1box\endcsname\else \LWR@forcenewpage \begin{BlockClass}{footnotes} - \LWR@origmedskip + \null \unvbox\csuse{LWR@#1box} \setbox\csuse{LWR@#1box}=\vbox{} \end{BlockClass} @@ -6094,7 +6140,7 @@ end -- not --version \ifvoid\LWR@mpfootnotes\else \LWR@forcenewpage \begin{BlockClass}{footnotes} - \LWR@print@vspace*{\baselineskip} + \null \unvbox\LWR@mpfootnotes \setbox\LWR@mpfootnotes=\vbox{} \end{BlockClass} @@ -6290,28 +6336,90 @@ end -- not --version } +\newcommand{\LWR@subHTMLsanitize}{% + \protect\StrSubstitute{\detokenize\expandafter{\LWR@strresult}}% + {\detokenize{&}}{\detokenize{&}}[\LWR@strresult]% + \protect\StrSubstitute{\detokenize\expandafter{\LWR@strresult}}% + {\detokenize{<}}{\detokenize{<}}[\LWR@strresult]% + \protect\StrSubstitute{\detokenize\expandafter{\LWR@strresult}}% + {\detokenize{>}}{\detokenize{>}}[\LWR@strresult]% + \protect\StrSubstitute{\detokenize\expandafter{\LWR@strresult}}% + {\detokenize{"}}{\detokenize{"}}[\LWR@strresult]% + \protect\StrSubstitute{\detokenize\expandafter{\LWR@strresult}}% + {\detokenize{##}}{\LWR@origpound}[\LWR@strresult]% +} + +\newrobustcmd{\LWR@HTMLsanitize}[1]{% + \begingroup% + \LWR@FBcancel% + \fullexpandarg% + \protect\StrSubstitute{\detokenize{#1}}% + {\detokenize{\&}}{\detokenize{&}}[\LWR@strresult]% + \LWR@subHTMLsanitize% + \LWR@strresult% + \endgroup% +} + +\newrobustcmd{\LWR@HTMLsanitizeexpand}[1]{% + \begingroup% + \LWR@FBcancel% + \fullexpandarg% + \protect\StrSubstitute{\detokenize\expandafter{#1}}% + {\detokenize{\&}}{\detokenize{&}}[\LWR@strresult]% + \LWR@subHTMLsanitize% + \LWR@strresult% + \endgroup% +} + + \newcommand*{\LWR@customizedMathJax}{} -\newcommand*{\CustomizeMathJax}[1]{% - \appto{\LWR@customizedMathJax}{% - \(#1\)\par +\newcommand*{\LWR@subcustomizedmathjax}[1]{% + \begingroup% + \LWR@FBcancel% + \fullexpandarg% + \protect\StrSubstitute{\detokenize{#1}}% + {\detokenize{\&}}{\detokenize{&}}[\LWR@strresult]% + \LWR@subHTMLsanitize% + \xdef\LWR@customizedMathJax{% + \LWR@customizedMathJax% + \LWR@strresult% }% + \endgroup% } +\newcommand*{\CustomizeMathJax}[1]{% + \appto\LWR@customizedMathJax{\LWRbackslash(}% + \LWR@subcustomizedmathjax{#1}% + \appto\LWR@customizedMathJax{\LWRbackslash)\par}% +} +\begin{warpMathJax} +\CustomizeMathJax{\newcommand\ensuremath[1]{#1}} +\CustomizeMathJax{\newcommand\footnote[2][]{\text{( Footnote #1 )}}} +\CustomizeMathJax{\newcommand\footnotemark[1][]{\text{( Footnote #1 )}}} +\CustomizeMathJax{% absorb two optional arguments + \newcommand{\LWRframebox}[2][]{\fbox{#2}} + \newcommand{\framebox}[1][]{\LWRframebox} +} +\CustomizeMathJax{\newcommand{\setlength}[2]{}} +\CustomizeMathJax{\newcommand{\addtolength}[2]{}} +\CustomizeMathJax{\newcommand{\setcounter}[2]{}} +\CustomizeMathJax{\newcommand{\addtocounter}[2]{}} +\CustomizeMathJax{\newcommand{\cline}[1]{}} +\CustomizeMathJax{\newcommand{\directlua}[1]{\text{(directlua)}}} +\CustomizeMathJax{\newcommand{\luatexdirectlua}[1]{\text{(directlua)}}} +\end{warpMathJax} + \newcommand{\LWR@customizeMathJax}{% \ifbool{mathjax}{ \LWR@stoppars -\LWR@htmlcomment{Nullify \textbackslash{}ensuremath, footnotes for MathJax:} - -\(\newcommand\ensuremath[1]{##1}\) - -\(\newcommand\footnote[2][]{\text{( Footnote ##1 )}}\) - -\(\newcommand\footnotemark[1][]{\text{( Footnote ##1 )}}\) - -\LWR@htmlcomment{Additional customizations for MathJax:} +\LWR@htmlcomment{MathJax customizations:} +\begin{BlockClass}{hidden} +\LWR@stoppars \LWR@customizedMathJax +\LWR@startpars +\end{BlockClass} \LWR@startpars }{} @@ -6814,7 +6922,7 @@ end -- not --version \LWR@htmltag{% meta % space name=\LWR@orig@textquotedbl{}generator\LWR@orig@textquotedbl\ % space - content=\LWR@orig@textquotedbl{}LaTeX lwarp package\LWR@orig@textquotedbl\ /% + content=\LWR@orig@textquotedbl{}LaTeX Lwarp package\LWR@orig@textquotedbl\ /% }\LWR@orignewline% \ifdefempty{\LWR@currentHTMLDescription}{}{% \LWR@htmltag{% @@ -7587,15 +7695,18 @@ end -- not --version \def\LWR@futurenonspacelet#1{\def\LWR@cs{#1}% \afterassignment\LWR@fnslone\let\nexttoken= } + \def\LWR@fnslone{\expandafter\futurelet\LWR@cs\LWR@fnsltwo} + \def\LWR@fnsltwo{% \expandafter\ifx\LWR@cs\@sptoken\let\next=\LWR@fnslthree% \else\let\next=\nexttoken\fi\next} + \def\LWR@fnslthree{\afterassignment\LWR@fnslone\let\next= } \newcommand*{\LWR@getmynexttoken}{% -\LWR@traceinfo{LWR@getmynexttoken}% -\LWR@futurenonspacelet\LWR@mynexttoken\LWR@tabledatacolumntag + \LWR@traceinfo{LWR@getmynexttoken}% + \LWR@futurenonspacelet\LWR@mynexttoken\LWR@tabledatacolumntag } @@ -7632,6 +7743,15 @@ end -- not --version \newbool{LWR@intabularmetadata} \boolfalse{LWR@intabularmetadata} +\newbool{LWR@exitingtabular} + +\newbool{LWR@tabularmutemods} + +\newbool{LWR@validtablecol} +\newbool{LWR@opttablecol} + +\newbool{LWR@tdhavecellstyle} + \newcounter{LWR@tabulardepth} \setcounter{LWR@tabulardepth}{0} \newcounter{LWR@tabularpardepth} @@ -7658,307 +7778,342 @@ end -- not --version \newcounter{LWR@tabletotalLaTeXcolsnext} +\newcounter{LWR@cellcolordepth} + + +\newcounter{LWR@tablemulticolswidth} +\newcounter{LWR@tablemulticolspos} + +\newcounter{LWR@mcolvertbarsl} +\newcounter{LWR@mcolvertbarsr} +\newcounter{LWR@mcolvertbarsldash} +\newcounter{LWR@mcolvertbarsrdash} +\newbool{LWR@mcolvertbaronleft} + +\newbool{LWR@starredlongtable} +\boolfalse{LWR@starredlongtable} + + +\newcounter{LWR@midrulecounter} + \newcommand*{\LWR@insertatbangcols}{% -\ifbool{LWR@skipatbang}% -{}% -{% - \LWR@printatbang{at}{\arabic{LWR@tableLaTeXcolindex}}% - \LWR@printatbang{bang}{\arabic{LWR@tableLaTeXcolindex}}% -}% + \ifbool{LWR@skipatbang}% + {}% + {% + \LWR@printatbang{at}{\arabic{LWR@tableLaTeXcolindex}}% + \LWR@printatbang{bang}{\arabic{LWR@tableLaTeXcolindex}}% + }% } \newcommand*{\LWR@closetabledatacell}{% -\global\booltrue{LWR@intabularmetadata}% -\ifbool{LWR@exitingtabular}% -{% - \LWR@stoppars% -}% -{% not exiting tabular - \ifboolexpr{bool{LWR@skippingmrowcell} or bool{LWR@skippingmcolrowcell}}% + \booltrue{LWR@intabularmetadata}% + \ifbool{LWR@exitingtabular}% {% \LWR@stoppars% - \ifbool{LWR@skippingmcolrowcell}% - {}% - {\LWR@insertatbangcols}% }% - {% not skippingmrowcell - \unskip% - \ifboolexpr{% - bool{LWR@tabularmutemods} or - bool{LWR@skipatbang} or - bool{LWR@emptyatbang} - }% - {}% - {\LWR@getexparray{LWR@colafterspec}{\arabic{LWR@tableLaTeXcolindex}}}% - \LWR@stoppars% - \global\boolfalse{LWR@tableparcell}% - \whileboolexpr{test {\ifnumcomp{\value{LWR@cellcolordepth}}{>}{0}}}{% - \LWR@htmltag{/div}\LWR@orignewline% - \addtocounter{LWR@cellcolordepth}{-1}% + {% not exiting tabular + \ifboolexpr{bool{LWR@skippingmrowcell} or bool{LWR@skippingmcolrowcell}}% + {% + \LWR@stoppars% + \ifbool{LWR@skippingmcolrowcell}% + {}% + {\LWR@insertatbangcols}% }% - \leavevmode\unskip\LWR@htmltag{/td}\LWR@orignewline% - \global\booltrue{LWR@tabularcelladded}% - \LWR@insertatbangcols% - }% not skipping mrowcell -}% not exiting tabular -\global\boolfalse{LWR@skippingmrowcell}% -\global\boolfalse{LWR@skippingmcolrowcell}% -\global\boolfalse{LWR@skipatbang}% -\gdef\LWR@cellHTMLcolor{} -\gdef\LWR@columnHTMLcolor{} -\setcounter{LWR@cellcolordepth}{0} + {% not skippingmrowcell + \unskip% + \ifboolexpr{% + bool{LWR@tabularmutemods} or + bool{LWR@skipatbang} or + bool{LWR@emptyatbang} + }% + {}% + {% + \LWR@getexparray{LWR@colafterspec}% + {\arabic{LWR@tableLaTeXcolindex}}% + }% + \LWR@stoppars% + \boolfalse{LWR@tableparcell}% + \whileboolexpr{test {\ifnumcomp{\value{LWR@cellcolordepth}}{>}{0}}}{% + \LWR@htmltag{/div}\LWR@orignewline% + \defaddtocounter{LWR@cellcolordepth}{-1}% + }% + \leavevmode\unskip\LWR@htmltag{/td}\LWR@orignewline% + \global\booltrue{LWR@tabularcelladded}% + \LWR@insertatbangcols% + }% not skipping mrowcell + }% not exiting tabular + \boolfalse{LWR@skippingmrowcell}% + \boolfalse{LWR@skippingmcolrowcell}% + \boolfalse{LWR@skipatbang}% + \def\LWR@cellHTMLcolor{}% + \def\LWR@columnHTMLcolor{}% + \defcounter{LWR@cellcolordepth}{0}% } \let\LWR@origampmacro& \end{warpHTML} \begin{warpHTML} \newcommand*{\LWR@tabularampersand}{% -\LWR@traceinfo{LWR@tabularampersand}% -\ifnumcomp{\value{LWR@tabulardepth}}{>}{0}% -{% - \unskip% - \LWR@closetabledatacell% - \addtocounter{LWR@tableLaTeXcolindex}{1}% - \global\boolfalse{LWR@tabularcelladded}% - \LWR@getmynexttoken% -}% -{\LWR@origampmacro}% + \LWR@traceinfo{LWR@tabularampersand}% + \ifnumcomp{\value{LWR@tabulardepth}}{>}{0}% + {% + \unskip% + \LWR@closetabledatacell% + \defaddtocounter{LWR@tableLaTeXcolindex}{1}% + \global\boolfalse{LWR@tabularcelladded}% + \LWR@getmynexttoken% + }% + {% + \LWR@origampmacro% + }% } \newcommand*{\LWR@tabularfinishrow}{% -\ifboolexpr{% - not bool {LWR@exitingtabular} or% - bool{LWR@doingtbrule} or% - bool{LWR@doingcmidrule} or% - test{\ifnumcomp{\value{LWR@hlines}}{>}{0}} or% - test{\ifnumcomp{\value{LWR@hdashedlines}}{>}{0}} or% - bool{LWR@startedrow}% -}{% -\ifbool{LWR@exitingtabular}{% - \global\booltrue{LWR@tabularmutemods}% -}{% - \global\boolfalse{LWR@tabularmutemods}% -}% -\global\boolfalse{LWR@exitingtabular}% -\whileboolexpr{% - test { - \ifnumcomp{\value{LWR@tableLaTeXcolindex}}{<}{\value{LWR@tabletotalLaTeXcols}} - } or % - (% - bool{LWR@intabularmetadata} and% - not bool{LWR@tabularcelladded} and% + \ifboolexpr{% + not bool {LWR@exitingtabular} or% + bool{LWR@doingtbrule} or% + bool{LWR@doingcmidrule} or% + test{\ifnumcomp{\value{LWR@hlines}}{>}{0}} or% + test{\ifnumcomp{\value{LWR@hdashedlines}}{>}{0}} or% + bool{LWR@startedrow}% + }{% + \ifbool{LWR@exitingtabular}{% + \booltrue{LWR@tabularmutemods}% + }{% + \boolfalse{LWR@tabularmutemods}% + }% + \boolfalse{LWR@exitingtabular}% + \whileboolexpr{% test { - \ifnumcomp{\value{LWR@tableLaTeXcolindex}}{=}{\value{LWR@tabletotalLaTeXcols}} - }% - )% -}% -{% - \LWR@tabledatasinglecolumntag% - \LWR@closetabledatacell% - \addtocounter{LWR@tableLaTeXcolindex}{1}% - \global\boolfalse{LWR@tabularcelladded}% - \global\booltrue{LWR@emptyatbang}% - \ifnumcomp{\value{LWR@tableLaTeXcolindex}}{<}{\value{LWR@tabletotalLaTeXcols}}% - {\LWR@getmynexttoken}% - {}% -}% -\ifbool{LWR@tabularmutemods}{% - \global\booltrue{LWR@exitingtabular}% -}{% - \global\boolfalse{LWR@exitingtabular}% -}% -\global\boolfalse{LWR@tabularmutemods}% -\global\boolfalse{LWR@emptyatbang}% -}{}% ifboolexpr + \ifnumcomp{\value{LWR@tableLaTeXcolindex}}{<} + {\value{LWR@tabletotalLaTeXcols}} + } or % + (% + bool{LWR@intabularmetadata} and% + not bool{LWR@tabularcelladded} and% + test { + \ifnumcomp{\value{LWR@tableLaTeXcolindex}}{=} + {\value{LWR@tabletotalLaTeXcols}} + }% + )% + }% + {% + \LWR@tabledatasinglecolumntag% + \LWR@closetabledatacell% + \defaddtocounter{LWR@tableLaTeXcolindex}{1}% + \global\boolfalse{LWR@tabularcelladded}% + \booltrue{LWR@emptyatbang}% + \ifnumcomp{\value{LWR@tableLaTeXcolindex}}{<} + {\value{LWR@tabletotalLaTeXcols}}% + {\LWR@getmynexttoken}% + {}% + }% + \ifbool{LWR@tabularmutemods}{% + \booltrue{LWR@exitingtabular}% + }{% + \boolfalse{LWR@exitingtabular}% + }% + \boolfalse{LWR@tabularmutemods}% + \boolfalse{LWR@emptyatbang}% + }{}% ifboolexpr } \NewDocumentCommand{\LWR@tabularendofline}{s o}{% -\ifnumcomp{\value{LWR@tableLaTeXcolindex}}{<}{\value{LWR@tabletotalLaTeXcols}}% - {\LWR@tabularfinishrow}% - {\LWR@closetabledatacell}% -\LWR@htmltag{/tr}\LWR@orignewline% -\@rowc@lors% -\global\booltrue{LWR@intabularmetadata}% -\global\boolfalse{LWR@startedrow}% -\setcounter{LWR@hlines}{0}% -\setcounter{LWR@hdashedlines}{0}% -\global\boolfalse{LWR@doingtbrule}% -\global\boolfalse{LWR@doingcmidrule}% -\LWR@clearmidrules% -\gdef\LWR@rowHTMLcolor{}% -\setcounter{LWR@tableLaTeXcolindex}{1}% -\global\boolfalse{LWR@tabularcelladded}% -\LWR@stoppars -\LWR@origpar -\LWR@getmynexttoken% + \ifnumcomp{\value{LWR@tableLaTeXcolindex}}{<} + {\value{LWR@tabletotalLaTeXcols}}% + {\LWR@tabularfinishrow}% + {\LWR@closetabledatacell}% + \LWR@htmltag{/tr}\LWR@orignewline% + \@rowc@lors% + \booltrue{LWR@intabularmetadata}% + \boolfalse{LWR@startedrow}% + \defcounter{LWR@hlines}{0}% + \defcounter{LWR@hdashedlines}{0}% + \boolfalse{LWR@doingtbrule}% + \boolfalse{LWR@doingcmidrule}% + \LWR@clearmidrules% + \def\LWR@rowHTMLcolor{}% + \defcounter{LWR@tableLaTeXcolindex}{1}% + \global\boolfalse{LWR@tabularcelladded}% + \LWR@stoppars% + \LWR@origpar% + \LWR@getmynexttoken% } \newcommand*{\LWR@columnspeclookahead}[1]{% -\setcounter{LWR@tempcountone}{\value{LWR@tablecolspecindex}}% -\addtocounter{LWR@tempcountone}{#1}% -\fullexpandarg% -\StrChar{\LWR@origcolspec}{\arabic{LWR@tempcountone}}[\LWR@strresulttwo]% -\exploregroups% -\StrChar{\LWR@strresulttwo}{1}[\LWR@strresulttwo]% -\noexploregroups% + \setcounter{LWR@tempcountone}{\value{LWR@tablecolspecindex}}% + \addtocounter{LWR@tempcountone}{#1}% + \fullexpandarg% + \StrChar{\LWR@origcolspec}{\arabic{LWR@tempcountone}}[\LWR@strresulttwo]% + \exploregroups% + \StrChar{\LWR@strresulttwo}{1}[\LWR@strresulttwo]% + \noexploregroups% } \newcommand*{\LWR@colparameter}{} \newcommand*{\LWR@parseatcolumn}{% -\LWR@traceinfo{at column}% -\addtocounter{LWR@tablecolspecindex}{1}% -\LWR@traceinfo{about to read the next token:}% -\expandarg% -\StrChar{\LWR@origcolspec}% - {\arabic{LWR@tablecolspecindex}}[\LWR@colparameter] -\fullexpandarg% -\LWR@traceinfo{have now read the next token}% -\ifnumcomp{\value{LWR@tabletotalLaTeXcols}}{=}{0}% -{% left edge of the table: - \LWR@traceinfo{at the left edge}% - \LWR@setexparray{LWR@colatspec}{leftedge}{\LWR@colparameter}% - \LWR@traceinfo{at the left edge: % - \LWR@getexparray{LWR@colatspec}{leftedge}}% -}% -{% not at the left edge: - \LWR@traceinfo{not at the left edge}% - \LWR@setexparray{LWR@colatspec}% - {\arabic{LWR@tabletotalLaTeXcols}}{\LWR@colparameter}% - \LWR@traceinfo{at \arabic{LWR@tabletotalLaTeXcols}: % - \LWR@getexparray{LWR@colatspec}{\arabic{LWR@tabletotalLaTeXcols}}}% -}% -\let\LWR@colparameter\relax% -\global\booltrue{LWR@validtablecol}% + \LWR@traceinfo{at column}% + \defaddtocounter{LWR@tablecolspecindex}{1}% + \LWR@traceinfo{about to read the next token:}% + \expandarg% + \StrChar{\LWR@origcolspec}% + {\arabic{LWR@tablecolspecindex}}[\LWR@colparameter]% + \fullexpandarg% + \LWR@traceinfo{have now read the next token}% + \ifnumcomp{\value{LWR@tabletotalLaTeXcols}}{=}{0}% + {% left edge of the table: + \LWR@traceinfo{at the left edge}% + \LWR@setexparray{LWR@colatspec}% + {leftedge}% + {\expandafter\@firstofone\LWR@colparameter}% + \LWR@traceinfo{at the left edge: % + \LWR@getexparray{LWR@colatspec}{leftedge}}% + }% + {% not at the left edge: + \LWR@traceinfo{not at the left edge}% + \LWR@setexparray{LWR@colatspec}% + {\arabic{LWR@tabletotalLaTeXcols}}% + {\expandafter\@firstofone\LWR@colparameter}% + \LWR@traceinfo{at \arabic{LWR@tabletotalLaTeXcols}: % + \LWR@getexparray{LWR@colatspec}{\arabic{LWR@tabletotalLaTeXcols}}}% + }% + \let\LWR@colparameter\relax% + \booltrue{LWR@validtablecol}% } \newcommand*{\LWR@parsebangcolumn}{% -\LWR@traceinfo{bang column}% -\addtocounter{LWR@tablecolspecindex}{1}% -\LWR@traceinfo{about to read the next token:}% -\expandarg% -\StrChar{\LWR@origcolspec}% - {\arabic{LWR@tablecolspecindex}}[\LWR@colparameter] -\fullexpandarg% -\LWR@traceinfo{have now read the next token}% -\ifnumcomp{\value{LWR@tabletotalLaTeXcols}}{=}{0}% -{% left edge of the table: - \LWR@traceinfo{at the left edge}% - \LWR@setexparray{LWR@colbangspec}{leftedge}{\LWR@colparameter}% -}% -{% not at the left edge: - \LWR@traceinfo{not at the left edge}% - \LWR@setexparray{LWR@colbangspec}% - {\arabic{LWR@tabletotalLaTeXcols}}{\LWR@colparameter}% - \LWR@traceinfo{bang \arabic{LWR@tabletotalLaTeXcols}: \LWR@colparameter!}% -}% -\let\LWR@colparameter\relax% -\global\booltrue{LWR@validtablecol}% + \LWR@traceinfo{bang column}% + \defaddtocounter{LWR@tablecolspecindex}{1}% + \LWR@traceinfo{about to read the next token:}% + \expandarg% + \StrChar{\LWR@origcolspec}% + {\arabic{LWR@tablecolspecindex}}[\LWR@colparameter]% + \fullexpandarg% + \LWR@traceinfo{have now read the next token}% + \ifnumcomp{\value{LWR@tabletotalLaTeXcols}}{=}{0}% + {% left edge of the table: + \LWR@traceinfo{at the left edge}% + \LWR@setexparray{LWR@colbangspec}% + {leftedge}% + {\expandafter\@firstofone\LWR@colparameter}% + }% + {% not at the left edge: + \LWR@traceinfo{not at the left edge}% + \LWR@setexparray{LWR@colbangspec}% + {\arabic{LWR@tabletotalLaTeXcols}}% + {\expandafter\@firstofone\LWR@colparameter}% + \LWR@traceinfo{bang \arabic{LWR@tabletotalLaTeXcols}: \LWR@colparameter!}% + }% + \let\LWR@colparameter\relax% + \booltrue{LWR@validtablecol}% } \newcommand*{\LWR@parsebeforecolumn}{% -\addtocounter{LWR@tablecolspecindex}{1}% -\expandarg% -\StrChar{\LWR@origcolspec}% - {\arabic{LWR@tablecolspecindex}}[\LWR@colparameter]% -\fullexpandarg% -\LWR@setexparray{LWR@colbeforespec}% - {\arabic{LWR@tabletotalLaTeXcolsnext}}{\LWR@colparameter}% -\let\LWR@colparameter\relax% -\global\booltrue{LWR@validtablecol}% + \defaddtocounter{LWR@tablecolspecindex}{1}% + \expandarg% + \StrChar{\LWR@origcolspec}% + {\arabic{LWR@tablecolspecindex}}[\LWR@colparameter]% + \fullexpandarg% + \LWR@setexparray{LWR@colbeforespec}% + {\arabic{LWR@tabletotalLaTeXcolsnext}}% + {\expandafter\@firstofone\LWR@colparameter}% + \let\LWR@colparameter\relax% + \booltrue{LWR@validtablecol}% } \newcommand*{\LWR@parseaftercolumn}{% -\addtocounter{LWR@tablecolspecindex}{1}% -\expandarg% -\StrChar{\LWR@origcolspec}% - {\arabic{LWR@tablecolspecindex}}[\LWR@colparameter]% -\fullexpandarg% -\LWR@setexparray{LWR@colafterspec}% - {\arabic{LWR@tabletotalLaTeXcols}}{\LWR@colparameter}% -\let\LWR@colparameter\relax% -\global\booltrue{LWR@validtablecol}% + \defaddtocounter{LWR@tablecolspecindex}{1}% + \expandarg% + \StrChar{\LWR@origcolspec}% + {\arabic{LWR@tablecolspecindex}}[\LWR@colparameter]% + \fullexpandarg% + \LWR@setexparray{LWR@colafterspec}% + {\arabic{LWR@tabletotalLaTeXcols}}% + {\expandafter\@firstofone\LWR@colparameter}% + \let\LWR@colparameter\relax% + \booltrue{LWR@validtablecol}% } \newcommand*{\LWR@parsebarcolumn}{% -\LWR@traceinfo{LWR@parsebarcolumn}% -\ifnumcomp{\value{LWR@tabletotalLaTeXcols}}{=}{0}% -{% left edge of the table: - \edef\LWR@tempone{\LWR@getexparray{LWR@colbarspec}{leftedge}}% - \ifdefstring{\LWR@tempone}{tvertbarl}% - {\LWR@setexparray{LWR@colbarspec}{leftedge}{tvertbarldouble}}% - {\LWR@setexparray{LWR@colbarspec}{leftedge}{tvertbarl}}% -}% -{% not at the left edge: - \edef\LWR@tempone{% - \LWR@getexparray{LWR@colbarspec}{\arabic{LWR@tabletotalLaTeXcols}}% - }% - \ifdefstring{\LWR@tempone}{tvertbarr}% - {% - \LWR@setexparray{LWR@colbarspec}% - {\arabic{LWR@tabletotalLaTeXcols}}{tvertbarrdouble}% + \LWR@traceinfo{LWR@parsebarcolumn}% + \ifnumcomp{\value{LWR@tabletotalLaTeXcols}}{=}{0}% + {% left edge of the table: + \edef\LWR@tempone{\LWR@getexparray{LWR@colbarspec}{leftedge}}% + \ifdefstring{\LWR@tempone}{tvertbarl}% + {\LWR@setexparray{LWR@colbarspec}{leftedge}{tvertbarldouble}}% + {\LWR@setexparray{LWR@colbarspec}{leftedge}{tvertbarl}}% }% - {% - \LWR@setexparray{LWR@colbarspec}% - {\arabic{LWR@tabletotalLaTeXcols}}{tvertbarr}% + {% not at the left edge: + \edef\LWR@tempone{% + \LWR@getexparray{LWR@colbarspec}{\arabic{LWR@tabletotalLaTeXcols}}% + }% + \ifdefstring{\LWR@tempone}{tvertbarr}% + {% + \LWR@setexparray{LWR@colbarspec}% + {\arabic{LWR@tabletotalLaTeXcols}}{tvertbarrdouble}% + }% + {% + \LWR@setexparray{LWR@colbarspec}% + {\arabic{LWR@tabletotalLaTeXcols}}{tvertbarr}% + }% }% -}% -\global\booltrue{LWR@validtablecol}% + \booltrue{LWR@validtablecol}% } \newcommand*{\LWR@parsecoloncolumn}{% -\LWR@traceinfo{LWR@parsecoloncolumn}% -\ifnumcomp{\value{LWR@tabletotalLaTeXcols}}{=}{0}% -{% left edge of the table: - \edef\LWR@tempone{\LWR@getexparray{LWR@colbarspec}{leftedge}}% - \ifdefstring{\LWR@tempone}{tvertbarldash}% - {\LWR@setexparray{LWR@colbarspec}{leftedge}{tvertbarldoubledash}}% - {\LWR@setexparray{LWR@colbarspec}{leftedge}{tvertbarldash}}% -}% -{% not at the left edge: - \edef\LWR@tempone{% - \LWR@getexparray{LWR@colbarspec}{\arabic{LWR@tabletotalLaTeXcols}}% + \LWR@traceinfo{LWR@parsecoloncolumn}% + \ifnumcomp{\value{LWR@tabletotalLaTeXcols}}{=}{0}% + {% left edge of the table: + \edef\LWR@tempone{\LWR@getexparray{LWR@colbarspec}{leftedge}}% + \ifdefstring{\LWR@tempone}{tvertbarldash}% + {\LWR@setexparray{LWR@colbarspec}{leftedge}{tvertbarldoubledash}}% + {\LWR@setexparray{LWR@colbarspec}{leftedge}{tvertbarldash}}% }% - \ifdefstring{\LWR@tempone}{tvertbarrdash}% - {\LWR@setexparray{LWR@colbarspec}% - {\arabic{LWR@tabletotalLaTeXcols}}{tvertbarrdoubledash}}% - {\LWR@setexparray{LWR@colbarspec}% - {\arabic{LWR@tabletotalLaTeXcols}}{tvertbarrdash}}% -}% -\global\booltrue{LWR@validtablecol}% + {% not at the left edge: + \edef\LWR@tempone{% + \LWR@getexparray{LWR@colbarspec}{\arabic{LWR@tabletotalLaTeXcols}}% + }% + \ifdefstring{\LWR@tempone}{tvertbarrdash}% + {\LWR@setexparray{LWR@colbarspec}% + {\arabic{LWR@tabletotalLaTeXcols}}{tvertbarrdoubledash}}% + {\LWR@setexparray{LWR@colbarspec}% + {\arabic{LWR@tabletotalLaTeXcols}}{tvertbarrdash}}% + }% + \booltrue{LWR@validtablecol}% } \newcommand*{\LWR@parsesemicoloncolumn}{% -\LWR@parsecoloncolumn% -\addtocounter{LWR@tablecolspecindex}{1}% + \LWR@parsecoloncolumn% + \defaddtocounter{LWR@tablecolspecindex}{1}% } \newcommand*{\LWR@parsenormalcolumn}[1]{% -\addtocounter{LWR@tabletotalLaTeXcols}{1}% -\addtocounter{LWR@tabletotalLaTeXcolsnext}{1}% -\LWR@setexparray{LWR@tablecolspec}{\arabic{LWR@tabletotalLaTeXcols}}{#1}% -\LWR@traceinfo{normal column \arabic{LWR@tabletotalLaTeXcols}: #1}% -\LWR@setexparray{LWR@colatspec}{\arabic{LWR@tabletotalLaTeXcolsnext}}{}% -\LWR@setexparray{LWR@colbangspec}{\arabic{LWR@tabletotalLaTeXcolsnext}}{}% -\LWR@setexparray{LWR@colbeforespec}{\arabic{LWR@tabletotalLaTeXcolsnext}}{}% -\LWR@setexparray{LWR@colafterspec}{\arabic{LWR@tabletotalLaTeXcolsnext}}{}% -\LWR@setexparray{LWR@colbarspec}{\arabic{LWR@tabletotalLaTeXcolsnext}}{}% -\global\booltrue{LWR@validtablecol}% + \defaddtocounter{LWR@tabletotalLaTeXcols}{1}% + \defaddtocounter{LWR@tabletotalLaTeXcolsnext}{1}% + \LWR@setexparray{LWR@tablecolspec}{\arabic{LWR@tabletotalLaTeXcols}}{#1}% + \LWR@traceinfo{normal column \arabic{LWR@tabletotalLaTeXcols}: #1}% + \LWR@setexparray{LWR@colatspec}{\arabic{LWR@tabletotalLaTeXcolsnext}}{}% + \LWR@setexparray{LWR@colbangspec}{\arabic{LWR@tabletotalLaTeXcolsnext}}{}% + \LWR@setexparray{LWR@colbeforespec}{\arabic{LWR@tabletotalLaTeXcolsnext}}{}% + \LWR@setexparray{LWR@colafterspec}{\arabic{LWR@tabletotalLaTeXcolsnext}}{}% + \LWR@setexparray{LWR@colbarspec}{\arabic{LWR@tabletotalLaTeXcolsnext}}{}% + \booltrue{LWR@validtablecol}% } \newcommand*{\LWR@parsepcolumn}[1]{% -\LWR@parsenormalcolumn{#1}% -\addtocounter{LWR@tablecolspecindex}{1}% + \LWR@parsenormalcolumn{#1}% + \defaddtocounter{LWR@tablecolspecindex}{1}% } \newcommand*{\LWR@parsewcolumn}{% -\LWR@columnspeclookahead{1}% -\expandafter\LWR@parsenormalcolumn\expandafter{\LWR@strresulttwo}% -\addtocounter{LWR@tablecolspecindex}{2}% + \LWR@columnspeclookahead{1}% + \expandafter\LWR@parsenormalcolumn\expandafter{\LWR@strresulttwo}% + \defaddtocounter{LWR@tablecolspecindex}{2}% } \newcommand*{\LWR@parsestarcolumn}{% - \addtocounter{LWR@tablecolspecindex}{2}% + \defaddtocounter{LWR@tablecolspecindex}{2}% } \newcommand*{\LWR@parseDcolumn}[1]{% -\LWR@parsenormalcolumn{#1}% -\addtocounter{LWR@tablecolspecindex}{3}% + \LWR@parsenormalcolumn{#1}% + \defaddtocounter{LWR@tablecolspecindex}{3}% } @@ -7997,92 +8152,90 @@ end -- not --version } -\newbool{LWR@validtablecol} -\newbool{LWR@opttablecol} \newcommand*{\LWR@parsetablecols}[1]{% -\LWR@traceinfo{LWR@parsetablecols}% -\renewcommand*{\LWR@origcolspec}{#1}% -\expandarg% -\StrSubstitute{\LWR@origcolspec}{ }{}[\LWR@origcolspec]% -\expandcolspec% -\setcounter{LWR@tabletotalLaTeXcols}{0}% -\setcounter{LWR@tabletotalLaTeXcolsnext}{1}% -\LWR@setexparray{LWR@colatspec}{leftedge}{}% -\LWR@setexparray{LWR@colatspec}{1}{}% -\LWR@setexparray{LWR@colatspec}{2}{}% -\LWR@setexparray{LWR@colatspec}{3}{}% -\LWR@setexparray{LWR@colbangspec}{leftedge}{}% -\LWR@setexparray{LWR@colbangspec}{1}{}% -\LWR@setexparray{LWR@colbangspec}{2}{}% -\LWR@setexparray{LWR@colbangspec}{3}{}% -\LWR@setexparray{LWR@colbeforespec}{1}{}% -\LWR@setexparray{LWR@colbeforespec}{2}{}% -\LWR@setexparray{LWR@colbeforespec}{3}{}% -\LWR@setexparray{LWR@colafterspec}{1}{}% -\LWR@setexparray{LWR@colafterspec}{2}{}% -\LWR@setexparray{LWR@colafterspec}{3}{}% -\LWR@setexparray{LWR@colbarspec}{leftedge}{}% -\LWR@setexparray{LWR@colbarspec}{1}{}% -\LWR@setexparray{LWR@colbarspec}{2}{}% -\LWR@setexparray{LWR@colbarspec}{3}{}% -\setcounter{LWR@tablecolspecindex}{1}% -\expandarg% -\StrLen{\LWR@origcolspec}[\LWR@strresult]% -\fullexpandarg% -\LWR@traceinfo{original column spec length: \LWR@strresult}% -\setcounter{LWR@tablecolspecwidth}{\LWR@strresult}% -\global\boolfalse{LWR@opttablecol}% -\whileboolexpr{% - not test{% - \ifnumcomp{\value{LWR@tablecolspecindex}}{>}% - {\value{LWR@tablecolspecwidth}}% + \LWR@traceinfo{LWR@parsetablecols}% + \renewcommand*{\LWR@origcolspec}{#1}% + \expandarg% + \StrSubstitute{\LWR@origcolspec}{ }{}[\LWR@origcolspec]% + \expandcolspec% + \defcounter{LWR@tabletotalLaTeXcols}{0}% + \defcounter{LWR@tabletotalLaTeXcolsnext}{1}% + \LWR@setexparray{LWR@colatspec}{leftedge}{}% + \LWR@setexparray{LWR@colatspec}{1}{}% + \LWR@setexparray{LWR@colatspec}{2}{}% + \LWR@setexparray{LWR@colatspec}{3}{}% + \LWR@setexparray{LWR@colbangspec}{leftedge}{}% + \LWR@setexparray{LWR@colbangspec}{1}{}% + \LWR@setexparray{LWR@colbangspec}{2}{}% + \LWR@setexparray{LWR@colbangspec}{3}{}% + \LWR@setexparray{LWR@colbeforespec}{1}{}% + \LWR@setexparray{LWR@colbeforespec}{2}{}% + \LWR@setexparray{LWR@colbeforespec}{3}{}% + \LWR@setexparray{LWR@colafterspec}{1}{}% + \LWR@setexparray{LWR@colafterspec}{2}{}% + \LWR@setexparray{LWR@colafterspec}{3}{}% + \LWR@setexparray{LWR@colbarspec}{leftedge}{}% + \LWR@setexparray{LWR@colbarspec}{1}{}% + \LWR@setexparray{LWR@colbarspec}{2}{}% + \LWR@setexparray{LWR@colbarspec}{3}{}% + \defcounter{LWR@tablecolspecindex}{1}% + \expandarg% + \StrLen{\LWR@origcolspec}[\LWR@strresult]% + \fullexpandarg% + \LWR@traceinfo{original column spec length: \LWR@strresult}% + \defcounter{LWR@tablecolspecwidth}{\LWR@strresult}% + \boolfalse{LWR@opttablecol}% + \whileboolexpr{% + not test{% + \ifnumcomp{\value{LWR@tablecolspecindex}}{>}% + {\value{LWR@tablecolspecwidth}}% + }% }% -}% -{% -\expandarg% -\StrChar{\LWR@origcolspec}{\arabic{LWR@tablecolspecindex}}[\LWR@strresult]% -\LWR@traceinfo{position \arabic{LWR@tablecolspecindex}: \LWR@strresult}% -\fullexpandarg% -\global\boolfalse{LWR@validtablecol}% -\IfStrEq{\LWR@strresult}{[}{\global\booltrue{LWR@opttablecol}}{}% -\ifbool{LWR@opttablecol}% -{}% inside an optional argument -{% not an optional tabular argument -\IfStrEq{\LWR@strresult}{l}{\LWR@parsenormalcolumn{l}}{}% -\IfStrEq{\LWR@strresult}{c}{\LWR@parsenormalcolumn{c}}{}% -\IfStrEq{\LWR@strresult}{r}{\LWR@parsenormalcolumn{r}}{}% -\IfStrEq{\LWR@strresult}{L}{\LWR@parsenormalcolumn{l}}{}% -\IfStrEq{\LWR@strresult}{C}{\LWR@parsenormalcolumn{c}}{}% -\IfStrEq{\LWR@strresult}{R}{\LWR@parsenormalcolumn{r}}{}% -\IfStrEq{\LWR@strresult}{J}{\LWR@parsenormalcolumn{l}}{}% -\IfStrEq{\LWR@strresult}{S}{\LWR@parsenormalcolumn{c}}{}% -\IfStrEq{\LWR@strresult}{s}{\LWR@parsenormalcolumn{c}}{}% -\IfStrEq{\LWR@strresult}{\detokenize{@}}{\LWR@parseatcolumn}{}% -\IfStrEq{\LWR@strresult}{!}{\LWR@parsebangcolumn}{}% -\IfStrEq{\LWR@strresult}{>}{\LWR@parsebeforecolumn}{}% -\IfStrEq{\LWR@strresult}{<}{\LWR@parseaftercolumn}{}% -\IfStrEq{\LWR@strresult}{|}{\LWR@parsebarcolumn}{}% -\IfStrEq{\LWR@strresult}{:}{\LWR@parsecoloncolumn}{}% -\IfStrEq{\LWR@strresult}{;}{\LWR@parsesemicoloncolumn}{}% -\IfStrEq{\LWR@strresult}{p}{\LWR@parsepcolumn{p}}{}% -\IfStrEq{\LWR@strresult}{m}{\LWR@parsepcolumn{m}}{}% -\IfStrEq{\LWR@strresult}{b}{\LWR@parsepcolumn{b}}{}% -\IfStrEq{\LWR@strresult}{w}{\LWR@parsewcolumn}{}% -\IfStrEq{\LWR@strresult}{W}{\LWR@parsewcolumn}{}% -\IfStrEq{\LWR@strresult}{*}{\LWR@parsestarcolumn}{}% -\IfStrEq{\LWR@strresult}{D}{\LWR@parseDcolumn{c}}{}% -\IfStrEq{\LWR@strresult}{X}{\LWR@parsenormalcolumn{X}}{}% -\IfStrEq{\LWR@strresult}{P}{\LWR@parsepcolumn{P}}{}% -\IfStrEq{\LWR@strresult}{M}{\LWR@parsepcolumn{M}}{}% -\IfStrEq{\LWR@strresult}{B}{\LWR@parsepcolumn{B}}{}% -\ifbool{LWR@validtablecol}{}{% - \LWR@traceinfo{invalid column type: \LWR@strresult}% - \LWR@parsenormalcolumn{l}% -}% -}% not an optional column argument -\IfStrEq{\LWR@strresult}{]}{\global\boolfalse{LWR@opttablecol}}{}% -\addtocounter{LWR@tablecolspecindex}{1}% -}% whiledo + {% + \expandarg% + \StrChar{\LWR@origcolspec}{\arabic{LWR@tablecolspecindex}}[\LWR@strresult]% + \LWR@traceinfo{position \arabic{LWR@tablecolspecindex}: \LWR@strresult}% + \fullexpandarg% + \boolfalse{LWR@validtablecol}% + \IfStrEq{\LWR@strresult}{[}{\booltrue{LWR@opttablecol}}{}% + \ifbool{LWR@opttablecol}% + {}% inside an optional argument + {% not an optional tabular argument + \IfStrEq{\LWR@strresult}{l}{\LWR@parsenormalcolumn{l}}{}% + \IfStrEq{\LWR@strresult}{c}{\LWR@parsenormalcolumn{c}}{}% + \IfStrEq{\LWR@strresult}{r}{\LWR@parsenormalcolumn{r}}{}% + \IfStrEq{\LWR@strresult}{L}{\LWR@parsenormalcolumn{l}}{}% + \IfStrEq{\LWR@strresult}{C}{\LWR@parsenormalcolumn{c}}{}% + \IfStrEq{\LWR@strresult}{R}{\LWR@parsenormalcolumn{r}}{}% + \IfStrEq{\LWR@strresult}{J}{\LWR@parsenormalcolumn{l}}{}% + \IfStrEq{\LWR@strresult}{S}{\LWR@parsenormalcolumn{c}}{}% + \IfStrEq{\LWR@strresult}{s}{\LWR@parsenormalcolumn{c}}{}% + \IfStrEq{\LWR@strresult}{\detokenize{@}}{\LWR@parseatcolumn}{}% + \IfStrEq{\LWR@strresult}{!}{\LWR@parsebangcolumn}{}% + \IfStrEq{\LWR@strresult}{>}{\LWR@parsebeforecolumn}{}% + \IfStrEq{\LWR@strresult}{<}{\LWR@parseaftercolumn}{}% + \IfStrEq{\LWR@strresult}{|}{\LWR@parsebarcolumn}{}% + \IfStrEq{\LWR@strresult}{:}{\LWR@parsecoloncolumn}{}% + \IfStrEq{\LWR@strresult}{;}{\LWR@parsesemicoloncolumn}{}% + \IfStrEq{\LWR@strresult}{p}{\LWR@parsepcolumn{p}}{}% + \IfStrEq{\LWR@strresult}{m}{\LWR@parsepcolumn{m}}{}% + \IfStrEq{\LWR@strresult}{b}{\LWR@parsepcolumn{b}}{}% + \IfStrEq{\LWR@strresult}{w}{\LWR@parsewcolumn}{}% + \IfStrEq{\LWR@strresult}{W}{\LWR@parsewcolumn}{}% + \IfStrEq{\LWR@strresult}{*}{\LWR@parsestarcolumn}{}% + \IfStrEq{\LWR@strresult}{D}{\LWR@parseDcolumn{c}}{}% + \IfStrEq{\LWR@strresult}{X}{\LWR@parsenormalcolumn{X}}{}% + \IfStrEq{\LWR@strresult}{P}{\LWR@parsepcolumn{P}}{}% + \IfStrEq{\LWR@strresult}{M}{\LWR@parsepcolumn{M}}{}% + \IfStrEq{\LWR@strresult}{B}{\LWR@parsepcolumn{B}}{}% + \ifbool{LWR@validtablecol}{}{% + \LWR@traceinfo{invalid column type: \LWR@strresult}% + \LWR@parsenormalcolumn{l}% + }% + }% not an optional column argument + \IfStrEq{\LWR@strresult}{]}{\boolfalse{LWR@opttablecol}}{}% + \defaddtocounter{LWR@tablecolspecindex}{1}% + }% whiledo }% \@ifundefined{rownum}{\newcount\rownum}{} @@ -8104,89 +8257,89 @@ end -- not --version \newcommand*{\LWR@maybenewtablerow} {% -\ifbool{LWR@startedrow}% -{}% started the row -{% not started the row - \global\booltrue{LWR@startedrow}% - \global\booltrue{LWR@intabularmetadata}% - \ifboolexpr{% - test{\ifnumcomp{\value{LWR@hlines}}{>}{0}} or% - test{\ifnumcomp{\value{LWR@hdashedlines}}{>}{0}}% - }% - {% - \LWR@htmltag{tr class="hline" }% - \LWR@orignewline% - }% - {% not doing hline - \ifbool{LWR@doingtbrule}% + \ifbool{LWR@startedrow}% + {}% started the row + {% not started the row + \booltrue{LWR@startedrow}% + \booltrue{LWR@intabularmetadata}% + \ifboolexpr{% + test{\ifnumcomp{\value{LWR@hlines}}{>}{0}} or% + test{\ifnumcomp{\value{LWR@hdashedlines}}{>}{0}}% + }% {% - \ifdefvoid{\LWR@ruleHTMLcolor}{% - \LWR@htmltag{tr class="tbrule"}% - }{% - \LWR@htmltag{% - tr class="tbrule" % space - style="border-top: 1px solid % space - \LWR@origpound\LWR@ruleHTMLcolor "% - }% - }% + \LWR@htmltag{tr class="hline" }% \LWR@orignewline% }% - {\LWR@htmltag{tr}\LWR@orignewline}% - }% end of not doing hline -}% end of not started the row + {% not doing hline + \ifbool{LWR@doingtbrule}% + {% + \ifdefvoid{\LWR@ruleHTMLcolor}{% + \LWR@htmltag{tr class="tbrule"}% + }{% + \LWR@htmltag{% + tr class="tbrule" % space + style="border-top: 1px solid % space + \LWR@origpound\LWR@ruleHTMLcolor "% + }% + }% + \LWR@orignewline% + }% + {\LWR@htmltag{tr}\LWR@orignewline}% + }% end of not doing hline + }% end of not started the row } \newcommand*{\LWR@printbartag}[1]{% -\LWR@traceinfo{LWR@printbartag !#1!}% -\ifboolexpr{bool{LWR@tabularmutemods} or bool{LWR@emptyatbang}}% -{}% muting or empty -{% not muting - \edef\LWR@tempone{\LWR@getexparray{LWR@colbarspec}{#1}}% - \ifdefempty{\LWR@tempone}{}{ \LWR@tempone}% -}% not muting -\LWR@traceinfo{LWR@printbartag done}% + \LWR@traceinfo{LWR@printbartag !#1!}% + \ifboolexpr{bool{LWR@tabularmutemods} or bool{LWR@emptyatbang}}% + {}% muting or empty + {% not muting + \edef\LWR@tempone{\LWR@getexparray{LWR@colbarspec}{#1}}% + \ifdefempty{\LWR@tempone}{}{ \LWR@tempone}% + }% not muting + \LWR@traceinfo{LWR@printbartag done}% } \newcommand*{\LWR@printatbang}[2]{% -\xdef\LWR@atbangspec{\LWR@getexparray{LWR@col#1spec}{#2}}% -\LWR@traceinfo{atbang: #2 !\LWR@atbangspec!}% -\ifdefempty{\LWR@atbangspec}% -{}% -{% not empty - \LWR@htmltag{% - td class="td#1% - \LWR@subaddcmidruletrim{}{}% - \LWR@printbartag{#2}% - "% - \LWR@tdstartstyles% - \LWR@addcmidrulewidth% - \LWR@addcdashline% - \LWR@addtabularrulecolors% - \LWR@tdendstyles% - }% - \ifboolexpr{bool{LWR@tabularmutemods} or bool{LWR@emptyatbang}}% + \xdef\LWR@atbangspec{\LWR@getexparray{LWR@col#1spec}{#2}}% + \LWR@traceinfo{atbang: #2 !\LWR@atbangspec!}% + \ifdefempty{\LWR@atbangspec}% {}% - {\LWR@atbangspec}% - \LWR@htmltag{/td}\LWR@orignewline% - \global\booltrue{LWR@tabularcelladded}% -}% not empty + {% not empty + \LWR@htmltag{% + td class="td#1% + \LWR@subaddcmidruletrim{}{}% + \LWR@printbartag{#2}% + "% + \LWR@tdstartstyles% + \LWR@addcmidrulewidth% + \LWR@addcdashline% + \LWR@addtabularrulecolors% + \LWR@tdendstyles% + }% + \ifboolexpr{bool{LWR@tabularmutemods} or bool{LWR@emptyatbang}}% + {}% + {\LWR@atbangspec}% + \LWR@htmltag{/td}\LWR@orignewline% + \global\booltrue{LWR@tabularcelladded}% + }% not empty }% \newcommand*{\LWR@addleftmostbartag}{% -\ifnumcomp{\value{LWR@tableLaTeXcolindex}}{=}{1}{% - \LWR@printbartag{leftedge}% -}{}% + \ifnumcomp{\value{LWR@tableLaTeXcolindex}}{=}{1}{% + \LWR@printbartag{leftedge}% + }{}% } \newcommand*{\LWR@tabularleftedge}{% -\ifnumcomp{\value{LWR@tableLaTeXcolindex}}{=}{1}% -{% - \LWR@printatbang{at}{leftedge}% - \LWR@printatbang{bang}{leftedge}% -}% left edge -{}% not left edge + \ifnumcomp{\value{LWR@tableLaTeXcolindex}}{=}{1}% + {% + \LWR@printatbang{at}{leftedge}% + \LWR@printatbang{bang}{leftedge}% + }% left edge + {}% not left edge } @@ -8194,68 +8347,68 @@ end -- not --version \newcommand*{\LWR@tabledatasinglecolumntag}% {% -\LWR@traceinfo{LWR@tabledatasinglecolumntag}% -\LWR@maybenewtablerow% -\ifbool{LWR@intabularmetadata}% -{% - \ifbool{LWR@exitingtabular}{}% - {% not exiting tabular - \LWR@tabularleftedge% - \xdef\LWR@strresult{% - \LWR@getexparray{LWR@tablecolspec}{\arabic{LWR@tableLaTeXcolindex}}% - }% -\LWR@traceinfo{LWR@tabledatasinglecolumntag: about to print td tag}% - \LWR@htmltag{td class="td% - \LWR@strresult% - \LWR@addcmidruletrim% - \LWR@addleftmostbartag% - \LWR@printbartag{\arabic{LWR@tableLaTeXcolindex}}% - "% - \LWR@tdstartstyles% - \LWR@addcmidrulewidth% - \LWR@addcdashline% - \xdef\LWR@thiscolspec{% - \LWR@getexparray{LWR@tablecolspec}{\arabic{LWR@tableLaTeXcolindex}}% - }% - \LWR@addformatwpalignment{\LWR@thiscolspec}% - \LWR@addtabularrowcolor% - \LWR@addtabularrulecolors% - \LWR@tdendstyles% - }% HTML td - \LWR@traceinfo{LWR@tabledatasinglecolumntag: done printing td tag}% - \ifboolexpr{% - test{ \ifdefstring{\LWR@strresult}{p} } or - test{ \ifdefstring{\LWR@strresult}{m} } or - test{ \ifdefstring{\LWR@strresult}{b} } or - test{ \ifdefstring{\LWR@strresult}{P} } or - test{ \ifdefstring{\LWR@strresult}{M} } or - test{ \ifdefstring{\LWR@strresult}{B} } or - test{ \ifdefstring{\LWR@strresult}{X} } - }% - {% allow pars - \LWR@traceinfo{LWR@tabledatasinglecolumntag: about to LWR@startpars}% - \global\booltrue{LWR@tableparcell}% - \LWR@startpars% - \LWR@traceinfo{LWR@tabledatasinglecolumntag: done with LWR@startpars}% - }% allow pars - {}% no pars - \ifboolexpr{bool{LWR@tabularmutemods} or bool{LWR@emptyatbang}}% - {}% - {% - \LWR@getexparray{LWR@colbeforespec}{\arabic{LWR@tableLaTeXcolindex}}% - }% - \global\boolfalse{LWR@intabularmetadata}% - }% not exiting tabular -}{}% in tabular metadata -\LWR@traceinfo{LWR@tabledatasinglecolumntag: done}% + \LWR@traceinfo{LWR@tabledatasinglecolumntag}% + \LWR@maybenewtablerow% + \ifbool{LWR@intabularmetadata}% + {% + \ifbool{LWR@exitingtabular}{}% + {% not exiting tabular + \LWR@tabularleftedge% + \xdef\LWR@strresult{% + \LWR@getexparray{LWR@tablecolspec}{\arabic{LWR@tableLaTeXcolindex}}% + }% + \LWR@traceinfo{LWR@tabledatasinglecolumntag: about to print td tag}% + \LWR@htmltag{% + td class="td% + \LWR@strresult% + \LWR@addcmidruletrim% + \LWR@addleftmostbartag% + \LWR@printbartag{\arabic{LWR@tableLaTeXcolindex}}% + "% + \LWR@tdstartstyles% + \LWR@addcmidrulewidth% + \LWR@addcdashline% + \xdef\LWR@thiscolspec{% + \LWR@getexparray{LWR@tablecolspec}% + {\arabic{LWR@tableLaTeXcolindex}}% + }% + \LWR@addformatwpalignment{\LWR@thiscolspec}% + \LWR@addtabularrowcolor% + \LWR@addtabularrulecolors% + \LWR@tdendstyles% + }% HTML td + \LWR@traceinfo{LWR@tabledatasinglecolumntag: done printing td tag}% + \ifboolexpr{% + test{ \ifdefstring{\LWR@strresult}{p} } or + test{ \ifdefstring{\LWR@strresult}{m} } or + test{ \ifdefstring{\LWR@strresult}{b} } or + test{ \ifdefstring{\LWR@strresult}{P} } or + test{ \ifdefstring{\LWR@strresult}{M} } or + test{ \ifdefstring{\LWR@strresult}{B} } or + test{ \ifdefstring{\LWR@strresult}{X} } + }% + {% allow pars + \LWR@traceinfo{LWR@tabledatasinglecolumntag: about to LWR@startpars}% + \booltrue{LWR@tableparcell}% + \LWR@startpars% + \LWR@traceinfo{LWR@tabledatasinglecolumntag: done with LWR@startpars}% + }% allow pars + {}% no pars + \ifboolexpr{bool{LWR@tabularmutemods} or bool{LWR@emptyatbang}}% + {}% + {% + \LWR@getexparray{LWR@colbeforespec}{\arabic{LWR@tableLaTeXcolindex}}% + }% + \boolfalse{LWR@intabularmetadata}% + }% not exiting tabular + }{}% in tabular metadata + \LWR@traceinfo{LWR@tabledatasinglecolumntag: done}% }% -\newcounter{LWR@midrulecounter} - \newlength{\LWR@heavyrulewidth} \setlength{\LWR@heavyrulewidth}{.08em} @@ -8270,37 +8423,37 @@ end -- not --version \newcommand*{\LWR@clearmidrules} {% -\setcounter{LWR@midrulecounter}{1}% -\whileboolexpr{% - not test{% - \ifnumcomp{\value{LWR@midrulecounter}}{>}% - {\value{LWR@tabletotalLaTeXcols}}% + \defcounter{LWR@midrulecounter}{1}% + \whileboolexpr{% + not test{% + \ifnumcomp{\value{LWR@midrulecounter}}{>}% + {\value{LWR@tabletotalLaTeXcols}}% + }% + }% + {% + \LWR@setexparray{LWR@midrules}{\arabic{LWR@midrulecounter}}{0pt}% + \setlength{\LWR@thiscmidrulewidth}{\LWR@cmidrulewidth}% + \LWR@setexparray{LWR@trimlrules}{\arabic{LWR@midrulecounter}}{}% + \LWR@setexparray{LWR@trimrrules}{\arabic{LWR@midrulecounter}}{}% + \LWR@setexparray{LWR@cdashlines}{\arabic{LWR@midrulecounter}}{N}% + \defaddtocounter{LWR@midrulecounter}{1}% }% -}% -{% - \LWR@setexparray{LWR@midrules}{\arabic{LWR@midrulecounter}}{0pt}% - \setlength{\LWR@thiscmidrulewidth}{\LWR@cmidrulewidth}% - \LWR@setexparray{LWR@trimlrules}{\arabic{LWR@midrulecounter}}{}% - \LWR@setexparray{LWR@trimrrules}{\arabic{LWR@midrulecounter}}{}% - \LWR@setexparray{LWR@cdashlines}{\arabic{LWR@midrulecounter}}{N}% - \addtocounter{LWR@midrulecounter}{1}% -}% } \newcommand*{\LWR@subcmidrule}[4]{% -\setcounter{LWR@midrulecounter}{#3}% -\whileboolexpr{% - not test {% - \ifnumcomp{\value{LWR@midrulecounter}}{>}{#4}% + \defcounter{LWR@midrulecounter}{#3}% + \whileboolexpr{% + not test {% + \ifnumcomp{\value{LWR@midrulecounter}}{>}{#4}% + }% }% -}% -{% - \LWR@setexparray{LWR@midrules}{\arabic{LWR@midrulecounter}}{#1}% - \addtocounter{LWR@midrulecounter}{1}% -}% whiledo -\IfSubStr{#2}{l}{\LWR@setexparray{LWR@trimlrules}{#3}{l}}{}% -\IfSubStr{#2}{r}{\LWR@setexparray{LWR@trimrrules}{#4}{r}}{}% -\global\booltrue{LWR@doingcmidrule}% + {% + \LWR@setexparray{LWR@midrules}{\arabic{LWR@midrulecounter}}{#1}% + \defaddtocounter{LWR@midrulecounter}{1}% + }% whiledo + \IfSubStr{#2}{l}{\LWR@setexparray{LWR@trimlrules}{#3}{l}}{}% + \IfSubStr{#2}{r}{\LWR@setexparray{LWR@trimrrules}{#4}{r}}{}% + \booltrue{LWR@doingcmidrule}% } \NewDocumentCommand{\LWR@docmidrule} @@ -8308,17 +8461,17 @@ end -- not --version {\LWR@subcmidrule{#1}{#2}#3} \newcommand*{\LWR@subcdashline}[2]{% -\setcounter{LWR@midrulecounter}{#1}% -\whileboolexpr{% - not test {% - \ifnumcomp{\value{LWR@midrulecounter}}{>}{#2}% + \defcounter{LWR@midrulecounter}{#1}% + \whileboolexpr{% + not test {% + \ifnumcomp{\value{LWR@midrulecounter}}{>}{#2}% + }% }% -}% -{% - \LWR@setexparray{LWR@cdashlines}{\arabic{LWR@midrulecounter}}{Y}% - \addtocounter{LWR@midrulecounter}{1}% -}% whiledo -\global\booltrue{LWR@doingcmidrule}% + {% + \LWR@setexparray{LWR@cdashlines}{\arabic{LWR@midrulecounter}}{Y}% + \defaddtocounter{LWR@midrulecounter}{1}% + }% whiledo + \booltrue{LWR@doingcmidrule}% } \NewDocumentCommand{\LWR@docdashline} @@ -8332,406 +8485,395 @@ end -- not --version \newlength{\LWR@templengththree} \newcounter{LWR@tempcountone} -\newbool{LWR@tdhavecellstyle} - -\newcommand*{\LWR@tdstartstyles}{\global\boolfalse{LWR@tdhavecellstyle}} +\newcommand*{\LWR@tdstartstyles}{\boolfalse{LWR@tdhavecellstyle}} \newcommand*{\LWR@tdaddstyle}{% -\ifbool{LWR@tdhavecellstyle}% -{; }% -{ style="}% -\booltrue{LWR@tdhavecellstyle}% + \ifbool{LWR@tdhavecellstyle}% + {; }% + { style="}% + \booltrue{LWR@tdhavecellstyle}% } \newcommand*{\LWR@tdendstyles}{% -\ifbool{LWR@tdhavecellstyle}{% - "% - \global\boolfalse{LWR@tdhavecellstyle}% -}{}% + \ifbool{LWR@tdhavecellstyle}% + {% + "% + \boolfalse{LWR@tdhavecellstyle}% + }{}% } \newcommand*{\LWR@subaddcmidruletrim}[2]{% -\setlength{\LWR@templengthone}{% - \LWR@getexparray{LWR@midrules}{\arabic{LWR@tableLaTeXcolindex}}% -}% -\ifdimcomp{\LWR@templengthone}{>}{0pt}% -{% - \LWR@origtilde tdrule#1#2% - \setlength{\LWR@thiscmidrulewidth}{\LWR@templengthone}% -}% -{% - \setlength{\LWR@thiscmidrulewidth}{0pt}% -}% + \setlength{\LWR@templengthone}{% + \LWR@getexparray{LWR@midrules}{\arabic{LWR@tableLaTeXcolindex}}% + }% + \ifdimcomp{\LWR@templengthone}{>}{0pt}% + {% + \LWR@origtilde tdrule#1#2% + \setlength{\LWR@thiscmidrulewidth}{\LWR@templengthone}% + }% + {% + \setlength{\LWR@thiscmidrulewidth}{0pt}% + }% } \newcommand*{\LWR@addcmidruletrim}{% -\LWR@subaddcmidruletrim% -{\LWR@getexparray{LWR@trimlrules}{\arabic{LWR@tableLaTeXcolindex}}}% -{\LWR@getexparray{LWR@trimrrules}{\arabic{LWR@tableLaTeXcolindex}}}% + \LWR@subaddcmidruletrim% + {\LWR@getexparray{LWR@trimlrules}{\arabic{LWR@tableLaTeXcolindex}}}% + {\LWR@getexparray{LWR@trimrrules}{\arabic{LWR@tableLaTeXcolindex}}}% } \newcommand{\LWR@addrulewidth}[2]{% -\ifboolexpr{% - test{\ifdimcomp{#1}{=}{0pt}} or - ( - ( test{\ifdimcomp{#1}{=}{#2}} and not bool{FormatWP} ) - and ( test {\ifdefvoid{\LWR@ruleHTMLcolor}} ) - ) -}% -{}% default width and color -{% custom width and/or color - \LWR@forceminwidth{#1}% - \LWR@tdaddstyle% - border-top:\LWR@printlength{\LWR@atleastonept} solid % - \ifdefvoid{\LWR@ruleHTMLcolor}{% - \ifdimcomp{#1}{<}{\LWR@lightrulewidth}% - {\LWR@origpound{}A0A0A0}% - {% lightrule or heaver - \ifdimcomp{#1}{<}{\LWR@heavyrulewidth}% - {\LWR@origpound{}808080}% - {black}% - }% lightrule or heavier - }{% - \LWR@origpound\LWR@ruleHTMLcolor% - } -}% custom width and/or color + \ifboolexpr{% + test{\ifdimcomp{#1}{=}{0pt}} or + ( + ( test{\ifdimcomp{#1}{=}{#2}} and not bool{FormatWP} ) + and ( test {\ifdefvoid{\LWR@ruleHTMLcolor}} ) + ) + }% + {}% default width and color + {% custom width and/or color + \LWR@forceminwidth{#1}% + \LWR@tdaddstyle% + border-top:\LWR@printlength{\LWR@atleastonept} solid % space + \ifdefvoid{\LWR@ruleHTMLcolor}{% + \ifdimcomp{#1}{<}{\LWR@lightrulewidth}% + {\LWR@origpound{}A0A0A0}% + {% lightrule or heaver + \ifdimcomp{#1}{<}{\LWR@heavyrulewidth}% + {\LWR@origpound{}808080}% + {black}% + }% lightrule or heavier + }{% + \LWR@origpound\LWR@ruleHTMLcolor% + }% + }% custom width and/or color } \newcommand{\LWR@addcmidrulewidth}{% -\LWR@addrulewidth{\LWR@thiscmidrulewidth}{\LWR@cmidrulewidth}% + \LWR@addrulewidth{\LWR@thiscmidrulewidth}{\LWR@cmidrulewidth}% } \newcommand{\LWR@addcdashline}{% -\edef\LWR@tempone{% - \LWR@getexparray{LWR@cdashlines}{\arabic{LWR@tableLaTeXcolindex}}% -}% -\ifdefstring{\LWR@tempone}{Y}{% - \LWR@tdaddstyle% - border-top: 1pt dashed % - \ifdefvoid{\LWR@ruleHTMLcolor}% - {black}% - {\LWR@origpound\LWR@ruleHTMLcolor}% -}{}% + \edef\LWR@tempone{% + \LWR@getexparray{LWR@cdashlines}{\arabic{LWR@tableLaTeXcolindex}}% + }% + \ifdefstring{\LWR@tempone}{Y}{% + \LWR@tdaddstyle% + border-top: 1pt dashed % + \ifdefvoid{\LWR@ruleHTMLcolor}% + {black}% + {\LWR@origpound\LWR@ruleHTMLcolor}% + }{}% } \newcommand*{\LWR@WPcell}[2]{% -\LWR@tdaddstyle% -\LWR@print@mbox{text-align:#1}; \LWR@print@mbox{vertical-align:#2}% + \LWR@tdaddstyle% + \LWR@print@mbox{text-align:#1}; \LWR@print@mbox{vertical-align:#2}% } \newcommand*{\LWR@addformatwpalignment}[1]{% -\ifbool{FormatWP}{% -\IfSubStr{#1}{l}{\LWR@WPcell{left}{middle}}{}% -\IfSubStr{#1}{c}{\LWR@WPcell{center}{middle}}{}% -\IfSubStr{#1}{r}{\LWR@WPcell{right}{middle}}{}% -\IfSubStr{#1}{p}{\LWR@WPcell{left}{bottom}}{}% -\IfSubStr{#1}{m}{\LWR@WPcell{left}{middle}}{}% -\IfSubStr{#1}{b}{\LWR@WPcell{left}{top}}{}% -\IfSubStr{#1}{P}{\LWR@WPcell{center}{bottom}}{}% -\IfSubStr{#1}{M}{\LWR@WPcell{center}{middle}}{}% -\IfSubStr{#1}{B}{\LWR@WPcell{center}{top}}{}% -}{}% + \ifbool{FormatWP}{% + \IfSubStr{#1}{l}{\LWR@WPcell{left}{middle}}{}% + \IfSubStr{#1}{c}{\LWR@WPcell{center}{middle}}{}% + \IfSubStr{#1}{r}{\LWR@WPcell{right}{middle}}{}% + \IfSubStr{#1}{p}{\LWR@WPcell{left}{bottom}}{}% + \IfSubStr{#1}{m}{\LWR@WPcell{left}{middle}}{}% + \IfSubStr{#1}{b}{\LWR@WPcell{left}{top}}{}% + \IfSubStr{#1}{P}{\LWR@WPcell{center}{bottom}}{}% + \IfSubStr{#1}{M}{\LWR@WPcell{center}{middle}}{}% + \IfSubStr{#1}{B}{\LWR@WPcell{center}{top}}{}% + }{}% } \newcommand*{\LWR@addtabularrowcolor}{% -\ifbool{LWR@tabularmutemods}{}{% - \ifdefvoid{\LWR@rowHTMLcolor}{% - \ifdefvoid{\LWR@xcolorrowHTMLcolor}{}% - {% xcolor row color + \ifbool{LWR@tabularmutemods}{}{% + \ifdefvoid{\LWR@rowHTMLcolor}{% + \ifdefvoid{\LWR@xcolorrowHTMLcolor}{}% + {% xcolor row color + \LWR@tdaddstyle% + background:\LWR@origpound\LWR@xcolorrowHTMLcolor% + }% + }% + {% explicit row color \LWR@tdaddstyle% - background:\LWR@origpound\LWR@xcolorrowHTMLcolor% + background:\LWR@origpound\LWR@rowHTMLcolor% }% }% - {% explicit row color - \LWR@tdaddstyle% - background:\LWR@origpound\LWR@rowHTMLcolor% - }% -}% } \newcommand*{\LWR@addtabularhrulecolor}{% -\ifboolexpr{% - test{\ifnumcomp{\value{LWR@hlines}}{>}{0}} or% - test{\ifnumcomp{\value{LWR@hdashedlines}}{>}{0}} or% - bool{LWR@doingtbrule}% -}{% - \ifdefvoid{\LWR@ruleHTMLcolor}% - {% - \ifnumcomp{\value{LWR@hlines}}{>}{1}% - {% - \LWR@tdaddstyle% - border-top: 4px double% - }{% else - \ifnumcomp{\value{LWR@hdashedlines}}{>}{1}% - {% - \LWR@tdaddstyle% - border-top: 2px dashed% - }{% else - \ifnumcomp{\value{LWR@hdashedlines}}{=}{1}% - {% - \LWR@tdaddstyle% - border-top: 1px dashed% - }{}}}% - }% - {% - \ifnumcomp{\value{LWR@hlines}}{>}{1}% - {% - \LWR@tdaddstyle% - border-top: 4px double \LWR@origpound\LWR@ruleHTMLcolor% - }{% else - \ifnumcomp{\value{LWR@hdashedlines}}{>}{1}% + \ifboolexpr{% + test{\ifnumcomp{\value{LWR@hlines}}{>}{0}} or% + test{\ifnumcomp{\value{LWR@hdashedlines}}{>}{0}} or% + bool{LWR@doingtbrule}% + }{% + \ifdefvoid{\LWR@ruleHTMLcolor}% {% - \LWR@tdaddstyle% - border-top: 2px dashed \LWR@origpound\LWR@ruleHTMLcolor% - }{% else - \ifnumcomp{\value{LWR@hdashedlines}}{=}{1}% + \ifnumcomp{\value{LWR@hlines}}{>}{1}% + {% + \LWR@tdaddstyle% + border-top: 4px double% + }{% else + \ifnumcomp{\value{LWR@hdashedlines}}{>}{1}% + {% + \LWR@tdaddstyle% + border-top: 2px dashed% + }{% else + \ifnumcomp{\value{LWR@hdashedlines}}{=}{1}% + {% + \LWR@tdaddstyle% + border-top: 1px dashed% + }{}}}% + }% {% - \LWR@tdaddstyle% - border-top: 1px dashed \LWR@origpound\LWR@ruleHTMLcolor% - }{% else - \LWR@tdaddstyle% - border-top: 1px solid \LWR@origpound\LWR@ruleHTMLcolor% - }}}% - }% -}{}% + \ifnumcomp{\value{LWR@hlines}}{>}{1}% + {% + \LWR@tdaddstyle% + border-top: 4px double \LWR@origpound\LWR@ruleHTMLcolor% + }{% else + \ifnumcomp{\value{LWR@hdashedlines}}{>}{1}% + {% + \LWR@tdaddstyle% + border-top: 2px dashed \LWR@origpound\LWR@ruleHTMLcolor% + }{% else + \ifnumcomp{\value{LWR@hdashedlines}}{=}{1}% + {% + \LWR@tdaddstyle% + border-top: 1px dashed \LWR@origpound\LWR@ruleHTMLcolor% + }{% else + \LWR@tdaddstyle% + border-top: 1px solid \LWR@origpound\LWR@ruleHTMLcolor% + }}}% + }% + }{}% } \newcommand*{\LWR@addtabularrulecolors}{% -\LWR@addtabularhrulecolor% -\ifbool{LWR@tabularmutemods}{}{% - \ifnumequal{\value{LWR@tableLaTeXcolindex}}{1}{% - \edef\LWR@tempone{\LWR@getexparray{LWR@colbarspec}{leftedge}}% - \ifdefstring{\LWR@tempone}{tvertbarl}{% + \LWR@addtabularhrulecolor% + \ifbool{LWR@tabularmutemods}{}{% + \ifnumequal{\value{LWR@tableLaTeXcolindex}}{1}{% + \edef\LWR@tempone{\LWR@getexparray{LWR@colbarspec}{leftedge}}% + \ifdefstring{\LWR@tempone}{tvertbarl}{% + \LWR@tdaddstyle% + border-left: 1px solid % space + \LWR@vertruleHTMLcolor% + }{}% + \ifdefstring{\LWR@tempone}{tvertbarldouble}{% + \LWR@tdaddstyle% + border-left: 4px double % space + \LWR@vertruleHTMLcolor% + }{}% + \ifdefstring{\LWR@tempone}{tvertbarldash}{% + \LWR@tdaddstyle% + border-left: 1px dashed % space + \LWR@vertruleHTMLcolor% + }{}% + \ifdefstring{\LWR@tempone}{tvertbarldoubledash}{% + \LWR@tdaddstyle% + border-left: 2px dashed % space + \LWR@vertruleHTMLcolor% + }{}% + }{}% + \edef\LWR@tempone{% + \LWR@getexparray{LWR@colbarspec}{\arabic{LWR@tableLaTeXcolindex}}% + }% + \ifdefstring{\LWR@tempone}{tvertbarr}{% \LWR@tdaddstyle% - border-left: 1px solid % space - \LWR@vertruleHTMLcolor% + border-right: 1px solid \LWR@vertruleHTMLcolor% }{}% - \ifdefstring{\LWR@tempone}{tvertbarldouble}{% + \ifdefstring{\LWR@tempone}{tvertbarrdouble}{% \LWR@tdaddstyle% - border-left: 4px double % space - \LWR@vertruleHTMLcolor% + border-right: 4px double \LWR@vertruleHTMLcolor% }{}% - \ifdefstring{\LWR@tempone}{tvertbarldash}{% + \ifdefstring{\LWR@tempone}{tvertbarrdash}{% \LWR@tdaddstyle% - border-left: 1px dashed % space - \LWR@vertruleHTMLcolor% + border-right: 1px dashed \LWR@vertruleHTMLcolor% }{}% - \ifdefstring{\LWR@tempone}{tvertbarldoubledash}{% + \ifdefstring{\LWR@tempone}{tvertbarrdoubledash}{% \LWR@tdaddstyle% - border-left: 2px dashed % space - \LWR@vertruleHTMLcolor% + border-right: 2px dashed \LWR@vertruleHTMLcolor% }{}% - }{}% - \edef\LWR@tempone{% - \LWR@getexparray{LWR@colbarspec}{\arabic{LWR@tableLaTeXcolindex}}% }% - \ifdefstring{\LWR@tempone}{tvertbarr}{% - \LWR@tdaddstyle% - border-right: 1px solid \LWR@vertruleHTMLcolor% - }{}% - \ifdefstring{\LWR@tempone}{tvertbarrdouble}{% - \LWR@tdaddstyle% - border-right: 4px double \LWR@vertruleHTMLcolor% - }{}% - \ifdefstring{\LWR@tempone}{tvertbarrdash}{% - \LWR@tdaddstyle% - border-right: 1px dashed \LWR@vertruleHTMLcolor% - }{}% - \ifdefstring{\LWR@tempone}{tvertbarrdoubledash}{% - \LWR@tdaddstyle% - border-right: 2px dashed \LWR@vertruleHTMLcolor% - }{}% -}% } -\newcounter{LWR@cellcolordepth} - \newcommand*{\LWR@subaddtabularcellcolor}[1]{% -\LWR@htmltag{div class="cellcolor" style="% - background:\LWR@origpound{}{}#1 % -" }% -\addtocounter{LWR@cellcolordepth}{1}% + \LWR@htmltag{div class="cellcolor" style="% + background:\LWR@origpound{}{}#1 % + " }% + \defaddtocounter{LWR@cellcolordepth}{1}% } \newcommand*{\LWR@addtabularcellcolor}{% -\ifdefvoid{\LWR@cellHTMLcolor}% -{% - \ifdefvoid{\LWR@rowHTMLcolor}% + \ifdefvoid{\LWR@cellHTMLcolor}% {% - \ifdefvoid{\LWR@xcolorrowHTMLcolor}% + \ifdefvoid{\LWR@rowHTMLcolor}% {% - \ifdefvoid{\LWR@columnHTMLcolor}% - {}% - {\LWR@subaddtabularcellcolor{\LWR@columnHTMLcolor}}% + \ifdefvoid{\LWR@xcolorrowHTMLcolor}% + {% + \ifdefvoid{\LWR@columnHTMLcolor}% + {}% + {\LWR@subaddtabularcellcolor{\LWR@columnHTMLcolor}}% + }% + {\LWR@subaddtabularcellcolor{\LWR@xcolorrowHTMLcolor}}% }% - {\LWR@subaddtabularcellcolor{\LWR@xcolorrowHTMLcolor}}% + {\LWR@subaddtabularcellcolor{\LWR@rowHTMLcolor}}% }% - {\LWR@subaddtabularcellcolor{\LWR@rowHTMLcolor}}% -}% -{\LWR@subaddtabularcellcolor{\LWR@cellHTMLcolor}}% + {\LWR@subaddtabularcellcolor{\LWR@cellHTMLcolor}}% } -\newcounter{LWR@tablemulticolswidth} -\newcounter{LWR@tablemulticolspos} - -\newcounter{LWR@mcolvertbarsl} -\newcounter{LWR@mcolvertbarsr} -\newcounter{LWR@mcolvertbarsldash} -\newcounter{LWR@mcolvertbarsrdash} -\newbool{LWR@mcolvertbaronleft}% - \newcommand*{\LWR@printmccoltype}[1]{% -\LWR@traceinfo{lwr@printmccoltype -#1-}% -\StrChar{#1}{\arabic{LWR@tablemulticolspos}}[\LWR@strresult]% -\IfStrEq{\LWR@strresult}{l}{l}{}% -\IfStrEq{\LWR@strresult}{c}{c}{}% -\IfStrEq{\LWR@strresult}{r}{r}{}% -\IfStrEq{\LWR@strresult}{p}{p}{}% -\IfStrEq{\LWR@strresult}{m}{m}{}% -\IfStrEq{\LWR@strresult}{b}{b}{}% -\IfStrEq{\LWR@strresult}{P}{P}{}% -\IfStrEq{\LWR@strresult}{M}{M}{}% -\IfStrEq{\LWR@strresult}{B}{B}{}% -\IfStrEq{\LWR@strresult}{w}{w}{}% -\IfStrEq{\LWR@strresult}{W}{W}{}% -\IfStrEq{\LWR@strresult}{S}{c}{}% -\IfStrEq{\LWR@strresult}{s}{c}{}% -\IfStrEq{\LWR@strresult}{X}{p}{}% -\IfStrEq{\LWR@strresult}{|}% -{% - \ifbool{LWR@mcolvertbaronleft}% - {\addtocounter{LWR@mcolvertbarsl}{1}}% left edge - {\addtocounter{LWR@mcolvertbarsr}{1}}% not left edge -}% -{% - \IfStrEq{\LWR@strresult}{:}% + \LWR@traceinfo{lwr@printmccoltype -#1-}% + \StrChar{#1}{\arabic{LWR@tablemulticolspos}}[\LWR@strresult]% + \IfStrEq{\LWR@strresult}{l}{l}{}% + \IfStrEq{\LWR@strresult}{c}{c}{}% + \IfStrEq{\LWR@strresult}{r}{r}{}% + \IfStrEq{\LWR@strresult}{p}{p}{}% + \IfStrEq{\LWR@strresult}{m}{m}{}% + \IfStrEq{\LWR@strresult}{b}{b}{}% + \IfStrEq{\LWR@strresult}{P}{P}{}% + \IfStrEq{\LWR@strresult}{M}{M}{}% + \IfStrEq{\LWR@strresult}{B}{B}{}% + \IfStrEq{\LWR@strresult}{w}{w}{}% + \IfStrEq{\LWR@strresult}{W}{W}{}% + \IfStrEq{\LWR@strresult}{S}{c}{}% + \IfStrEq{\LWR@strresult}{s}{c}{}% + \IfStrEq{\LWR@strresult}{X}{p}{}% + \IfStrEq{\LWR@strresult}{|}% {% \ifbool{LWR@mcolvertbaronleft}% - {\addtocounter{LWR@mcolvertbarsldash}{1}}% left edge - {\addtocounter{LWR@mcolvertbarsrdash}{1}}% not left edge + {\defaddtocounter{LWR@mcolvertbarsl}{1}}% left edge + {\defaddtocounter{LWR@mcolvertbarsr}{1}}% not left edge }% {% - \IfStrEq{\LWR@strresult}{;}% + \IfStrEq{\LWR@strresult}{:}% {% \ifbool{LWR@mcolvertbaronleft}% - {\addtocounter{LWR@mcolvertbarsldash}{1}}% left edge - {\addtocounter{LWR@mcolvertbarsrdash}{1}}% not left edge + {\defaddtocounter{LWR@mcolvertbarsldash}{1}}% left edge + {\defaddtocounter{LWR@mcolvertbarsrdash}{1}}% not left edge + }% + {% + \IfStrEq{\LWR@strresult}{;}% + {% + \ifbool{LWR@mcolvertbaronleft}% + {\defaddtocounter{LWR@mcolvertbarsldash}{1}}% left edge + {\defaddtocounter{LWR@mcolvertbarsrdash}{1}}% not left edge + }% + {\boolfalse{LWR@mcolvertbaronleft}}% }% - {\boolfalse{LWR@mcolvertbaronleft}}% }% -}% -\LWR@traceinfo{lwr@printmccoltype done}% + \LWR@traceinfo{lwr@printmccoltype done}% } \newcommand*{\LWR@multicolpartext}[1]{% -\LWR@startpars% -\LWR@multicoltext% -\addtocounter{LWR@tablemulticolspos}{#1}% -\LWR@stoppars% + \LWR@startpars% + \LWR@multicoltext% + \defaddtocounter{LWR@tablemulticolspos}{#1}% + \LWR@stoppars% } \newcommand*{\LWR@multicolother}[1]{% -\addtocounter{LWR@tablemulticolspos}{1}% -\StrChar{#1}{\arabic{LWR@tablemulticolspos}}[\LWR@strresult]% -\LWR@strresult% -\global\booltrue{LWR@validtablecol}% + \defaddtocounter{LWR@tablemulticolspos}{1}% + \StrChar{#1}{\arabic{LWR@tablemulticolspos}}[\LWR@strresult]% + \LWR@strresult% + \booltrue{LWR@validtablecol}% } \newcommand*{\LWR@multicolskip}{% -\global\booltrue{LWR@validtablecol}% + \booltrue{LWR@validtablecol}% } \newcommand*{\LWR@printmccoldata}[1]{% -\LWR@traceinfo{lwr@printmccoldata -#1}% -\global\boolfalse{LWR@validtablecol}% -\StrChar{#1}{\arabic{LWR@tablemulticolspos}}[\LWR@strresult]% -\IfStrEq{\LWR@strresult}{l}{\LWR@multicoltext}{}% -\IfStrEq{\LWR@strresult}{c}{\LWR@multicoltext}{}% -\IfStrEq{\LWR@strresult}{r}{\LWR@multicoltext}{}% -\IfStrEq{\LWR@strresult}{D}{% -\addtocounter{LWR@tablemulticolspos}{3}% skip parameters -\LWR@multicoltext% -}{}% -\IfStrEq{\LWR@strresult}{p}{\LWR@multicolpartext{2}}{}% -\IfStrEq{\LWR@strresult}{m}{\LWR@multicolpartext{2}}{}% -\IfStrEq{\LWR@strresult}{b}{\LWR@multicolpartext{2}}{}% -\IfStrEq{\LWR@strresult}{P}{\LWR@multicolpartext{2}}{}% -\IfStrEq{\LWR@strresult}{M}{\LWR@multicolpartext{2}}{}% -\IfStrEq{\LWR@strresult}{B}{\LWR@multicolpartext{2}}{}% -\IfStrEq{\LWR@strresult}{w}{\LWR@multicolpartext{3}}{}% -\IfStrEq{\LWR@strresult}{W}{\LWR@multicolpartext{3}}{}% -\IfStrEq{\LWR@strresult}{S}{\LWR@multicoltext}{}% -\IfStrEq{\LWR@strresult}{s}{\LWR@multicoltext}{}% -\IfStrEq{\LWR@strresult}{X}{\LWR@multicolpartext{1}}{}% -\IfStrEq{\LWR@strresult}{|}{\LWR@multicolskip}{}% -\IfStrEq{\LWR@strresult}{:}{\LWR@multicolskip}{}% -\IfStrEq{\LWR@strresult}{;}{% - \LWR@multicolskip% - \addtocounter{LWR@tablemulticolspos}{1}% skip parameter -}{}% -\IfStrEq{\LWR@strresult}{\detokenize{@}}{\LWR@multicolother{#1}}{}% -\IfStrEq{\LWR@strresult}{\detokenize{!}}{\LWR@multicolother{#1}}{}% -\IfStrEq{\LWR@strresult}{\detokenize{>}}{\LWR@multicolother{#1}}{}% -\IfStrEq{\LWR@strresult}{\detokenize{<}}{\LWR@multicolother{#1}}{}% -\ifbool{LWR@validtablecol}{}{\LWR@multicoltext}% -\LWR@traceinfo{lwr@printmccoldata done}% + \LWR@traceinfo{lwr@printmccoldata -#1}% + \boolfalse{LWR@validtablecol}% + \StrChar{#1}{\arabic{LWR@tablemulticolspos}}[\LWR@strresult]% + \edef\LWR@printmccoldatatoken{\LWR@strresult}% + \IfStrEq{\LWR@printmccoldatatoken}{l}{\LWR@multicoltext}{}% + \IfStrEq{\LWR@printmccoldatatoken}{c}{\LWR@multicoltext}{}% + \IfStrEq{\LWR@printmccoldatatoken}{r}{\LWR@multicoltext}{}% + \IfStrEq{\LWR@printmccoldatatoken}{D}{% + \defaddtocounter{LWR@tablemulticolspos}{3}% skip parameters + \LWR@multicoltext% + }{}% + \IfStrEq{\LWR@printmccoldatatoken}{p}{\LWR@multicolpartext{2}}{}% + \IfStrEq{\LWR@printmccoldatatoken}{m}{\LWR@multicolpartext{2}}{}% + \IfStrEq{\LWR@printmccoldatatoken}{b}{\LWR@multicolpartext{2}}{}% + \IfStrEq{\LWR@printmccoldatatoken}{P}{\LWR@multicolpartext{2}}{}% + \IfStrEq{\LWR@printmccoldatatoken}{M}{\LWR@multicolpartext{2}}{}% + \IfStrEq{\LWR@printmccoldatatoken}{B}{\LWR@multicolpartext{2}}{}% + \IfStrEq{\LWR@printmccoldatatoken}{w}{\LWR@multicolpartext{3}}{}% + \IfStrEq{\LWR@printmccoldatatoken}{W}{\LWR@multicolpartext{3}}{}% + \IfStrEq{\LWR@printmccoldatatoken}{S}{\LWR@multicoltext}{}% + \IfStrEq{\LWR@printmccoldatatoken}{s}{\LWR@multicoltext}{}% + \IfStrEq{\LWR@printmccoldatatoken}{X}{\LWR@multicolpartext{1}}{}% + \IfStrEq{\LWR@printmccoldatatoken}{|}{\LWR@multicolskip}{}% + \IfStrEq{\LWR@printmccoldatatoken}{:}{\LWR@multicolskip}{}% + \IfStrEq{\LWR@printmccoldatatoken}{;}{% + \LWR@multicolskip% + \defaddtocounter{LWR@tablemulticolspos}{1}% skip parameter + }{}% + \IfStrEq{\LWR@printmccoldatatoken}{\detokenize{@}}{\LWR@multicolother{#1}}{}% + \IfStrEq{\LWR@printmccoldatatoken}{\detokenize{!}}{\LWR@multicolother{#1}}{}% + \IfStrEq{\LWR@printmccoldatatoken}{\detokenize{>}}{\LWR@multicolother{#1}}{}% + \IfStrEq{\LWR@printmccoldatatoken}{\detokenize{<}}{\LWR@multicolother{#1}}{}% + \ifbool{LWR@validtablecol}{}{\LWR@multicoltext{}}% + \LWR@traceinfo{lwr@printmccoldata done}% } \newcommand*{\LWR@parsemulticolumnalignment}[2]{% -\setcounter{LWR@tablemulticolspos}{1}% -\StrLen{#1}[\LWR@strresult]% -\setcounter{LWR@tablemulticolswidth}{\LWR@strresult}% -\whileboolexpr{% - not test {% - \ifnumcomp{\value{LWR@tablemulticolspos}}{>}% - {\value{LWR@tablemulticolswidth}}% + \defcounter{LWR@tablemulticolspos}{1}% + \StrLen{#1}[\LWR@strresult]% + \defcounter{LWR@tablemulticolswidth}{\LWR@strresult}% + \whileboolexpr{% + not test {% + \ifnumcomp{\value{LWR@tablemulticolspos}}{>}% + {\value{LWR@tablemulticolswidth}}% + }% + }% + {% + #2{#1}% + \defaddtocounter{LWR@tablemulticolspos}{1}% }% -}% -{% -#2{#1}% -\addtocounter{LWR@tablemulticolspos}{1}% -}% } \newcommand*{\LWR@addmulticolvertrulecolor}{% -\ifbool{LWR@tabularmutemods}{}{% - \ifnumcomp{\value{LWR@mcolvertbarsl}}{=}{1}{% - \LWR@tdaddstyle% - border-left: 1px solid \LWR@vertruleHTMLcolor% - }{}% - \ifnumcomp{\value{LWR@mcolvertbarsl}}{>}{1}{% - \LWR@tdaddstyle% - border-left: 4px double \LWR@vertruleHTMLcolor% - }{}% - \ifnumcomp{\value{LWR@mcolvertbarsldash}}{=}{1}{% - \LWR@tdaddstyle% - border-left: 1px dashed \LWR@vertruleHTMLcolor% - }{}% - \ifnumcomp{\value{LWR@mcolvertbarsldash}}{>}{1}{% - \LWR@tdaddstyle% - border-left: 2px dashed \LWR@vertruleHTMLcolor% - }{}% - \ifnumcomp{\value{LWR@mcolvertbarsr}}{=}{1}{% - \LWR@tdaddstyle% - border-right: 1px solid \LWR@vertruleHTMLcolor% - }{}% - \ifnumcomp{\value{LWR@mcolvertbarsr}}{>}{1}{% - \LWR@tdaddstyle% - border-right: 4px double \LWR@vertruleHTMLcolor% - }{}% - \ifnumcomp{\value{LWR@mcolvertbarsrdash}}{=}{1}{% - \LWR@tdaddstyle% - border-right: 1px dashed \LWR@vertruleHTMLcolor% - }{}% - \ifnumcomp{\value{LWR@mcolvertbarsrdash}}{>}{1}{% - \LWR@tdaddstyle% - border-right: 2px dashed \LWR@vertruleHTMLcolor% - }{}% -}% + \ifbool{LWR@tabularmutemods}{}{% + \ifnumcomp{\value{LWR@mcolvertbarsl}}{=}{1}{% + \LWR@tdaddstyle% + border-left: 1px solid \LWR@vertruleHTMLcolor% + }{}% + \ifnumcomp{\value{LWR@mcolvertbarsl}}{>}{1}{% + \LWR@tdaddstyle% + border-left: 4px double \LWR@vertruleHTMLcolor% + }{}% + \ifnumcomp{\value{LWR@mcolvertbarsldash}}{=}{1}{% + \LWR@tdaddstyle% + border-left: 1px dashed \LWR@vertruleHTMLcolor% + }{}% + \ifnumcomp{\value{LWR@mcolvertbarsldash}}{>}{1}{% + \LWR@tdaddstyle% + border-left: 2px dashed \LWR@vertruleHTMLcolor% + }{}% + \ifnumcomp{\value{LWR@mcolvertbarsr}}{=}{1}{% + \LWR@tdaddstyle% + border-right: 1px solid \LWR@vertruleHTMLcolor% + }{}% + \ifnumcomp{\value{LWR@mcolvertbarsr}}{>}{1}{% + \LWR@tdaddstyle% + border-right: 4px double \LWR@vertruleHTMLcolor% + }{}% + \ifnumcomp{\value{LWR@mcolvertbarsrdash}}{=}{1}{% + \LWR@tdaddstyle% + border-right: 1px dashed \LWR@vertruleHTMLcolor% + }{}% + \ifnumcomp{\value{LWR@mcolvertbarsrdash}}{>}{1}{% + \LWR@tdaddstyle% + border-right: 2px dashed \LWR@vertruleHTMLcolor% + }{}% + }% } \newcommand{\LWR@multicoltext}{} @@ -8739,135 +8881,143 @@ end -- not --version \newcounter{LWR@lastmulticolumn} \NewDocumentCommand{\LWR@domulticolumn}{o o m m m +m}{% -\LWR@traceinfo{LWR@domulticolumn -#1- -#2- -#4- -#5-}% -\renewcommand{\LWR@multicoltext}{% -#6% -\global\booltrue{LWR@validtablecol}% -}% -\setcounter{LWR@lastmulticolumn}{\value{LWR@tableLaTeXcolindex}}% -\addtocounter{LWR@lastmulticolumn}{#3}% -\addtocounter{LWR@lastmulticolumn}{-1}% -\LWR@maybenewtablerow% -\LWR@htmltag{td colspan="#4" % -\IfValueT{#2}{ % rows? -rowspan="#2" % -\IfValueT{#1}{% vpos? -\ifstrequal{#1}{b}{style="\LWR@print@mbox{vertical-align:bottom}" }{}% -\ifstrequal{#1}{t}{style="\LWR@print@mbox{vertical-align:top}" }{}% -}% vpos? -}% rows? - class="td% -\setcounter{LWR@mcolvertbarsl}{0}% -\setcounter{LWR@mcolvertbarsr}{0}% -\setcounter{LWR@mcolvertbarsldash}{0}% -\setcounter{LWR@mcolvertbarsrdash}{0}% -\booltrue{LWR@mcolvertbaronleft}% -\LWR@parsemulticolumnalignment{#5}{\LWR@printmccoltype}% -\LWR@subaddcmidruletrim% -{\LWR@getexparray{LWR@trimlrules}{\arabic{LWR@tableLaTeXcolindex}}}% -{\LWR@getexparray{LWR@trimrrules}{\arabic{LWR@lastmulticolumn}}}% -\ifnumcomp{\value{LWR@mcolvertbarsl}}{=}{1}{ tvertbarl}{}% -\ifnumcomp{\value{LWR@mcolvertbarsl}}{>}{1}{ tvertbarldouble}{}% -\ifnumcomp{\value{LWR@mcolvertbarsr}}{=}{1}{ tvertbarr}{}% -\ifnumcomp{\value{LWR@mcolvertbarsr}}{>}{1}{ tvertbarrdouble}{}% -\ifnumcomp{\value{LWR@mcolvertbarsldash}}{=}{1}{ tvertbarldash}{}% -\ifnumcomp{\value{LWR@mcolvertbarsldash}}{>}{1}{ tvertbarldoubledash}{}% -\ifnumcomp{\value{LWR@mcolvertbarsrdash}}{=}{1}{ tvertbarrdash}{}% -\ifnumcomp{\value{LWR@mcolvertbarsrdash}}{>}{1}{ tvertbarrdoubledash}{}% -"% NOT A TYPO -\LWR@tdstartstyles% -\LWR@addtabularrowcolor% -\LWR@addcmidrulewidth% -\LWR@addcdashline% -\LWR@addtabularhrulecolor% -\LWR@addmulticolvertrulecolor% -\LWR@addformatwpalignment{#5}% -\LWR@tdendstyles% -}% end of the opening table data tag -\global\boolfalse{LWR@intabularmetadata}% -\LWR@parsemulticolumnalignment{#5}{\LWR@printmccoldata}% + \LWR@traceinfo{LWR@domulticolumn -#1- -#2- -#4- -#5-}% + \renewcommand{\LWR@multicoltext}{% + #6% + \booltrue{LWR@validtablecol}% + }% + \defcounter{LWR@lastmulticolumn}{\value{LWR@tableLaTeXcolindex}}% + \defaddtocounter{LWR@lastmulticolumn}{#3}% + \defaddtocounter{LWR@lastmulticolumn}{-1}% + \LWR@maybenewtablerow% + \LWR@htmltag{% + td colspan="#4" % + \IfValueT{#2}{ % rows? + rowspan="#2" % + \IfValueT{#1}{% vpos? + \ifstrequal{#1}{b}% + {style="\LWR@print@mbox{vertical-align:bottom}" }{}% + \ifstrequal{#1}{t}% + {style="\LWR@print@mbox{vertical-align:top}" }{}% + }% vpos? + }% rows? + class="td% + \defcounter{LWR@mcolvertbarsl}{0}% + \defcounter{LWR@mcolvertbarsr}{0}% + \defcounter{LWR@mcolvertbarsldash}{0}% + \defcounter{LWR@mcolvertbarsrdash}{0}% + \booltrue{LWR@mcolvertbaronleft}% + \LWR@parsemulticolumnalignment{#5}{\LWR@printmccoltype}% + \LWR@subaddcmidruletrim% + {% + \LWR@getexparray{LWR@trimlrules}% + {\arabic{LWR@tableLaTeXcolindex}}% + }% + {% + \LWR@getexparray{LWR@trimrrules}% + {\arabic{LWR@lastmulticolumn}}% + }% + \ifnumcomp{\value{LWR@mcolvertbarsl}}{=}{1}{ tvertbarl}{}% + \ifnumcomp{\value{LWR@mcolvertbarsl}}{>}{1}{ tvertbarldouble}{}% + \ifnumcomp{\value{LWR@mcolvertbarsr}}{=}{1}{ tvertbarr}{}% + \ifnumcomp{\value{LWR@mcolvertbarsr}}{>}{1}{ tvertbarrdouble}{}% + \ifnumcomp{\value{LWR@mcolvertbarsldash}}{=}{1}{ tvertbarldash}{}% + \ifnumcomp{\value{LWR@mcolvertbarsldash}}{>}{1}% + { tvertbarldoubledash}{}% + \ifnumcomp{\value{LWR@mcolvertbarsrdash}}{=}{1}{ tvertbarrdash}{}% + \ifnumcomp{\value{LWR@mcolvertbarsrdash}}{>}{1}% + { tvertbarrdoubledash}{}% + "% + \LWR@tdstartstyles% + \LWR@addtabularrowcolor% + \LWR@addcmidrulewidth% + \LWR@addcdashline% + \LWR@addtabularhrulecolor% + \LWR@addmulticolvertrulecolor% + \LWR@addformatwpalignment{#5}% + \LWR@tdendstyles% + }% end of the opening table data tag + \boolfalse{LWR@intabularmetadata}% + \LWR@parsemulticolumnalignment{#5}{\LWR@printmccoldata}% } \NewDocumentCommand{\LWR@htmlmulticolumn}{m m +m}% {% -\LWR@tabularhtmlcolumns{\arabic{LWR@tableLaTeXcolindex}}{#1} -\LWR@domulticolumn{#1}{\arabic{LWR@tabhtmlcoltotal}}{#2}{#3}% -\addtocounter{LWR@tableLaTeXcolindex}{#1}% -\addtocounter{LWR@tableLaTeXcolindex}{-1}% -\global\booltrue{LWR@skipatbang}% + \LWR@tabularhtmlcolumns{\arabic{LWR@tableLaTeXcolindex}}{#1}% + \LWR@domulticolumn{#1}{\arabic{LWR@tabhtmlcoltotal}}{#2}{#3}% + \defaddtocounter{LWR@tableLaTeXcolindex}{#1}% + \defaddtocounter{LWR@tableLaTeXcolindex}{-1}% + \booltrue{LWR@skipatbang}% } -\newbool{LWR@starredlongtable} -\boolfalse{LWR@starredlongtable} \providecommand*{\LTcaptype}{table} \NewDocumentCommand{\LWR@longtabledatacaptiontag}{s o +m} {% -\IfValueTF{#2}{% optional given? - \ifblank{#2}% optional empty? - {\LWR@setlatestname{#3}}% empty - {\LWR@setlatestname{#2}}% given and non-empty -}% optional given -{\LWR@setlatestname{#3}}% no optional -\LWR@tabularhtmlcolumns{1}{\arabic{LWR@tabletotalLaTeXcols}} -\LWR@domulticolumn{\arabic{LWR@tabletotalLaTeXcols}}% - {\arabic{LWR@tabhtmlcoltotal}}% - {P}% -{% \LWR@domulticolumn -\IfBooleanTF{#1}% star? -{% yes star - \LWR@figcaption% - \LWR@isolate{#3}% - \endLWR@figcaption% -}% -{% No star: - \ifbool{LWR@starredlongtable}% - {% - \ifblank{#2}% TOC entry - {}% + \IfValueTF{#2}{% optional given? + \ifblank{#2}% optional empty? + {\LWR@setlatestname{#3}}% empty + {\LWR@setlatestname{#2}}% given and non-empty + }% optional given + {\LWR@setlatestname{#3}}% no optional + \LWR@tabularhtmlcolumns{1}{\arabic{LWR@tabletotalLaTeXcols}}% + \LWR@domulticolumn{\arabic{LWR@tabletotalLaTeXcols}}% + {\arabic{LWR@tabhtmlcoltotal}}% + {P}% + {% \LWR@domulticolumn + \IfBooleanTF{#1}% star? + {% yes star + \LWR@figcaption% + \LWR@isolate{#3}% + \endLWR@figcaption% + }% + {% No star: + \ifbool{LWR@starredlongtable}% {% - \refstepcounter{\LTcaptype}% - \protected@edef\@currentlabel{% - \@nameuse{p@\LTcaptype}\@nameuse{the\LTcaptype}% - }% - }% - }{}% - \LWR@figcaption% - \LWR@isolate{\@nameuse{fnum@\LTcaptype}}% - \CaptionSeparator% - \LWR@isolate{#3}% - \endLWR@figcaption% - \ifblank{#2}% TOC entry empty - {}% - {% TOC entry not empty - \IfNoValueTF{#2}% No TOC entry? - {% No TOC entry - \addcontentsline% - {\@nameuse{ext@\LTcaptype}}% - {\LTcaptype}% - {% - \protect\numberline% - {\LWR@isolate{\@nameuse{p@\LTcaptype}}\@nameuse{the\LTcaptype}}% - {\ignorespaces \LWR@isolate{#3}\protect\relax}% - }% - }% end of No TOC entry - {% yes TOC entry - \addcontentsline% - {\@nameuse{ext@\LTcaptype}}% - {\LTcaptype}% + \ifblank{#2}% TOC entry + {}% {% - \protect\numberline% - {\LWR@isolate{\@nameuse{p@\LTcaptype}}\@nameuse{the\LTcaptype}}% - {\ignorespaces \LWR@isolate{#2}\protect\relax}% + \refstepcounter{\LTcaptype}% + \protected@edef\@currentlabel{% + \@nameuse{p@\LTcaptype}\@nameuse{the\LTcaptype}% + }% }% - }% end of yes TOC entry - }% end of TOC entry not empty -}% end of no star -\global\booltrue{LWR@skipatbang}% -}% end of \LWR@domulticolumn - -\addtocounter{LWR@tableLaTeXcolindex}{\arabic{LWR@tabletotalLaTeXcols}} -\addtocounter{LWR@tableLaTeXcolindex}{-1} + }{}% + \LWR@figcaption% + \LWR@isolate{\@nameuse{fnum@\LTcaptype}}% + \CaptionSeparator% + \LWR@isolate{#3}% + \endLWR@figcaption% + \ifblank{#2}% TOC entry empty + {}% + {% TOC entry not empty + \IfNoValueTF{#2}% No TOC entry? + {% No TOC entry + \addcontentsline% + {\@nameuse{ext@\LTcaptype}}% + {\LTcaptype}% + {% + \protect\numberline% + {\LWR@isolate{\@nameuse{p@\LTcaptype}}\@nameuse{the\LTcaptype}}% + {\ignorespaces \LWR@isolate{#3}\protect\relax}% + }% + }% end of No TOC entry + {% yes TOC entry + \addcontentsline% + {\@nameuse{ext@\LTcaptype}}% + {\LTcaptype}% + {% + \protect\numberline% + {\LWR@isolate{\@nameuse{p@\LTcaptype}}\@nameuse{the\LTcaptype}}% + {\ignorespaces \LWR@isolate{#2}\protect\relax}% + }% + }% end of yes TOC entry + }% end of TOC entry not empty + }% end of no star + \booltrue{LWR@skipatbang}% + }% end of \LWR@domulticolumn + \defaddtocounter{LWR@tableLaTeXcolindex}{\value{LWR@tabletotalLaTeXcols}}% + \defaddtocounter{LWR@tableLaTeXcolindex}{-1} } @@ -8881,30 +9031,30 @@ rowspan="#2" % \edef\LWR@atbangspec{\LWR@getexparray{LWR@colatspec}{#1}}% \ifdefempty{\LWR@atbangspec}% {}% - {\addtocounter{LWR@tabhtmlcoltotal}{1}}% + {\defaddtocounter{LWR@tabhtmlcoltotal}{1}}% \edef\LWR@atbangspec{\LWR@getexparray{LWR@colbangspec}{#1}}% \ifdefempty{\LWR@atbangspec}% {}% - {\addtocounter{LWR@tabhtmlcoltotal}{1}}% + {\defaddtocounter{LWR@tabhtmlcoltotal}{1}}% } \newcommand*{\LWR@tabularhtmlcolumns}[2]{% -\setcounter{LWR@tabhtmlcolindex}{#1}% -\setcounter{LWR@tabhtmlcoltotal}{#2}% -\setcounter{LWR@tabhtmlcolend}{#1}% -\addtocounter{LWR@tabhtmlcolend}{#2}% -\ifnumcomp{\value{LWR@tabhtmlcolindex}}{=}{1}{% - \LWR@subtabularhtmlcolumns{leftedge}% -}{}% -\whileboolexpr{% - test {% - \ifnumcomp{\value{LWR@tabhtmlcolindex}}{<}{\value{LWR@tabhtmlcolend}}% + \defcounter{LWR@tabhtmlcolindex}{#1}% + \defcounter{LWR@tabhtmlcoltotal}{#2}% + \defcounter{LWR@tabhtmlcolend}{#1}% + \defaddtocounter{LWR@tabhtmlcolend}{#2}% + \ifnumcomp{\value{LWR@tabhtmlcolindex}}{=}{1}{% + \LWR@subtabularhtmlcolumns{leftedge}% + }{}% + \whileboolexpr{% + test {% + \ifnumcomp{\value{LWR@tabhtmlcolindex}}{<}{\value{LWR@tabhtmlcolend}}% + }% }% -}% -{% - \LWR@subtabularhtmlcolumns{\arabic{LWR@tabhtmlcolindex}}% - \addtocounter{LWR@tabhtmlcolindex}{1}% -}% whiledo + {% + \LWR@subtabularhtmlcolumns{\arabic{LWR@tabhtmlcolindex}}% + \defaddtocounter{LWR@tabhtmlcolindex}{1}% + }% whiledo } \end{warpHTML} \begin{warpHTML} @@ -8964,9 +9114,9 @@ rowspan="#2" % \begin{warpHTML} \newcommand*{\ResumeTabular}{% -\global\boolfalse{LWR@exitingtabular}% -\global\boolfalse{LWR@tabularmutemods}% -\LWR@getmynexttoken% + \boolfalse{LWR@exitingtabular}% + \boolfalse{LWR@tabularmutemods}% + \LWR@getmynexttoken% } \end{warpHTML} @@ -8980,79 +9130,75 @@ rowspan="#2" % \begin{warpHTML} -\newbool{LWR@exitingtabular} - -\newbool{LWR@tabularmutemods} - \newcommand*{\LWR@tabledatacolumntag}% {% -\LWR@traceinfo{LWR@tabledatacolumntag}% -\global\let\LWR@mynextaction\LWR@tabledatasinglecolumntag% -\ifdefequal{\LWR@mynexttoken}{\end}% - {\global\booltrue{LWR@exitingtabular}}{}% -\ifdefequal{\LWR@mynexttoken}{\caption}% - {\global\let\LWR@mynextaction\LWR@donothing}{}% -\ifdefequal{\LWR@mynexttoken}{\multicolumn}% - {\global\let\LWR@mynextaction\LWR@donothing}{}% -\ifdefequal{\LWR@mynexttoken}{\multirow}% - {\global\let\LWR@mynextaction\LWR@donothing}{}% -\ifdefequal{\LWR@mynexttoken}{\multicolumnrow}% - {\global\let\LWR@mynextaction\LWR@donothing}{}% -\ifdefequal{\LWR@mynexttoken}{\noalign}% - {\global\let\LWR@mynextaction\LWR@donothing}{}% -\ifdefequal{\LWR@mynexttoken}{\mrowcell}% - {\global\let\LWR@mynextaction\LWR@donothing}{}% -\ifdefequal{\LWR@mynexttoken}{\mcolrowcell}% - {\global\let\LWR@mynextaction\LWR@donothing}{}% -\ifdefequal{\LWR@mynexttoken}{\TabularMacro}% - {\global\let\LWR@mynextaction\LWR@donothing}{}% -\ifdefequal{\LWR@mynexttoken}{\hline}% - {\global\let\LWR@mynextaction\LWR@donothing}{}% -\ifdefequal{\LWR@mynexttoken}{\firsthline}% - {\global\let\LWR@mynextaction\LWR@donothing}{}% -\ifdefequal{\LWR@mynexttoken}{\lasthline}% - {\global\let\LWR@mynextaction\LWR@donothing}{}% -\ifdefequal{\LWR@mynexttoken}{\toprule}% - {\global\let\LWR@mynextaction\LWR@donothing}{}% -\ifdefequal{\LWR@mynexttoken}{\midrule}% - {\global\let\LWR@mynextaction\LWR@donothing}{}% -\ifdefequal{\LWR@mynexttoken}{\cmidrule}% - {\global\let\LWR@mynextaction\LWR@donothing}{}% -\ifdefequal{\LWR@mynexttoken}{\morecmidrules}% - {\global\let\LWR@mynextaction\LWR@donothing}{}% -\ifdefequal{\LWR@mynexttoken}{\specialrule}% - {\global\let\LWR@mynextaction\LWR@donothing}{}% -\ifdefequal{\LWR@mynexttoken}{\cline}% - {\global\let\LWR@mynextaction\LWR@donothing}{}% -\ifdefequal{\LWR@mynexttoken}{\bottomrule}% - {\global\let\LWR@mynextaction\LWR@donothing}{}% -\ifdefequal{\LWR@mynexttoken}{\rowcolor}% - {\global\let\LWR@mynextaction\LWR@donothing}{}% -\ifdefequal{\LWR@mynexttoken}{\arrayrulecolor}% - {\global\let\LWR@mynextaction\LWR@donothing}{}% -\ifdefequal{\LWR@mynexttoken}{\doublerulesepcolor}% - {\global\let\LWR@mynextaction\LWR@donothing}{}% -\ifdefequal{\LWR@mynexttoken}{\warpprintonly}% - {\global\let\LWR@mynextaction\LWR@donothing}{}% -\ifdefequal{\LWR@mynexttoken}{\warpHTMLonly}% - {\global\let\LWR@mynextaction\LWR@donothing}{}% -\ifdefequal{\LWR@mynexttoken}{\ldelim}% - {\global\let\LWR@mynextaction\LWR@donothing}{}% -\ifdefequal{\LWR@mynexttoken}{\rdelim}% - {\global\let\LWR@mynextaction\LWR@donothing}{}% -\ifdefequal{\LWR@mynexttoken}{\hdashline}% - {\global\let\LWR@mynextaction\LWR@donothing}{}% -\ifdefequal{\LWR@mynexttoken}{\cdashline}% - {\global\let\LWR@mynextaction\LWR@donothing}{}% -\ifdefequal{\LWR@mynexttoken}{\firsthdashline}% - {\global\let\LWR@mynextaction\LWR@donothing}{}% -\ifdefequal{\LWR@mynexttoken}{\lasthdashline}% - {\global\let\LWR@mynextaction\LWR@donothing}{}% -\ifdefequal{\LWR@mynexttoken}{\par}% - {\global\let\LWR@mynextaction\LWR@donothing}{}% -\LWR@traceinfo{LWR@tabledatacolumntag: about to do mynext}% -\LWR@mynextaction% -\LWR@traceinfo{LWR@tabledatacolumntag: done}% + \LWR@traceinfo{LWR@tabledatacolumntag}% + \global\let\LWR@mynextaction\LWR@tabledatasinglecolumntag% + \ifdefequal{\LWR@mynexttoken}{\end}% + {\booltrue{LWR@exitingtabular}}{}% + \ifdefequal{\LWR@mynexttoken}{\caption}% + {\global\let\LWR@mynextaction\LWR@donothing}{}% + \ifdefequal{\LWR@mynexttoken}{\multicolumn}% + {\global\let\LWR@mynextaction\LWR@donothing}{}% + \ifdefequal{\LWR@mynexttoken}{\multirow}% + {\global\let\LWR@mynextaction\LWR@donothing}{}% + \ifdefequal{\LWR@mynexttoken}{\multicolumnrow}% + {\global\let\LWR@mynextaction\LWR@donothing}{}% + \ifdefequal{\LWR@mynexttoken}{\noalign}% + {\global\let\LWR@mynextaction\LWR@donothing}{}% + \ifdefequal{\LWR@mynexttoken}{\mrowcell}% + {\global\let\LWR@mynextaction\LWR@donothing}{}% + \ifdefequal{\LWR@mynexttoken}{\mcolrowcell}% + {\global\let\LWR@mynextaction\LWR@donothing}{}% + \ifdefequal{\LWR@mynexttoken}{\TabularMacro}% + {\global\let\LWR@mynextaction\LWR@donothing}{}% + \ifdefequal{\LWR@mynexttoken}{\hline}% + {\global\let\LWR@mynextaction\LWR@donothing}{}% + \ifdefequal{\LWR@mynexttoken}{\firsthline}% + {\global\let\LWR@mynextaction\LWR@donothing}{}% + \ifdefequal{\LWR@mynexttoken}{\lasthline}% + {\global\let\LWR@mynextaction\LWR@donothing}{}% + \ifdefequal{\LWR@mynexttoken}{\toprule}% + {\global\let\LWR@mynextaction\LWR@donothing}{}% + \ifdefequal{\LWR@mynexttoken}{\midrule}% + {\global\let\LWR@mynextaction\LWR@donothing}{}% + \ifdefequal{\LWR@mynexttoken}{\cmidrule}% + {\global\let\LWR@mynextaction\LWR@donothing}{}% + \ifdefequal{\LWR@mynexttoken}{\morecmidrules}% + {\global\let\LWR@mynextaction\LWR@donothing}{}% + \ifdefequal{\LWR@mynexttoken}{\specialrule}% + {\global\let\LWR@mynextaction\LWR@donothing}{}% + \ifdefequal{\LWR@mynexttoken}{\cline}% + {\global\let\LWR@mynextaction\LWR@donothing}{}% + \ifdefequal{\LWR@mynexttoken}{\bottomrule}% + {\global\let\LWR@mynextaction\LWR@donothing}{}% + \ifdefequal{\LWR@mynexttoken}{\rowcolor}% + {\global\let\LWR@mynextaction\LWR@donothing}{}% + \ifdefequal{\LWR@mynexttoken}{\arrayrulecolor}% + {\global\let\LWR@mynextaction\LWR@donothing}{}% + \ifdefequal{\LWR@mynexttoken}{\doublerulesepcolor}% + {\global\let\LWR@mynextaction\LWR@donothing}{}% + \ifdefequal{\LWR@mynexttoken}{\warpprintonly}% + {\global\let\LWR@mynextaction\LWR@donothing}{}% + \ifdefequal{\LWR@mynexttoken}{\warpHTMLonly}% + {\global\let\LWR@mynextaction\LWR@donothing}{}% + \ifdefequal{\LWR@mynexttoken}{\ldelim}% + {\global\let\LWR@mynextaction\LWR@donothing}{}% + \ifdefequal{\LWR@mynexttoken}{\rdelim}% + {\global\let\LWR@mynextaction\LWR@donothing}{}% + \ifdefequal{\LWR@mynexttoken}{\hdashline}% + {\global\let\LWR@mynextaction\LWR@donothing}{}% + \ifdefequal{\LWR@mynexttoken}{\cdashline}% + {\global\let\LWR@mynextaction\LWR@donothing}{}% + \ifdefequal{\LWR@mynexttoken}{\firsthdashline}% + {\global\let\LWR@mynextaction\LWR@donothing}{}% + \ifdefequal{\LWR@mynexttoken}{\lasthdashline}% + {\global\let\LWR@mynextaction\LWR@donothing}{}% + \ifdefequal{\LWR@mynexttoken}{\par}% + {\global\let\LWR@mynextaction\LWR@donothing}{}% + \LWR@traceinfo{LWR@tabledatacolumntag: about to do mynext}% + \LWR@mynextaction% + \LWR@traceinfo{LWR@tabledatacolumntag: done}% } \end{warpHTML} @@ -9073,51 +9219,46 @@ rowspan="#2" % \begin{warpHTML} -\LetLtxMacro\toprule\relax -\LetLtxMacro\midrule\relax -\LetLtxMacro\cmidrule\cline -\LetLtxMacro\bottomrule\relax -\LetLtxMacro\addlinespace\relax -\LetLtxMacro\morecmidrules\relax -\LetLtxMacro\specialrule\relax - -\newcommand*{\toprule}[1][]{\hline} -\newcommand*{\midrule}[1][]{\hline} -\LetLtxMacro\cmidrule\cline -\newcommand*{\bottomrule}[1][]{\hline} -\newcommand*{\addlinespace}[1][]{} -\newcommand*{\morecmidrules}{} -\newcommand*{\specialrule}[3]{\hline} +\providecommand*{\toprule}[1][]{\hline} +\providecommand*{\midrule}[1][]{\hline} +\providecommand*{\cmidrule}{\cline} +\providecommand*{\bottomrule}[1][]{\hline} +\providecommand*{\addlinespace}[1][]{} +\providecommand*{\morecmidrules}{} +\providecommand*{\specialrule}[3]{\hline} \LetLtxMacro\LWR@orignoalign\noalign \newcommand{\LWR@tabularnoalign}[1]{% -\begingroup% -\global\advance\rownum\m@ne% -\renewcommand*{\LWR@xcolorrowHTMLcolor}{}% -\multicolumn{\value{LWR@tabletotalLaTeXcols}}{l}{#1} \\ -\endgroup% -\LWR@getmynexttoken% + \advance\rownum\m@ne% + \LetLtxMacro\LWR@save@xcolorrowHTMLcolor\LWR@xcolorrowHTMLcolor% + \renewcommand*{\LWR@xcolorrowHTMLcolor}{}% + \multicolumn{\value{LWR@tabletotalLaTeXcols}}{l}{#1} \\ + \LetLtxMacro\LWR@xcolorrowHTMLcolor\LWR@save@xcolorrowHTMLcolor% + % \@rowc@lors% + \LWR@getmynexttoken% } \AtBeginDocument{ + \@ifpackageloaded{lwarp-tabls} { -\newcommand*{\LWR@HTMLhline}[1][]{% - \ifbool{FormatWP}% - {\LWR@docmidrule{1-\arabic{LWR@tabletotalLaTeXcols}}}% - {\addtocounter{LWR@hlines}{1}}% - \LWR@getmynexttoken}% + \newcommand*{\LWR@HTMLhline}[1][]{% + \ifbool{FormatWP}% + {\LWR@docmidrule{1-\arabic{LWR@tabletotalLaTeXcols}}}% + {\defaddtocounter{LWR@hlines}{1}}% + \LWR@getmynexttoken}% } { -\newcommand*{\LWR@HTMLhline}{% - \ifbool{FormatWP}% - {\LWR@docmidrule{1-\arabic{LWR@tabletotalLaTeXcols}}}% - {\addtocounter{LWR@hlines}{1}}% - \LWR@getmynexttoken}% + \newcommand*{\LWR@HTMLhline}{% + \ifbool{FormatWP}% + {\LWR@docmidrule{1-\arabic{LWR@tabletotalLaTeXcols}}}% + {\defaddtocounter{LWR@hlines}{1}}% + \LWR@getmynexttoken}% } + }% AtBeginDocument \NewDocumentCommand{\LWR@HTMLcline}{m}% -{\LWR@docmidrule{#1}\LWR@getmynexttoken}% + {\LWR@docmidrule{#1}\LWR@getmynexttoken}% \newcommand{\LWR@tabular@warpprintonly}[1]{% \ifbool{warpingprint}{#1}{}% @@ -9142,148 +9283,153 @@ rowspan="#2" % \NewDocumentCommand{\LWR@HTML@@tabular}{d<> o m} {% -\LWR@traceinfo{LWR@HTML@@tabular started}% -\ifnumcomp{\value{LWR@spandepth}}{>}{0}{% - \PackageWarning{lwarp}{% - A tabular is being used inside a span such as\MessageBreak - a minipage. Some formatting may not be correct\MessageBreak - in the tabular.\MessageBreak - It is recommended to use \protect\warpprintonly\space or the\MessageBreak - warpprint environment to isolate the span to\MessageBreak - print-only,% - } -}{}% -\addtocounter{LWR@tabulardepth}{1}% -\global\boolfalse{LWR@startedrow}% -\setcounter{LWR@hlines}{0}% -\setcounter{LWR@hdashedlines}{0}% -\global\boolfalse{LWR@doingtbrule}% -\global\boolfalse{LWR@doingcmidrule}% -\LWR@nullifyNoAutoSpacing% -\global\boolfalse{LWR@exitingtabular}% -\global\boolfalse{LWR@tabularmutemods}% -\boolfalse{LWR@usedmultirow} -\boolfalse{LWR@foundmrowcell} -\global\booltrue{LWR@intabularmetadata}% -\LWR@traceinfo{LWR@@tabular: About to LWR@forecenewpage.}% -\LWR@forcenewpage -\LWR@htmlblocktag{table}% -\LWR@parsetablecols{#3}% -\LWR@stoppars% -\setcounter{LWR@tableLaTeXcolindex}{1}% -\global\boolfalse{LWR@tabularcelladded}% -\LWR@clearmidrules% -\LetLtxMacro{\\}{\LWR@tabularendofline}% -\LetLtxMacro\warpprintonly\LWR@tabular@warpprintonly% -\LetLtxMacro\arrayrulecolor\arrayrulecolornexttoken% -\LetLtxMacro\doublerulesepcolor\doublerulesepcolornexttoken% -\gdef\LWR@columnHTMLcolor{}% -\gdef\LWR@rowHTMLcolor{}% -\gdef\LWR@cellHTMLcolor{}% -\@rowcolors% -\ifdefvoid{\LWR@ruleHTMLcolor}% - {\edef\LWR@vertruleHTMLcolor{black}}% - {\edef\LWR@vertruleHTMLcolor{\LWR@origpound\LWR@ruleHTMLcolor}}% -\setcounter{LWR@cellcolordepth}{0}% -\LWR@traceinfo{LWR@@HTML@tabular: redefining macros}% -\LetLtxMacro\noalign\LWR@tabularnoalign% -\LetLtxMacro\hline\LWR@HTMLhline% -\LetLtxMacro\cline\LWR@HTMLcline% -\DeclareDocumentCommand{\hdashline}{o}{% - \ifbool{FormatWP}% - {\LWR@docdashline{1-\arabic{LWR@tabletotalLaTeXcols}}}% - {\addtocounter{LWR@hdashedlines}{1}}% - \LWR@getmynexttoken% -}% -\DeclareDocumentCommand{\cdashline}{m}{% - \LWR@docdashline{##1}\LWR@getmynexttoken% -}% -\DeclareDocumentCommand{\firsthdashline}{o}{% - \ifbool{FormatWP}% - {\LWR@docdashline{1-\arabic{LWR@tabletotalLaTeXcols}}}% - {\addtocounter{LWR@hdashedlines}{1}}% - \LWR@getmynexttoken% -}% -\DeclareDocumentCommand{\lasthdashline}{o}{% - \ifbool{FormatWP}% - {\LWR@docdashline{1-\arabic{LWR@tabletotalLaTeXcols}}}% - {\addtocounter{LWR@hdashedlines}{1}}% + \LWR@traceinfo{LWR@HTML@@tabular started}% + \ifnumcomp{\value{LWR@spandepth}}{>}{0}{% + \PackageWarning{lwarp}{% + A tabular is being used inside a span such as\MessageBreak + a minipage. Some formatting may not be correct\MessageBreak + in the tabular.\MessageBreak + It is recommended to use \protect\warpprintonly\space or the\MessageBreak + warpprint environment to isolate the span to\MessageBreak + print-only,% + } + }{}% + \addtocounter{LWR@tabulardepth}{1}% + \boolfalse{LWR@startedrow}% + \defcounter{LWR@hlines}{0}% + \defcounter{LWR@hdashedlines}{0}% + \boolfalse{LWR@doingtbrule}% + \boolfalse{LWR@doingcmidrule}% + \LWR@nullifyNoAutoSpacing% + \boolfalse{LWR@exitingtabular}% + \boolfalse{LWR@tabularmutemods}% + \boolfalse{LWR@usedmultirow}% + \boolfalse{LWR@foundmrowcell}% + \renewcommand*{\LWR@multicoltext}{}% + \booltrue{LWR@intabularmetadata}% + \LWR@traceinfo{LWR@@tabular: About to LWR@forecenewpage.}% + \LWR@forcenewpage + \LWR@htmlblocktag{table}% + \LWR@parsetablecols{#3}% + \LWR@stoppars% + \defcounter{LWR@tableLaTeXcolindex}{1}% + \global\boolfalse{LWR@tabularcelladded}% + \LWR@clearmidrules% + \LetLtxMacro{\\}{\LWR@tabularendofline}% + \LetLtxMacro\warpprintonly\LWR@tabular@warpprintonly% + \LetLtxMacro\arrayrulecolor\arrayrulecolornexttoken% + \LetLtxMacro\doublerulesepcolor\doublerulesepcolornexttoken% + \def\LWR@columnHTMLcolor{}% + \def\LWR@rowHTMLcolor{}% + \def\LWR@cellHTMLcolor{}% + \@rowcolors% + \ifdefvoid{\LWR@ruleHTMLcolor}% + {\edef\LWR@vertruleHTMLcolor{black}}% + {\edef\LWR@vertruleHTMLcolor{\LWR@origpound\LWR@ruleHTMLcolor}}% + \defcounter{LWR@cellcolordepth}{0}% + \LWR@traceinfo{LWR@@HTML@tabular: redefining macros}% + \LetLtxMacro\noalign\LWR@tabularnoalign% + \LetLtxMacro\hline\LWR@HTMLhline% + \LetLtxMacro\cline\LWR@HTMLcline% + \DeclareDocumentCommand{\hdashline}{o}{% + \ifbool{FormatWP}% + {\LWR@docdashline{1-\arabic{LWR@tabletotalLaTeXcols}}}% + {\defaddtocounter{LWR@hdashedlines}{1}}% + \LWR@getmynexttoken% + }% + \DeclareDocumentCommand{\cdashline}{m}{% + \LWR@docdashline{##1}\LWR@getmynexttoken% + }% + \DeclareDocumentCommand{\firsthdashline}{o}{% + \ifbool{FormatWP}% + {\LWR@docdashline{1-\arabic{LWR@tabletotalLaTeXcols}}}% + {\defaddtocounter{LWR@hdashedlines}{1}}% + \LWR@getmynexttoken% + }% + \DeclareDocumentCommand{\lasthdashline}{o}{% + \ifbool{FormatWP}% + {\LWR@docdashline{1-\arabic{LWR@tabletotalLaTeXcols}}}% + {\defaddtocounter{LWR@hdashedlines}{1}}% + \LWR@getmynexttoken% + }% + \renewcommand{\multicolumn}{\LWR@htmlmulticolumn}% + \renewcommand*{\mrowcell}{% + \LWR@maybenewtablerow% + \LWR@tabularleftedge% + \booltrue{LWR@skippingmrowcell}% + \booltrue{LWR@foundmrowcell}% + }% + \renewcommand*{\mcolrowcell}{% + \LWR@maybenewtablerow% + \booltrue{LWR@skippingmcolrowcell}% + \booltrue{LWR@foundmrowcell}% + }% + \LetLtxMacro\caption\LWR@longtabledatacaptiontag% + \boolfalse{LWR@tableparcell}% + \boolfalse{LWR@skippingmrowcell}% + \boolfalse{LWR@skippingmcolrowcell}% + \boolfalse{LWR@skipatbang}% + \boolfalse{LWR@emptyatbang}% + \StartDefiningTabulars% + \protected\gdef&{\LWR@tabularampersand}% + \booltrue{LWR@forceminipagefullwidth}% + \addtocounter{LWR@tabularpardepth}{1}% + \LWR@traceinfo{LWR@@HTML@tabular: about to LWR@getmynexttoken}% \LWR@getmynexttoken% }% -\renewcommand{\multicolumn}{\LWR@htmlmulticolumn}% -\renewcommand*{\mrowcell}{% - \LWR@maybenewtablerow% - \LWR@tabularleftedge% - \global\booltrue{LWR@skippingmrowcell}% - \booltrue{LWR@foundmrowcell}% -}% -\renewcommand*{\mcolrowcell}{% - \LWR@maybenewtablerow% - \global\booltrue{LWR@skippingmcolrowcell}% - \booltrue{LWR@foundmrowcell}% -}% -\LetLtxMacro\caption\LWR@longtabledatacaptiontag% -\global\boolfalse{LWR@tableparcell}% -\global\boolfalse{LWR@skippingmrowcell}% -\global\boolfalse{LWR@skippingmcolrowcell}% -\global\boolfalse{LWR@skipatbang}% -\global\boolfalse{LWR@emptyatbang}% -\StartDefiningTabulars% -\protected\gdef&{\LWR@tabularampersand}% -\booltrue{LWR@forceminipagefullwidth} -\addtocounter{LWR@tabularpardepth}{1}% -\LWR@traceinfo{LWR@@HTML@tabular: about to LWR@getmynexttoken}% -\LWR@getmynexttoken% -}% \newcommand*{\LWR@HTML@endtabular} {% -\LWR@traceinfo{LWR@HTML@endtabular}% -\addtocounter{LWR@tabularpardepth}{-1}% -\ifboolexpr{% - test {% - \ifnumcomp{\value{LWR@tableLaTeXcolindex}}{<}{\value{LWR@tabletotalLaTeXcols}} - } or % - (% - bool{LWR@intabularmetadata} and% - not bool{LWR@tabularcelladded} and% + \LWR@traceinfo{LWR@HTML@endtabular}% + \addtocounter{LWR@tabularpardepth}{-1}% + \ifboolexpr{% test {% - \ifnumcomp{\value{LWR@tableLaTeXcolindex}}{=}{\value{LWR@tabletotalLaTeXcols}}% - }% - )% -}% -{% - \LWR@tabularfinishrow% -}% -{% - \LWR@closetabledatacell% -}% -\LWR@htmlblocktag{/tr}% -\@rowc@lors% -\LWR@htmlblocktag{/table}% -\global\boolfalse{LWR@intabularmetadata}% -\addtocounter{LWR@tabulardepth}{-1}% -\protected\gdef&{\LWR@origampmacro}% -\StopDefiningTabulars% -\ifbool{LWR@usedmultirow}{% - \ifbool{LWR@foundmrowcell}% - {}% - {% - \PackageError{lwarp}% - {% - When using \protect\multirow, \protect\multicolumnrow,\MessageBreak - or the bigdelim package,\MessageBreak - place \protect\mrowcell\space or \protect\mcolrowcell\MessageBreak - in empty cells which are to be skipped.\MessageBreak - See the lwarp package documentation:\MessageBreak - "Special cases and limitations" -> "Tabular" + \ifnumcomp{\value{LWR@tableLaTeXcolindex}}{<}% + {\value{LWR@tabletotalLaTeXcols}} + } or % + (% + bool{LWR@intabularmetadata} and% + not bool{LWR@tabularcelladded} and% + test {% + \ifnumcomp{\value{LWR@tableLaTeXcolindex}}{=}% + {\value{LWR@tabletotalLaTeXcols}}% }% + )% + }% + {% + \LWR@tabularfinishrow% + }% + {% + \LWR@closetabledatacell% + }% + \LWR@htmlblocktag{/tr}% + \@rowc@lors% + \LWR@htmlblocktag{/table}% + \boolfalse{LWR@intabularmetadata}% + \addtocounter{LWR@tabulardepth}{-1}% + \ifnumequal{\value{LWR@tabulardepth}}{0}{% + \protected\gdef&{\LWR@origampmacro}% + \StopDefiningTabulars% + }{}% + \ifbool{LWR@usedmultirow}{% + \ifbool{LWR@foundmrowcell}% + {}% {% - See the lwarp package documentation:\MessageBreak - "Special cases and limitations" -> "Tabular". + \PackageError{lwarp}% + {% + When using \protect\multirow, \protect\multicolumnrow,\MessageBreak + or the bigdelim package,\MessageBreak + place \protect\mrowcell\space or \protect\mcolrowcell\MessageBreak + in empty cells which are to be skipped.\MessageBreak + See the Lwarp package documentation:\MessageBreak + "Special cases and limitations" -> "Tabular" + }% + {% + See the Lwarp package documentation:\MessageBreak + "Special cases and limitations" -> "Tabular". + }% }% - }% -}{}% -\LWR@traceinfo{LWR@HTML@endtabular finished}% + }{}% + \LWR@traceinfo{LWR@HTML@endtabular finished}% } \csletcs{LWR@HTML@endtabular*}{LWR@HTML@endtabular} @@ -9306,12 +9452,12 @@ rowspan="#2" % \providecommand*{\@currentlabelname}{} \def\LWR@stripperiod#1.\ltx@empty#2\@nil{#1}% \newcommand*{\LWR@setlatestname}[1]{% -\GetTitleStringExpand{#1}% -\edef\@currentlabelname{\detokenize\expandafter{\GetTitleStringResult}}% -\edef\@currentlabelname{% - \expandafter\LWR@stripperiod\@currentlabelname% - \ltx@empty.\ltx@empty\@nil% -}% + \GetTitleStringExpand{#1}% + \edef\@currentlabelname{\detokenize\expandafter{\GetTitleStringResult}}% + \edef\@currentlabelname{% + \expandafter\LWR@stripperiod\@currentlabelname% + \ltx@empty.\ltx@empty\@nil% + }% } \def\LWR@setref#1#2#3{% @@ -9333,53 +9479,70 @@ rowspan="#2" % \expandafter\LWR@setref\csname r@#1@lwarp\endcsname\LWR@fourthoffour{#1}% } \newcommand*{\LWR@lwarplabel}[1]{% -\LWR@traceinfo{LWR@lwarplabel !#1!}% -\LWR@setlatestname{\@currentlabelname}% - \@bsphack% - \protected@write\@auxout{}% - {\string\newlabel{#1@lwarp}{% - {\@currentlabelname}% - {\ifbool{FileSectionNames}{\LWR@thisfilename}{\arabic{LWR@htmlfilenumber}}}% - {\arabic{LWR@lateximagedepth}}% - {\arabic{LWR@lateximagenumber}}% - }}% - \@esphack% + \LWR@traceinfo{LWR@lwarplabel !#1!}% + \LWR@setlatestname{\@currentlabelname}% + \@bsphack% + \protected@write\@auxout{}% + {% + \string\newlabel{#1@lwarp}{% + {\@currentlabelname}% + {% + \ifbool{FileSectionNames}% + {\LWR@thisfilename}% + {\arabic{LWR@htmlfilenumber}}% + }% + {\arabic{LWR@lateximagedepth}}% + {\arabic{LWR@lateximagenumber}}% + }% + }% + \@esphack% } \newcommand*{\LWR@sublabel}[1]{% -\LWR@traceinfo{LWR@sublabel !#1!}% -\ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}% -{}% -{% not lateximage - \LWR@sanitize{#1}% - \ifbool{LWR@doingstartpars}% - {% pars allowed - \ifbool{LWR@doingapar}% - {% par started - \LWR@htmltag{a \LWR@print@mbox{id="\LWR@sanitized"}}\LWR@htmltag{/a}% - }% par started - {% par not started - \LWR@stoppars% - \LWR@htmltag{a \LWR@print@mbox{id="\LWR@sanitized"}}\LWR@htmltag{/a}% - \LWR@startpars% - }% par not started - }% pars allowed - {% pars not allowed - \LWR@htmltag{a \LWR@print@mbox{id="\LWR@sanitized"}}\LWR@htmltag{/a}% - }% pars not allowed -}% not lateximage + \LWR@traceinfo{LWR@sublabel !#1!}% + \ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}% + {}% + {% not lateximage + \LWR@sanitize{#1}% + \ifbool{LWR@doingstartpars}% + {% pars allowed + \ifbool{LWR@doingapar}% + {% par started + \LWR@htmltag{a \LWR@print@mbox{id="\LWR@sanitized"}}% + \LWR@htmltag{/a}% + }% par started + {% par not started + \LWR@stoppars% + \LWR@htmltag{a \LWR@print@mbox{id="\LWR@sanitized"}}% + \LWR@htmltag{/a}% + \LWR@startpars% + }% par not started + }% pars allowed + {% pars not allowed + \LWR@htmltag{a \LWR@print@mbox{id="\LWR@sanitized"}}% + \LWR@htmltag{/a}% + }% pars not allowed + }% not lateximage } \NewDocumentCommand{\LWR@new@label}{d() m o}{% -\LWR@traceinfo{LWR@new@label: starting}% -\LWR@traceinfo{LWR@new@label: !#2!}% -\LWR@orig@label{#2}% -\LWR@traceinfo{LWR@new@label: filesectionnames is \ifbool{FileSectionNames}{true}{false}}% -\LWR@traceinfo{LWR@new@label: LWR@thisfilename is !\LWR@thisfilename!}% -\LWR@traceinfo{LWR@new@label: LWR@htmlfilenumber is \arabic{LWR@htmlfilenumber}}% -\LWR@lwarplabel{#2}% -\LWR@sublabel{#2}% -\LWR@traceinfo{LWR@new@label: done}% + \LWR@traceinfo{LWR@new@label: starting}% + \LWR@traceinfo{LWR@new@label: !#2!}% + \LWR@orig@label{#2}% + \LWR@traceinfo{% + LWR@new@label: filesectionnames is % + \ifbool{FileSectionNames}{true}{false}% + }% + \LWR@traceinfo{% + LWR@new@label: LWR@thisfilename is !\LWR@thisfilename!% + }% + \LWR@traceinfo{% + LWR@new@label: LWR@htmlfilenumber is \arabic{LWR@htmlfilenumber}% + }% + \LWR@lwarplabel{#2}% + \LWR@sublabel{#2}% + % \@esphack% + \LWR@traceinfo{LWR@new@label: done}% } @@ -9392,48 +9555,48 @@ rowspan="#2" % \newcommand*{\LWR@startref}[1] {% -\LWR@sanitize{#1}% -\LWR@traceinfo{LWR@startref A: !#1!}% -\LWR@htmltag{a href="% -\LWR@traceinfo{LWR@startref B}% -\LWR@print@mbox{\LWR@htmlrefsectionfilename{#1}}% -\LWR@traceinfo{LWR@startref C}% -\LWR@origpound% -\LWR@traceinfo{LWR@startref D: !#1!}% -\ifcsundef{r@#1@lwarp}% -{% - \LWR@traceinfo{LWR@startref D0: ??}% - ??% -}% -{% - \ifthenelse{\cnttest{\LWR@lateximagedepthref{#1}}{>}{0}}% - {% - \LWR@ImagesName\LWR@lateximagenumberref{#1}% - }% - {% - \LWR@traceinfo{LWR@startref D3}% - \LWR@print@mbox{\LWR@sanitized}% - }% -}% -\LWR@traceinfo{LWR@startref E}% -"% -\LWR@addlinktitle% -}% -\LWR@traceinfo{LWR@startref F}% + \LWR@sanitize{#1}% + \LWR@traceinfo{LWR@startref A: !#1!}% + \LWR@htmltag{a href="% + \LWR@traceinfo{LWR@startref B}% + \LWR@print@mbox{\LWR@htmlrefsectionfilename{#1}}% + \LWR@traceinfo{LWR@startref C}% + \LWR@origpound% + \LWR@traceinfo{LWR@startref D: !#1!}% + \ifcsundef{r@#1@lwarp}% + {% + \LWR@traceinfo{LWR@startref D0: ??}% + ??% + }% + {% + \ifthenelse{\cnttest{\LWR@lateximagedepthref{#1}}{>}{0}}% + {% + \LWR@ImagesName\LWR@lateximagenumberref{#1}% + }% + {% + \LWR@traceinfo{LWR@startref D3}% + \LWR@print@mbox{\LWR@sanitized}% + }% + }% + \LWR@traceinfo{LWR@startref E}% + "% + \LWR@addlinktitle% + }% + \LWR@traceinfo{LWR@startref F}% } \NewDocumentCommand{\LWR@subnewref}{m m}{% -\LWR@traceinfo{LWR@subnewref #1 #2}% -\LWR@startref{#1}% -\LWR@print@ref{#2}% -\LWR@htmltag{/a}% + \LWR@traceinfo{LWR@subnewref #1 #2}% + \LWR@startref{#1}% + \LWR@print@ref{#2}% + \LWR@htmltag{/a}% } \NewDocumentCommand{\LWR@HTML@ref}{s m}{% -\LWR@traceinfo{LWR@HTML@ref !#2!}% -\IfBooleanTF{#1}% -{\LWR@print@ref{#2}}% -{\LWR@subnewref{#2}{#2}}% + \LWR@traceinfo{LWR@HTML@ref !#2!}% + \IfBooleanTF{#1}% + {\LWR@print@ref{#2}}% + {\LWR@subnewref{#2}{#2}}% } \LWR@formatted{ref} @@ -9443,19 +9606,19 @@ rowspan="#2" % \newcommand*{\pagerefPageFor}{see } \NewDocumentCommand{\LWR@new@pageref}{s m}{% -\IfBooleanTF{#1}% -{(\pagerefPageFor\LWR@print@ref{#2})}% -{(\cpageref{#2})}% + \IfBooleanTF{#1}% + {(\pagerefPageFor\LWR@print@ref{#2})}% + {(\cpageref{#2})}% } \newrobustcmd*{\nameref}[1]{% -\LWR@traceinfo{nameref}% -\LWR@startref{#1}% -\LWR@traceinfo{nameref B}% -\LWR@nameref{#1}% -\LWR@traceinfo{nameref C}% -\LWR@htmltag{/a}% -\LWR@traceinfo{nameref: done}% + \LWR@traceinfo{nameref}% + \LWR@startref{#1}% + \LWR@traceinfo{nameref B}% + \LWR@nameref{#1}% + \LWR@traceinfo{nameref C}% + \LWR@htmltag{/a}% + \LWR@traceinfo{nameref: done}% } \LetLtxMacro\Nameref\nameref @@ -9464,9 +9627,11 @@ rowspan="#2" % \AtBeginDocument{ + \def\@currentHref{% -autopage-\theLWR@currentautosec% + autopage-\theLWR@currentautosec% } + } \newcommand*{\LWR@linkcatcodes}{% @@ -9585,53 +9750,57 @@ autopage-\theLWR@currentautosec% \begin{warpHTML} \NewDocumentCommand{\LWR@floatbegin}{m o}{% -\ifbool{FormatWP}{\newline}{}% -\LWR@stoppars -\addtocounter{LWR@thisautoid}{1}% -\booltrue{LWR@freezethisautoid}% -\begingroup% -\LWR@print@raggedright% -\LWR@htmltag{% - figure id="\LWR@print@mbox{autoid-\arabic{LWR@thisautoid}}" % space - class="#1 \@nameuse{LWR@floatstyle@#1}"% -}% -\ifbool{FormatWP}{% - \LWR@orignewline% - \LWR@BlockClassWP{}{}{wp#1}% -}{}% -\renewcommand*{\@captype}{#1}% -\caption@settype{#1}% -\LWR@startpars% -\ifboolexpr{bool{FormatWP} and bool{WPMarkFloats}}{% + \ifbool{FormatWP}{\newline}{}% + \LWR@stoppars% + \addtocounter{LWR@thisautoid}{1}% + \booltrue{LWR@freezethisautoid}% + \begingroup% + \LWR@print@raggedright% + \LWR@htmltag{% + figure id="\LWR@print@mbox{autoid-\arabic{LWR@thisautoid}}" % space + class="#1 \@nameuse{LWR@floatstyle@#1}"% + }% + \ifbool{FormatWP}{% + \LWR@orignewline% + \LWR@BlockClassWP{}{}{wp#1}% + }{}% + \renewcommand*{\@captype}{#1}% + \caption@settype{#1}% + \LWR@startpars% + \ifboolexpr{bool{FormatWP} and bool{WPMarkFloats}}{% -=== begin #1 === + === begin #1 === -}{}% -\LWR@futurenonspacelet\LWR@mynexttoken\LWR@floatalignment% + }{}% + \LWR@futurenonspacelet\LWR@mynexttoken\LWR@floatalignment% } \AtBeginDocument{ + \@ifpackageloaded{tocbasic}{ + \appto\figure@atbegin{% -\LWR@futurenonspacelet\LWR@mynexttoken\LWR@floatalignment% -} -}{} + \LWR@futurenonspacelet\LWR@mynexttoken\LWR@floatalignment% } + +}{}% tocbasic + +}% AtBeginDocument \let\@float\LWR@floatbegin \let\@dblfloat\LWR@floatbegin \newcommand*{\LWR@floatend}{% -\LWR@endfloatalignment% -\ifboolexpr{bool{FormatWP} and bool{WPMarkFloats}}{% + \LWR@endfloatalignment% + \ifboolexpr{bool{FormatWP} and bool{WPMarkFloats}}{% -=== end === + === end === -}{}% -\LWR@stoppars% -\ifbool{FormatWP}{\endLWR@BlockClassWP}{}% -\LWR@htmlelementend{figure}% -\endgroup% -\boolfalse{LWR@freezethisautoid}% -\LWR@startpars% -\ifbool{FormatWP}{\newline}{}% + }{}% + \LWR@stoppars% + \ifbool{FormatWP}{\endLWR@BlockClassWP}{}% + \LWR@htmlelementend{figure}% + \endgroup% + \boolfalse{LWR@freezethisautoid}% + \LWR@startpars% + \ifbool{FormatWP}{\newline}{}% } \let\end@float\LWR@floatend \let\end@dblfloat\LWR@floatend @@ -9643,16 +9812,16 @@ autopage-\theLWR@currentautosec% \newbool{LWR@freezethisautoid} \boolfalse{LWR@freezethisautoid} +\newcommand*{\LWR@forcenewautoidanchor}{% + \addtocounter{LWR@thisautoid}{1}% + \LWR@htmltag{a id="\LWR@print@mbox{autoid-\arabic{LWR@thisautoid}}"}% + \LWR@htmltag{/a}% +} + \newcommand*{\LWR@newautoidanchor}{% -\ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}% -{}% -{% - \ifbool{LWR@freezethisautoid}{}{% - \addtocounter{LWR@thisautoid}{1}% - \LWR@htmltag{a id="\LWR@print@mbox{autoid-\arabic{LWR@thisautoid}}"}% - \LWR@htmltag{/a}% - }% -}% + \ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}% + {}% + {\ifbool{LWR@freezethisautoid}{}{\LWR@forcenewautoidanchor}}% } \newcommand*{\@captype}{} @@ -9660,23 +9829,25 @@ autopage-\theLWR@currentautosec% \newcommand*{\LWR@floatalignmentname}{} \newcommand*{\LWR@floatalignment}{% -\ifdefstrequal{\LWR@mynexttoken}{\centering}{% - \center% - \renewcommand*{\LWR@floatalignmentname}{center}% -}{}% -\ifdefstrequal{\LWR@mynexttoken}{\raggedright}{% - \flushleft% - \renewcommand*{\LWR@floatalignmentname}{flushleft}% -}{}% -\ifdefstrequal{\LWR@mynexttoken}{\raggedleft}{% - \flushright% - \renewcommand*{\LWR@floatalignmentname}{flushright}% -}{}% + \ifdefstrequal{\LWR@mynexttoken}{\centering}{% + \center% + \renewcommand*{\LWR@floatalignmentname}{center}% + }{}% + \ifdefstrequal{\LWR@mynexttoken}{\raggedright}{% + \flushleft% + \renewcommand*{\LWR@floatalignmentname}{flushleft}% + }{}% + \ifdefstrequal{\LWR@mynexttoken}{\raggedleft}{% + \flushright% + \renewcommand*{\LWR@floatalignmentname}{flushright}% + }{}% } \newcommand*{\LWR@endfloatalignment}{% -\ifdefvoid{\LWR@floatalignmentname}{}{\@nameuse{end\LWR@floatalignmentname}}% -\renewcommand*{\LWR@floatalignmentname}{}% + \ifdefvoid{\LWR@floatalignmentname}% + {}% + {\@nameuse{end\LWR@floatalignmentname}}% + \renewcommand*{\LWR@floatalignmentname}{}% } @@ -9701,33 +9872,34 @@ autopage-\theLWR@currentautosec% \setcounter{LWR@latestautopage}{1} \newenvironment*{LWR@figcaption} - { + {% \ifbool{FormatWP}{% - \BlockClass[font-style:italic]{figurecaption} - }{ - \BlockClass{figurecaption} + \BlockClass[font-style:italic]{figurecaption}% + }{% + \BlockClass{figurecaption}% }% - } + }% {\endBlockClass} \newcommand*{\LWR@HTML@caption@begin}[1] {% -\LWR@traceinfo{LWR@HTML@caption@begin}% -\begingroup% -\RenewDocumentEnvironment{minipage}{O{t} o O{t} m}{}{}% -\RenewDocumentCommand{\parbox}{O{t} O{} O{t} m +m}{##5}% -\LWR@figcaption% -\LWR@traceinfo{LWR@HTML@caption@begin: about to LWR@origcaption@begin}% -\LWR@print@caption@begin{#1}% -\LWR@traceinfo{LWR@HTML@caption@begin: done}% + \LWR@traceinfo{LWR@HTML@caption@begin}% + \begingroup% + \RenewDocumentEnvironment{minipage}{O{t} o O{t} m}{}{}% + \RenewDocumentCommand{\parbox}{O{t} O{} O{t} m +m}{##5}% + \LWR@figcaption% + \LWR@traceinfo{LWR@HTML@caption@begin: about to LWR@origcaption@begin}% + \LWR@print@caption@begin{#1}% + \LWR@traceinfo{LWR@HTML@caption@begin: done}% } \newcommand*{\LWR@HTML@caption@end} {% -\LWR@traceinfo{LWR@HTML@caption@end}% -\LWR@print@caption@end% -\endLWR@figcaption% -\endgroup% -\LWR@traceinfo{LWR@HTML@caption@end: done}% + \LWR@traceinfo{LWR@HTML@caption@end}% + \LWR@print@caption@end% + \endLWR@figcaption% + \endgroup% + % \leavevmode% avoid bad space factor (0) error + \LWR@traceinfo{LWR@HTML@caption@end: done}% } \AtBeginDocument{ @@ -9738,44 +9910,48 @@ autopage-\theLWR@currentautosec% \let\LWR@origcaptionlistentry\captionlistentry \renewcommand*{\captionlistentry}{% -\LWR@ensuredoingapar% -\LWR@origcaptionlistentry% + \LWR@ensuredoingapar% + \LWR@origcaptionlistentry% } - \def\LWR@LTcaptionlistentry{% -\LWR@ensuredoingapar% -\LWR@htmltag{a id="\LWR@print@mbox{autoid-\arabic{LWR@thisautoid}}"}\LWR@htmltag{/a}% - \bgroup - \@ifstar{\egroup\LWR@LT@captionlistentry}% gobble * - {\egroup\LWR@LT@captionlistentry}}% + \LWR@ensuredoingapar% + \LWR@forcenewautoidanchor% + \bgroup + \@ifstar{\egroup\LWR@LT@captionlistentry}% gobble * + {\egroup\LWR@LT@captionlistentry}% +}% + \def\LWR@LT@captionlistentry#1{% - \caption@listentry\@firstoftwo[\LTcaptype]{#1}}% + \caption@listentry\@firstoftwo[\LTcaptype]{#1}% +}% \let\LWR@origaddcontentsline\addcontentsline \renewcommand*{\addcontentsline}[3]{% -\ifstrequal{#1}{toc}{}{% not TOC -\ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}% - {}% - {\LWR@newautoidanchor}% - \ifcsvoid{ext@#2}{\csdef{ext@#2}{#1}}{}% - \addtocontents{\@nameuse{ext@#2}}{% - \protect\LWRsetnextfloat% - {\arabic{LWR@latestautopage}}% - {\arabic{LWR@thisautoid}}% - }% -}% not TOC -\LWR@origaddcontentsline{#1}{#2}{#3}% + \ifstrequal{#1}{toc}{}{% not TOC + \ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}% + {}% + {\LWR@newautoidanchor}% + \ifcsvoid{ext@#2}{\csdef{ext@#2}{#1}}{}% + \addtocontents{\@nameuse{ext@#2}}{% + \protect\LWRsetnextfloat% + {\arabic{LWR@latestautopage}}% + {\arabic{LWR@thisautoid}}% + }% + }% not TOC + \LWR@origaddcontentsline{#1}{#2}{#3}% } \AtBeginDocument{ + \let\LWR@origcaptionof\captionof \renewcommand*{\captionof}{% -\LWR@stoppars% -\LWR@origcaptionof% -} + \LWR@stoppars% + \LWR@origcaptionof% } +}% AtBeginDocument + \end{warpHTML} @@ -9783,96 +9959,98 @@ autopage-\theLWR@currentautosec% \newcommand*{\LWR@myshorttoc}[1]{% -\LWR@traceinfo{LWR@myshorttoc: #1}% -\LWR@ensuredoingapar% -\IfFileExists{\jobname.#1}{% -\LWR@traceinfo{LWR@myshorttoc: loading}% -\begingroup% -\makeatletter% -\@input{\jobname.#1}% -\endgroup% -}% -{}% -\LWR@traceinfo{LWR@myshorttoc: done}% + \LWR@traceinfo{LWR@myshorttoc: #1}% + \LWR@ensuredoingapar% + \IfFileExists{\jobname.#1}{% + \LWR@traceinfo{LWR@myshorttoc: loading}% + \begingroup% + \makeatletter% + \@input{\jobname.#1}% + \endgroup% + }% + {}% + \LWR@traceinfo{LWR@myshorttoc: done}% } \NewDocumentCommand{\LWR@subtableofcontents}{m m}{% -\@ifundefined{chapter} -{\LWR@closeprevious{section}} -{\LWR@closeprevious{chapter}} -\LWR@printpendingfootnotes -\@ifundefined{chapter}{\section*{#2}}{\chapter*{#2}} -\LWR@htmlelementclass{nav}{#1} -\LWR@myshorttoc{#1} -\LWR@htmlelementclassend{nav}{#1} + \@ifundefined{chapter}% + {\LWR@closeprevious{section}}% + {\LWR@closeprevious{chapter}}% + \LWR@printpendingfootnotes% + \@ifundefined{chapter}{\section*{#2}}{\chapter*{#2}}% + \LWR@htmlelementclass{nav}{#1}% + \LWR@myshorttoc{#1}% + \LWR@htmlelementclassend{nav}{#1}% } \let\LWR@orig@starttoc\@starttoc \renewcommand{\@starttoc}[1]{ -\LWR@htmlelementclass{nav}{#1} -\LWR@orig@starttoc{#1} -\LWR@htmlelementclassend{nav}{#1} + \LWR@htmlelementclass{nav}{#1}% + \LWR@orig@starttoc{#1}% + \LWR@htmlelementclassend{nav}{#1}% } \newbool{LWR@copiedsidetoc} \boolfalse{LWR@copiedsidetoc} \AtBeginDocument{ + \let\LWR@origtableofcontents\tableofcontents \renewcommand*{\tableofcontents}{% -\ifboolexpr{bool{FormatWP} and bool{WPMarkTOC}}{ + \ifboolexpr{bool{FormatWP} and bool{WPMarkTOC}}{ -=== table of contents === + === table of contents === -} -{ - \ifbool{LWR@copiedsidetoc}{}{% - \LWR@copyfile{\jobname.toc}{\jobname.sidetoc}% - \booltrue{LWR@copiedsidetoc}% - }% - \LWR@printpendingfootnotes - \LWR@origtableofcontents -} + } + { + \ifbool{LWR@copiedsidetoc}{}{% + \LWR@copyfile{\jobname.toc}{\jobname.sidetoc}% + \booltrue{LWR@copiedsidetoc}% + }% + \LWR@printpendingfootnotes + \LWR@origtableofcontents + } }% \tableofcontents + }% AtBeginDocument \let\LWR@origlistoffigures\listoffigures \renewcommand*{\listoffigures}{ -\ifboolexpr{bool{FormatWP} and bool{WPMarkLOFT}}{ + \ifboolexpr{bool{FormatWP} and bool{WPMarkLOFT}}{ -=== list of figures === + === list of figures === -} -{ - \LWR@printpendingfootnotes - \LWR@origlistoffigures -} + } + { + \LWR@printpendingfootnotes + \LWR@origlistoffigures + } } \let\LWR@origlistoftables\listoftables \renewcommand*{\listoftables}{ -\ifboolexpr{bool{FormatWP} and bool{WPMarkLOFT}}{ + \ifboolexpr{bool{FormatWP} and bool{WPMarkLOFT}}{ -=== list of tables === + === list of tables === -} -{ - \LWR@printpendingfootnotes - \LWR@origlistoftables -} + } + { + \LWR@printpendingfootnotes + \LWR@origlistoftables + } } \NewDocumentCommand{\listof}{m +m}{% -\@ifundefined{l@#1}{% - \csdef{l@#1}##1##2{\hypertocfloat{1}{#1}{\@nameuse{ext@#1}}{##1}{##2}}% -}{}% -\LWR@subtableofcontents{\@nameuse{ext@#1}}{#2} -\expandafter\newwrite\csname tf@\csname ext@#1\endcsname\endcsname -\immediate\openout \csname tf@\csname ext@#1\endcsname\endcsname - \jobname.\@nameuse{ext@#1}\relax + \@ifundefined{l@#1}{% + \csdef{l@#1}##1##2{\hypertocfloat{1}{#1}{\@nameuse{ext@#1}}{##1}{##2}}% + }{}% + \LWR@subtableofcontents{\@nameuse{ext@#1}}{#2}% + \expandafter\newwrite\csname tf@\csname ext@#1\endcsname\endcsname% + \immediate\openout \csname tf@\csname ext@#1\endcsname\endcsname% + \jobname.\@nameuse{ext@#1}\relax% } @@ -9900,31 +10078,31 @@ autopage-\theLWR@currentautosec% \begin{warpHTML} -\newcommand*{\LWR@sidetoc}{ -\LWR@forcenewpage -\LWR@stoppars +\newcommand*{\LWR@sidetoc}{% + \LWR@forcenewpage + \LWR@stoppars -\LWR@htmlelementclass{div}{sidetoccontainer} -\LWR@htmlelementclass{nav}{sidetoc} + \LWR@htmlelementclass{div}{sidetoccontainer} + \LWR@htmlelementclass{nav}{sidetoc} -\setcounter{tocdepth}{\value{SideTOCDepth}} + \setcounter{tocdepth}{\value{SideTOCDepth}} -\begin{BlockClass}{sidetoctitle} -\ifcsvoid{thetitle}{}{\InlineClass{sidetocthetitle}{\thetitle}\par} -\sidetocname -\end{BlockClass} -\begin{BlockClass}{sidetoccontents} -\LinkHome + \begin{BlockClass}{sidetoctitle} + \ifcsvoid{thetitle}{}{\InlineClass{sidetocthetitle}{\thetitle}\par} + \sidetocname + \end{BlockClass} + \begin{BlockClass}{sidetoccontents} + \LinkHome -\LWR@myshorttoc{sidetoc} -\end{BlockClass} -\LWR@htmlelementclassend{nav}{sidetoc} -\LWR@htmlelementclassend{div}{sidetoccontainer} + \LWR@myshorttoc{sidetoc} + \end{BlockClass} + \LWR@htmlelementclassend{nav}{sidetoc} + \LWR@htmlelementclassend{div}{sidetoccontainer} } \newcommand*{\LWR@numberline}[1]{% -\LWR@sectionnumber{#1}\quad% + \LWR@sectionnumber{#1}\quad% } \LetLtxMacro\numberline\LWR@numberline @@ -9932,51 +10110,51 @@ autopage-\theLWR@currentautosec% \newcommand*{\LWR@maybetocdata}{} \NewDocumentCommand{\hypertoc}{m m +m m}{% -\LWR@traceinfo{hypertoc !#1!#2!#3!#4!}% -\ifthenelse{\cnttest{#1}{<=}{\value{tocdepth}}}% - {% - \LWR@startpars% - \LWR@subhyperrefclass{% - \LWR@htmlrefsectionfilename{\BaseJobname-autopage-#4}% - \LWR@origpound\LWR@print@mbox{autosec-#4}% - }{#3}{toc#2}% - \LWR@maybetocdata% - \LWR@stoppars% - }% - {}% -\LWR@traceinfo{hypertoc done}% + \LWR@traceinfo{hypertoc !#1!#2!#3!#4!}% + \ifthenelse{\cnttest{#1}{<=}{\value{tocdepth}}}% + {% + \LWR@startpars% + \LWR@subhyperrefclass{% + \LWR@htmlrefsectionfilename{\BaseJobname-autopage-#4}% + \LWR@origpound\LWR@print@mbox{autosec-#4}% + }{#3}{toc#2}% + \LWR@maybetocdata% + \LWR@stoppars% + }% + {}% + \LWR@traceinfo{hypertoc done}% } \@ifclassloaded{memoir}{}{ -\newcounter{lofdepth} -\setcounter{lofdepth}{1} + \newcounter{lofdepth} + \setcounter{lofdepth}{1} } \@ifclassloaded{memoir}{}{ -\newcounter{lotdepth} -\setcounter{lotdepth}{1} + \newcounter{lotdepth} + \setcounter{lotdepth}{1} } \newcommand{\hypertocfloat}[5]{% -\LWR@startpars -\@ifundefined{c@#3depth}{% -\newcounter{#3depth}% -\setcounter{#3depth}{1}% -}{}% -\LWR@traceinfo{hypertocfloat depth is #1 #3depth is \arabic{#3depth}}% -\ifthenelse{\cnttest{#1}{<=}{\arabic{#3depth}}}% - {% - \LWR@startpars% - \LWR@subhyperrefclass{% - \LWR@htmlrefsectionfilename{% - \BaseJobname-autopage-\arabic{LWR@nextautopage}% + \LWR@startpars% + \@ifundefined{c@#3depth}{% + \newcounter{#3depth}% + \setcounter{#3depth}{1}% + }{}% + \LWR@traceinfo{hypertocfloat depth is #1 #3depth is \arabic{#3depth}}% + \ifthenelse{\cnttest{#1}{<=}{\arabic{#3depth}}}% + {% + \LWR@startpars% + \LWR@subhyperrefclass{% + \LWR@htmlrefsectionfilename{% + \BaseJobname-autopage-\arabic{LWR@nextautopage}% + }% + \LWR@origpound\LWR@print@mbox{autoid-\arabic{LWR@nextautoid}}}% + {#4}{toc#2}% + \LWR@maybetocdata% + \LWR@stoppars% }% - \LWR@origpound\LWR@print@mbox{autoid-\arabic{LWR@nextautoid}}}% - {#4}{toc#2}% - \LWR@maybetocdata% - \LWR@stoppars% - }% - {}% + {}% } \DeclareDocumentCommand{\l@book}{m m}{\hypertoc{-2}{book}{#1}{#2}} @@ -10018,90 +10196,94 @@ autopage-\theLWR@currentautosec% \setcounter{LWR@autoglossary}{0} \@ifundefined{chapter} -{\newcommand*{\LWR@indexsection}[1]{\section*{#1}}} -{\newcommand*{\LWR@indexsection}[1]{\chapter*{#1}}} + {\newcommand*{\LWR@indexsection}[1]{\section*{#1}}} + {\newcommand*{\LWR@indexsection}[1]{\chapter*{#1}}} \AtBeginDocument{ + \renewenvironment*{theindex}{% \LWR@indexsection{\indexname}% \let\item\LWR@indexitem% \let\subitem\LWR@indexsubitem% \let\subsubitem\LWR@indexsubsubitem% }{} + }% AtBeginDocument \newcommand{\LWR@indexitem}[1][\@empty]{ -\InlineClass{indexitem}{\LWR@htmlcomment{}}#1% + \InlineClass{indexitem}{\LWR@htmlcomment{}}#1% } \newcommand{\LWR@indexsubitem}{ -\InlineClass{indexsubitem}{\LWR@htmlcomment{}} + \InlineClass{indexsubitem}{\LWR@htmlcomment{}}% } \newcommand{\LWR@indexsubsubitem}{ -\InlineClass{indexsubsubitem}{\LWR@htmlcomment{}} + \InlineClass{indexsubsubitem}{\LWR@htmlcomment{}}% } \def\LWR@wrindex#1{% -\addtocounter{LWR@autoindex}{1}% -\LWR@new@label{LWRindex-\arabic{LWR@autoindex}}% -\protected@write\@indexfile{}% -{\string\indexentry{#1}{\arabic{LWR@autoindex}}}% -\endgroup -\@esphack} + \addtocounter{LWR@autoindex}{1}% + \LWR@new@label{LWRindex-\arabic{LWR@autoindex}}% + \protected@write\@indexfile{}% + {\string\indexentry{#1}{\arabic{LWR@autoindex}}}% + \endgroup% + \@esphack% +} \AtBeginDocument{ \let\@wrindex\LWR@wrindex } \def\@wrglossary#1{% -\addtocounter{LWR@autoglossary}{1}% -\LWR@new@label{LWRglossary-\theLWR@autoglossary}% -\protected@write\@glossaryfile{}% -{\string\glossaryentry{#1}{\theLWR@autoglossary}}% -\endgroup -\@esphack} + \addtocounter{LWR@autoglossary}{1}% + \LWR@new@label{LWRglossary-\theLWR@autoglossary}% + \protected@write\@glossaryfile{}% + {\string\glossaryentry{#1}{\theLWR@autoglossary}}% + \endgroup% + \@esphack% +} \newcommand*{\LWR@indexnameref}[1]{\nameref{LWRindex-#1}} \newrobustcmd{\LWR@doindexentry}[1]{% -\IfInteger{#1}% - {\LWR@indexnameref{#1}}% - {#1}% + \IfInteger{#1}% + {\LWR@indexnameref{#1}}% + {#1}% } \newcommand{\LWR@hyperindexrefnullified}{% -\renewrobustcmd{\emph}[1]{\LWR@HTML@emph{\LWR@doindexentry{##1}}}% -\renewrobustcmd{\textbf}[1]{\LWR@HTML@textbf{\LWR@doindexentry{##1}}}% -\renewrobustcmd{\texteb}[1]{\LWR@HTML@texteb{\LWR@doindexentry{##1}}}% -\renewrobustcmd{\textlg}[1]{\LWR@HTML@textlg{\LWR@doindexentry{##1}}}% -\renewrobustcmd{\textrm}[1]{\LWR@HTML@textrm{\LWR@doindexentry{##1}}}% -\renewrobustcmd{\textsf}[1]{\LWR@HTML@textsf{\LWR@doindexentry{##1}}}% -\renewrobustcmd{\texttt}[1]{\LWR@HTML@texttt{\LWR@doindexentry{##1}}}% -\renewrobustcmd{\textup}[1]{\LWR@HTML@textup{\LWR@doindexentry{##1}}}% -\renewrobustcmd{\textsc}[1]{\LWR@HTML@textsc{\LWR@doindexentry{##1}}}% -\renewrobustcmd{\textulc}[1]{\LWR@HTML@textulc{\LWR@doindexentry{##1}}}% -\renewrobustcmd{\textsi}[1]{\LWR@HTML@textsi{\LWR@doindexentry{##1}}}% -\renewrobustcmd{\textit}[1]{\LWR@HTML@textit{\LWR@doindexentry{##1}}}% -\renewrobustcmd{\textsl}[1]{\LWR@HTML@textsl{\LWR@doindexentry{##1}}}% + \renewrobustcmd{\emph}[1]{\LWR@HTML@emph{\LWR@doindexentry{##1}}}% + \renewrobustcmd{\textbf}[1]{\LWR@HTML@textbf{\LWR@doindexentry{##1}}}% + \renewrobustcmd{\texteb}[1]{\LWR@HTML@texteb{\LWR@doindexentry{##1}}}% + \renewrobustcmd{\textlg}[1]{\LWR@HTML@textlg{\LWR@doindexentry{##1}}}% + \renewrobustcmd{\textrm}[1]{\LWR@HTML@textrm{\LWR@doindexentry{##1}}}% + \renewrobustcmd{\textsf}[1]{\LWR@HTML@textsf{\LWR@doindexentry{##1}}}% + \renewrobustcmd{\texttt}[1]{\LWR@HTML@texttt{\LWR@doindexentry{##1}}}% + \renewrobustcmd{\textup}[1]{\LWR@HTML@textup{\LWR@doindexentry{##1}}}% + \renewrobustcmd{\textsc}[1]{\LWR@HTML@textsc{\LWR@doindexentry{##1}}}% + \renewrobustcmd{\textulc}[1]{\LWR@HTML@textulc{\LWR@doindexentry{##1}}}% + \renewrobustcmd{\textsi}[1]{\LWR@HTML@textsi{\LWR@doindexentry{##1}}}% + \renewrobustcmd{\textit}[1]{\LWR@HTML@textit{\LWR@doindexentry{##1}}}% + \renewrobustcmd{\textsl}[1]{\LWR@HTML@textsl{\LWR@doindexentry{##1}}}% } \newcommand{\hyperindexref}[1]{% -\def\LWR@tempone{#1}% -\IfBeginWith{\LWR@tempone}{ }{% - \StrGobbleLeft{\LWR@tempone}{1}[\LWR@tempone]% -}{}% -\IfInteger{\LWR@tempone}% - {\LWR@indexnameref{\LWR@tempone}}% - {% - \begingroup% - \LWR@hyperindexrefnullified - #1% - \endgroup% - }% + \def\LWR@tempone{#1}% + \IfBeginWith{\LWR@tempone}{ }{% + \StrGobbleLeft{\LWR@tempone}{1}[\LWR@tempone]% + }{}% + \IfInteger{\LWR@tempone}% + {\LWR@indexnameref{\LWR@tempone}}% + {% + \begingroup% + \LWR@hyperindexrefnullified% + #1% + \endgroup% + }% } \end{warpHTML} @@ -10124,7 +10306,9 @@ autopage-\theLWR@currentautosec% } \renewcommand{\@biblabel}[1]{[#1]\quad} \AtBeginDocument{ + \AtBeginEnvironment{thebibliography}{ + \providecommand*{\LWR@newem}[1]{\textit{#1}} \renewrobustcmd{\em}{% @@ -10139,7 +10323,9 @@ autopage-\theLWR@currentautosec% \endgroup \LWR@em@after\egroup } + }% \AtBeginEnvironment{thebibliography} + }% \AtBeginDocument \end{warpHTML} @@ -10148,49 +10334,48 @@ autopage-\theLWR@currentautosec% \begin{warpHTML} \newcommand*{\LWR@restoreorigformatting}{% -\LWR@traceinfo{LWR@restoreorigformatting}% -\renewcommand*{\LWR@formatting}{print}% -\linespread{1}% -\let\par\LWR@origpar% -\LWR@select@print@hspace% -\LetLtxMacro\hfil\LWR@orighfil% -\let\hss\LWR@orighss% -\let\llap\LWR@origllap% -\let\rlap\LWR@origrlap% -\let\hfilneg\LWR@orighfilneg% -\let\,\LWR@origcomma% disable HTML short unbreakable space -\let\thinspace\LWR@origthinspace% disable HTML short unbreakable space -\let\negthinspace\LWR@orignegthinspace% disable HTML negative short unbreakable space -\let\textellipsis\LWR@origtextellipsis% -\let\textless\LWR@origtextless% -\let\textgreater\LWR@origtextgreater% -\let\&\LWR@origampersand% -\LetLtxMacro\em\LWR@origem% -\LetLtxMacro\normalfont\LWR@orignormalfont% -\let\sp\LWR@origsp% -\let\sb\LWR@origsb% -\LetLtxMacro\textsuperscript\LWR@origtextsuperscript% -\LetLtxMacro\@textsuperscript\LWR@orig@textsuperscript% -\LetLtxMacro\textsubscript\LWR@origtextsubscript% -\LetLtxMacro\@textsubscript\LWR@orig@textsubscript% -\LetLtxMacro\underline\LWR@origunderline% -\let~\LWR@origtilde% -\let\enskip\LWR@origenskip% -\let\quad\LWR@origquad% -\let\qquad\LWR@origqquad% -\LetLtxMacro\endtabular\LWR@origendtabular% -\csletcs{endtabular*}{LWR@origendtabular*}% -\LetLtxMacro\noalign\LWR@orignoalign% -\LetLtxMacro\hline\LWR@orighline% -\let\newline\LWR@orignewline% -\LetLtxMacro\includegraphics\LWR@origincludegraphics% -\LetLtxMacro\@ensuredmath\LWR@origensuredmath% -\LWR@restoreorigaccents% -\LWR@restoreoriglists% -\LWR@FBcancel% + \LWR@traceinfo{LWR@restoreorigformatting}% + \renewcommand*{\LWR@formatting}{print}% + \linespread{1}% + \let\par\LWR@origpar% + \LWR@select@print@hspace% + \LetLtxMacro\hfil\LWR@orighfil% + \let\hss\LWR@orighss% + \let\llap\LWR@origllap% + \let\rlap\LWR@origrlap% + \let\hfilneg\LWR@orighfilneg% + \let\,\LWR@origcomma% disable HTML short unbreakable space + \let\thinspace\LWR@origthinspace% disable HTML short unbreakable space + \let\negthinspace\LWR@orignegthinspace% disable HTML negative short unbreakable space + \let\textellipsis\LWR@origtextellipsis% + \let\textless\LWR@origtextless% + \let\textgreater\LWR@origtextgreater% + \let\&\LWR@origampersand% + \LetLtxMacro\em\LWR@origem% + \LetLtxMacro\normalfont\LWR@orignormalfont% + \let\sp\LWR@origsp% + \let\sb\LWR@origsb% + \LetLtxMacro\textsuperscript\LWR@origtextsuperscript% + \LetLtxMacro\@textsuperscript\LWR@orig@textsuperscript% + \LetLtxMacro\textsubscript\LWR@origtextsubscript% + \LetLtxMacro\@textsubscript\LWR@orig@textsubscript% + \LetLtxMacro\underline\LWR@origunderline% + \let~\LWR@origtilde% + \let\enskip\LWR@origenskip% + \let\quad\LWR@origquad% + \let\qquad\LWR@origqquad% + \LetLtxMacro\endtabular\LWR@origendtabular% + \csletcs{endtabular*}{LWR@origendtabular*}% + \LetLtxMacro\noalign\LWR@orignoalign% + \LetLtxMacro\hline\LWR@orighline% + \let\newline\LWR@orignewline% + \LetLtxMacro\includegraphics\LWR@origincludegraphics% + \LetLtxMacro\@ensuredmath\LWR@origensuredmath% + \LWR@restoreorigaccents% + \LWR@restoreoriglists% + \LWR@FBcancel% } \end{warpHTML} - \begin{warpall} \newcommand*{\AltTextOpen}{(} @@ -10239,9 +10424,9 @@ autopage-\theLWR@currentautosec% \let\LWR@origtextdollar\$ \renewcommand*{\$}{% -\ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}% -{\LWR@origtextdollar}% -{\HTMLunicode{00024}}% + \ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}% + {\LWR@origtextdollar}% + {\HTMLunicode{00024}}% } \AtBeginDocument{ @@ -10285,57 +10470,28 @@ autopage-\theLWR@currentautosec% }% AtBeginDocument -\newlength{\LWR@singledollarwidth} -\newlength{\LWR@singledollarheight} -\newlength{\LWR@singledollardepth} - -\newsavebox{\LWR@singledollarbox} +\newbool{LWR@unknownmathsize} -\NewDocumentCommand{\LWR@subsingledollar}{s m m m}{% -\LWR@traceinfo{LWR@subsingledollar}% -\ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}% -{% -\LWR@traceinfo{LWR@subsingledollar: already in a lateximage}% - #4% contents -}% -{% not in a lateximage -\begingroup% -\LWR@applyxfakebold% -\ifboolexpr{% - ( - bool{mathjax} or - ( bool{FormatWP} and bool{WPMarkMath} ) - ) and - ( not test { - \ifstrequal {#2} - {\AltTextOpen\MathImageAltText\AltTextClose} % from \ensuredmath - } - ) and - ( not bool{LWR@dynamicmath} ) -}% -{% - \LWR@traceinfo{LWR@subsingledollar: Mathjax}% - {\textbackslash(\LWR@HTMLsanitize{#4}\textbackslash)}% -}% mathjax -{% not mathjax -\LWR@traceinfo{LWR@subsingledollar: NOT mathjax, or is ensuremath, or is dynamic}% +\newcommand*{\LWR@singledollarmeasure}[1]{% \begingroup% \LWR@restoreorigformatting% \RenewDocumentEnvironment{lateximage}{s o s o o}{}{}% inside group \LWR@print@normalsize% \LWR@setcurrentfont% \global\advance\c@LWR@lateximagedepth 1\relax% + \boolfalse{LWR@unknownmathsize}% \ifmmode% - \global\sbox{\LWR@singledollarbox}{#4}% + \global\sbox{\LWR@singledollarbox}{#1}% \else% \ifbool{LWR@dynamicmath}{% \ifbool{mathjax}{% - \global\sbox{\LWR@singledollarbox}{\LWR@origensuredmath{#4}}% + \global\sbox{\LWR@singledollarbox}% + {\LWR@origensuredmath{#1}}% }{% - \global\sbox{\LWR@singledollarbox}{#4}% + \global\sbox{\LWR@singledollarbox}{#1}% }% }{% - \global\sbox{\LWR@singledollarbox}{#4}% + \global\sbox{\LWR@singledollarbox}{#1}% }% \fi% \global\sbox{\LWR@singledollarbox}{% @@ -10361,6 +10517,10 @@ autopage-\theLWR@currentautosec% }% \global\LWR@singledollarheight=\LWR@singledollarheight% \endgroup% +} + +\newcommand*{\LWR@subsingledollarsvg}[4]{% + \LWR@singledollarmeasure{#4}% \ifdimgreater{\LWR@singledollarwidth}{.7\LWR@singledollarheight}{% \def\LWR@singledollarstyle{% width:\LWR@convertto{em}{\the\LWR@singledollarwidth} em% @@ -10394,15 +10554,19 @@ autopage-\theLWR@currentautosec% }{% \def\LWR@singledollardepthstyle{}% }% + \ifbool{LWR@unknownmathsize}{% + \def\LWR@singledollarstyle{}% + \def\LWR@singledollardepthstyle{}% + }{}% \ifbool{LWR@dynamicmath}{% \LWR@traceinfo{subsingledollar: dynamic}% \begin{lateximage}% no hashing [\MathImageAltText]% alt tag []% no add'l hashing [\LWR@singledollarstyle \LWR@singledollardepthstyle]% CSS - }{% + }{% not dynamic math \LWR@traceinfo{subsingledollar: static}% - \IfValueTF{#1}{% + \IfValueTF{#1}{% #1 True \LWR@findcurrenttextcolor% sets \LWR@tempcolor \ifbool{LWR@xfakebold}% {\def\LWR@tempone{Y}}% @@ -10420,23 +10584,62 @@ autopage-\theLWR@currentautosec% FB\LWR@tempone% xfakebold ]% [\LWR@singledollarstyle \LWR@singledollardepthstyle]% CSS - }{% + }{% #1 False \begin{lateximage}% no hashing [#2]% alt []% no add'l hashing [\LWR@singledollarstyle \LWR@singledollardepthstyle]% CSS }% - }% + }% not dynamic math \LWR@addbaselinemarker% \LWR@applyxfakebold% \usebox{\LWR@singledollarbox}% \LWR@addbaselinemarker% \end{lateximage}% -}% not mathjax -\endgroup% -}% not in a lateximage -\gdef\LWR@ThisAltText{}% -\LWR@traceinfo{LWR@subsingledollar: done}% +} + +\newlength{\LWR@singledollarwidth} +\newlength{\LWR@singledollarheight} +\newlength{\LWR@singledollardepth} + +\newsavebox{\LWR@singledollarbox} + +\NewDocumentCommand{\LWR@subsingledollar}{s m m m}{% + \LWR@traceinfo{LWR@subsingledollar}% + \ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}% + {% + \LWR@traceinfo{LWR@subsingledollar: already in a lateximage}% + #4% contents + }% + {% not in a lateximage + \begingroup% + \LWR@applyxfakebold% + \ifboolexpr{% + ( + bool{mathjax} or + ( bool{FormatWP} and bool{WPMarkMath} ) + ) and + ( not test { + \ifstrequal {#2}% from \ensuredmath + {\AltTextOpen\MathImageAltText\AltTextClose} + } + ) and + ( not bool{LWR@dynamicmath} ) + }% + {% + \LWR@traceinfo{LWR@subsingledollar: Mathjax}% + {\textbackslash(\LWR@HTMLsanitize{#4}\textbackslash)}% + }% mathjax + {% not mathjax + \LWR@traceinfo{% + LWR@subsingledollar: NOT mathjax, or is ensuremath, or is dynamic% + }% + \LWR@subsingledollarsvg{#1}{#2}{#3}{#4}% + }% not mathjax + \endgroup% + }% not in a lateximage + \gdef\LWR@ThisAltText{}% + \LWR@traceinfo{LWR@subsingledollar: done}% } \LetLtxMacro\LWR@origdollar$ @@ -10517,28 +10720,27 @@ autopage-\theLWR@currentautosec% \LetLtxMacro\LWR@origensuredmath\@ensuredmath \renewcommand{\@ensuredmath}[1]{% -\ifbool{mathjax}{% - \LWR@subsingledollar*{\AltTextOpen\MathImageAltText\AltTextClose}{% - \protect\LWR@HTMLsanitize{\detokenize\expandafter{#1}}% - }{\relax% - \LWR@origensuredmath{#1}% - }% -}{% SVG math -\ifmmode% - \LWR@origensuredmath{#1}% -\else% - \ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}% - {\LWR@origensuredmath{#1}}% - {% + \ifbool{mathjax}{% \LWR@subsingledollar*{\AltTextOpen\MathImageAltText\AltTextClose}{% - \protect\LWR@HTMLsanitize{\detokenize\expandafter{#1}}% - }{% + \protect\LWR@HTMLsanitize{\detokenize\expandafter{#1}}% + }{\relax% \LWR@origensuredmath{#1}% }% + }{% SVG math + \ifmmode% + \LWR@origensuredmath{#1}% + \else% + \ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}% + {\LWR@origensuredmath{#1}}% + {% + \LWR@subsingledollar*% + {\AltTextOpen\MathImageAltText\AltTextClose}% + {\protect\LWR@HTMLsanitize{\detokenize\expandafter{#1}}}% + {\LWR@origensuredmath{#1}}% + }% + \fi% }% -\fi% -}% -\gdef\LWR@ThisAltText{}% + \gdef\LWR@ThisAltText{}% } \let\math\relax @@ -10583,46 +10785,46 @@ autopage-\theLWR@currentautosec% \newcounter{LWR@nextequation} \newcommand*{\LWR@syncmathjax}{% -\ifcsdef{thechapter}{ - \InlineClass{hidden}{ - \textbackslash( - \textbackslash{}seteqsection \{\thechapter\} - \textbackslash) - } -} -{}% not using chapters -\ifthenelse{\cnttest{\value{equation}}>0} -{ - \setcounter{LWR@nextequation}{\value{equation}} - \addtocounter{LWR@nextequation}{1} - \InlineClass{hidden}{ - \textbackslash( - \textbackslash{}seteqnumber \{\arabic{LWR@nextequation}\} - \textbackslash) + \ifcsdef{thechapter}{ + \InlineClass{hidden}{ + \textbackslash( + \textbackslash{}seteqsection \{\thechapter\} + \textbackslash) + } } -}{}% not eq > 0 + {}% not using chapters + \ifthenelse{\cnttest{\value{equation}}>0} + { + \setcounter{LWR@nextequation}{\value{equation}} + \addtocounter{LWR@nextequation}{1} + \InlineClass{hidden}{ + \textbackslash( + \textbackslash{}seteqnumber \{\arabic{LWR@nextequation}\} + \textbackslash) + } + }{}% not eq > 0 } \NewDocumentCommand{\LWR@hidelatexequation}{m +m}{% -\LWR@stoppars -\LWR@htmlopencomment + \LWR@stoppars + \LWR@htmlopencomment -\begingroup -\@nameuse{LWR@orig#1} -\LWR@restoreorigformatting -#2 -\@nameuse{LWR@origend#1} -\endgroup + \begingroup + \@nameuse{LWR@orig#1} + \LWR@restoreorigformatting + #2 + \@nameuse{LWR@origend#1} + \endgroup -\LWR@htmlclosecomment -\LWR@startpars + \LWR@htmlclosecomment + \LWR@startpars } \NewDocumentCommand{\LWR@addmathjax}{m +m}{% -\LWR@origtilde\LWR@orignewline -\textbackslash{}begin\{#1\} -\LWR@HTMLsanitizeexpand{\detokenize\expandafter{#2}} -\textbackslash{}end\{#1\} -\LWR@orignewline + \LWR@origtilde\LWR@orignewline + \textbackslash{}begin\{#1\} + \LWR@HTMLsanitizeexpand{\detokenize\expandafter{#2}} + \textbackslash{}end\{#1\} + \LWR@orignewline } \AtBeginDocument{ @@ -10633,40 +10835,41 @@ autopage-\theLWR@currentautosec% } \newcommand*{\LWR@doequation}[2]{% -\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% -{ - \LWR@syncmathjax - \LWR@hidelatexequation{#2}{#1} -} -{% not mathjax - \ifstrequal{#2}{equation*}{% - \begin{BlockClass}{displaymath}% - }{% - \begin{BlockClass}{displaymathnumbered}% - }% - \LWR@newautoidanchor% - \booltrue{LWR@indisplaymathimage}% - \begin{lateximage}[% + \ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% + { + \LWR@syncmathjax + \LWR@hidelatexequation{#2}{#1} + } + {% not mathjax \ifstrequal{#2}{equation*}{% - \ifdefequal{\LWR@equationtag}{\theequation}{% - }{% - (\LWR@equationtag) % tag was given - }% + \begin{BlockClass}{displaymath}% }{% - (\LWR@equationtag) % automatic numbering + \begin{BlockClass}{displaymathnumbered}% }% - \textbackslash{begin\{#2\}} % extra space - \LWR@HTMLsanitizeexpand{\detokenize\expandafter{#1}} % extra space - \textbackslash{end\{#2\}}% - ]*% alt tag - \LWR@applyxfakebold% - \@nameuse{LWR@orig#2}% - #1% contents collected by \collect@body - \@nameuse{LWR@origend#2}% - \end{lateximage}% - \end{BlockClass}% -}% not mathjax -\gdef\LWR@ThisAltText{}% + \LWR@newautoidanchor% + \booltrue{LWR@indisplaymathimage}% + \begin{lateximage}[% + \ifstrequal{#2}{equation*}{% + \ifdefequal{\LWR@equationtag}{\theequation}{% + % no tag was given + }{% + (\LWR@equationtag) % tag was given + }% + }{% + (\LWR@equationtag) % automatic numbering + }% + \textbackslash{begin\{#2\}} % extra space + \LWR@HTMLsanitizeexpand{\detokenize\expandafter{#1}} % extra space + \textbackslash{end\{#2\}}% + ]*% alt tag + \LWR@applyxfakebold% + \@nameuse{LWR@orig#2}% + #1% contents collected by \collect@body + \@nameuse{LWR@origend#2}% + \end{lateximage}% + \end{BlockClass}% + }% not mathjax + \gdef\LWR@ThisAltText{}% } \newcommand*{\LWR@doendequation}[1]{% \ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% @@ -10674,7 +10877,7 @@ autopage-\theLWR@currentautosec% \LWR@addmathjax{#1}{\BODY}% }{}% -\gdef\LWR@ThisAltText{}% + \gdef\LWR@ThisAltText{}% } \AtBeginDocument{ @@ -10685,22 +10888,26 @@ autopage-\theLWR@currentautosec% } \AtBeginDocument{ + \NewEnviron{equation}% -{\LWR@doequation{\BODY}{equation}}% -[\LWR@doendequation{equation}] + {\LWR@doequation{\BODY}{equation}}% + [\LWR@doendequation{equation}] \LetLtxMacro\LWR@equationnormal\equation \LetLtxMacro\endLWR@equationnormal\endequation -} + +}% AtBeginDocument \AtBeginDocument{ + \NewEnviron{equation*}% -{\LWR@doequation{\BODY}{equation*}}% -[\LWR@doendequation{equation*}] + {\LWR@doequation{\BODY}{equation*}}% + [\LWR@doendequation{equation*}] \csletcs{LWR@equationnormalstar}{equation*} \csletcs{LWR@endequationnormalstar}{endequation*} -} + +}% AtBeginDocument \AtBeginDocument{ \LetLtxMacro\LWR@equationless\equation @@ -10710,27 +10917,27 @@ autopage-\theLWR@currentautosec% } \newcommand*{\displaymathnormal}{% -\ifbool{LWR@origmathjax}{\booltrue{mathjax}}{\boolfalse{mathjax}}% -\LetLtxMacro\[\LWR@openbracketnormal% -\LetLtxMacro\]\LWR@closebracketnormal% -\LetLtxMacro\displaymath\LWR@displaymathnormal% -\LetLtxMacro\enddisplaymath\endLWR@displaymathnormal% -\LetLtxMacro\equation\LWR@equationnormal% -\LetLtxMacro\endequation\endLWR@equationnormal% -\csletcs{equation*}{LWR@equationnormalstar}% -\csletcs{endequation*}{LWR@endequationnormalstar}% + \ifbool{LWR@origmathjax}{\booltrue{mathjax}}{\boolfalse{mathjax}}% + \LetLtxMacro\[\LWR@openbracketnormal% + \LetLtxMacro\]\LWR@closebracketnormal% + \LetLtxMacro\displaymath\LWR@displaymathnormal% + \LetLtxMacro\enddisplaymath\endLWR@displaymathnormal% + \LetLtxMacro\equation\LWR@equationnormal% + \LetLtxMacro\endequation\endLWR@equationnormal% + \csletcs{equation*}{LWR@equationnormalstar}% + \csletcs{endequation*}{LWR@endequationnormalstar}% } \newcommand*{\displaymathother}{% -\boolfalse{mathjax}% -\LetLtxMacro\displaymath\LWR@displaymathother% -\LetLtxMacro\enddisplaymath\endLWR@displaymathother% -\LetLtxMacro\[\LWR@displaymathother% -\LetLtxMacro\]\endLWR@displaymathother% -\LetLtxMacro\equation\LWR@equationother% -\LetLtxMacro\endequation\endLWR@equationother% -\csletcs{equation*}{displaymath}% -\csletcs{endequation*}{enddisplaymath}% + \boolfalse{mathjax}% + \LetLtxMacro\displaymath\LWR@displaymathother% + \LetLtxMacro\enddisplaymath\endLWR@displaymathother% + \LetLtxMacro\[\LWR@displaymathother% + \LetLtxMacro\]\endLWR@displaymathother% + \LetLtxMacro\equation\LWR@equationother% + \LetLtxMacro\endequation\endLWR@equationother% + \csletcs{equation*}{displaymath}% + \csletcs{endequation*}{enddisplaymath}% } \end{warpHTML} @@ -10748,36 +10955,36 @@ autopage-\theLWR@currentautosec% \boolfalse{LWR@amsmultline} \newcommand*{\LWR@htmlmathlabel}[1]{% -\LWR@traceinfo{LWR@htmlmathlabelb #1}% -\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% -{% - \text{% - \ifbool{LWR@amsmultline}{}{\hspace*{\totwidth@}}% - \LWR@htmlclosecomment% - \LWR@origltx@label{#1}% - \LWR@htmlopencomment% - }% text -}% mathjax -{% - \LWR@origltx@label{#1}% -}% + \LWR@traceinfo{LWR@htmlmathlabelb #1}% + \ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% + {% + \text{% + \ifbool{LWR@amsmultline}{}{\hspace*{\totwidth@}}% + \LWR@htmlclosecomment% + \LWR@origltx@label{#1}% + \LWR@htmlopencomment% + }% text + }% mathjax + {% + \LWR@origltx@label{#1}% + }% } \newcommand*{\LWR@beginhideamsmath}{ -\LWR@stoppars -\LWR@origtilde\LWR@orignewline -\LWR@htmlopencomment + \LWR@stoppars + \LWR@origtilde\LWR@orignewline + \LWR@htmlopencomment -\begingroup -\LWR@restoreorigformatting + \begingroup + \LWR@restoreorigformatting } \newcommand*{\LWR@endhideamsmath}{ -\endgroup + \endgroup -\LWR@htmlclosecomment -\LWR@orignewline -\LWR@startpars + \LWR@htmlclosecomment + \LWR@orignewline + \LWR@startpars } @@ -10786,54 +10993,54 @@ autopage-\theLWR@currentautosec% \newbool{LWR@numbereqnarray} \booltrue{LWR@numbereqnarray} \newcommand{\LWR@eqnarrayfactor}{% -\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% -{% - \LWR@syncmathjax - \boolfalse{LWR@amsmultline} - \ifbool{LWR@numbereqnarray} - { - \LWR@beginhideamsmath - \LWR@origeqnarray - \BODY - \LWR@origendeqnarray - \LWR@endhideamsmath - \LWR@addmathjax{eqnarray}{\BODY} - }% - {% not LWR@numbereqnarray - \LWR@addmathjax{eqnarray*}{\BODY} - }% LWR@numbereqnarray -}% mathjax -{% not mathjax - \ifbool{LWR@numbereqnarray} - { - \begin{BlockClass}{displaymathnumbered}% - \LWR@newautoidanchor% - \booltrue{LWR@indisplaymathimage}% - \begin{lateximage}[(\LWR@startingequationtag--\LWR@equationtag) - \LWR@addmathjax{eqnarray}{\BODY}]* - \LWR@applyxfakebold% - \LWR@origeqnarray - \BODY - \LWR@origendeqnarray - \end{lateximage} - \end{BlockClass} - }% - {% not LWR@numbereqnarray - \begin{BlockClass}{displaymath} - \LWR@newautoidanchor% - \booltrue{LWR@indisplaymathimage}% - \begin{lateximage}[\LWR@addmathjax{eqnarray*}{\BODY}]* - \LWR@applyxfakebold% - \LWR@origeqnarray - \BODY - \nonumber - \LWR@origendeqnarray - \end{lateximage} - \end{BlockClass} - }% LWR@numbereqnarray -}% not mathjax -\booltrue{LWR@numbereqnarray} -\gdef\LWR@ThisAltText{}% + \ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% + {% + \LWR@syncmathjax% + \boolfalse{LWR@amsmultline}% + \ifbool{LWR@numbereqnarray}% + {% + \LWR@beginhideamsmath% + \LWR@origeqnarray% + \BODY% + \LWR@origendeqnarray% + \LWR@endhideamsmath% + \LWR@addmathjax{eqnarray}{\BODY}% + }% + {% not LWR@numbereqnarray + \LWR@addmathjax{eqnarray*}{\BODY}% + }% LWR@numbereqnarray + }% mathjax + {% not mathjax + \ifbool{LWR@numbereqnarray}% + {% + \begin{BlockClass}{displaymathnumbered}% + \LWR@newautoidanchor% + \booltrue{LWR@indisplaymathimage}% + \begin{lateximage}[(\LWR@startingequationtag--\LWR@equationtag)% + \LWR@addmathjax{eqnarray}{\BODY}]*% + \LWR@applyxfakebold% + \LWR@origeqnarray% + \BODY% + \LWR@origendeqnarray% + \end{lateximage}% + \end{BlockClass}% + }% + {% not LWR@numbereqnarray + \begin{BlockClass}{displaymath}% + \LWR@newautoidanchor% + \booltrue{LWR@indisplaymathimage}% + \begin{lateximage}[\LWR@addmathjax{eqnarray*}{\BODY}]*% + \LWR@applyxfakebold% + \LWR@origeqnarray% + \BODY% + \nonumber% + \LWR@origendeqnarray% + \end{lateximage}% + \end{BlockClass}% + }% LWR@numbereqnarray + }% not mathjax + \booltrue{LWR@numbereqnarray}% + \gdef\LWR@ThisAltText{}% } \RenewEnviron{eqnarray} {% @@ -10866,53 +11073,18 @@ autopage-\theLWR@currentautosec% \begin{warpHTML} -\newrobustcmd{\LWR@HTMLsanitize}[1]{% -\begingroup% -\LWR@FBcancel% -\fullexpandarg% -\protect\StrSubstitute{\detokenize{#1}}% -{\detokenize{&}}{\detokenize{&}}[\LWR@strresult]% -\protect\StrSubstitute{\detokenize\expandafter{\LWR@strresult}}% -{\detokenize{<}}{\detokenize{<}}[\LWR@strresult]% -\protect\StrSubstitute{\detokenize\expandafter{\LWR@strresult}}% -{\detokenize{>}}{\detokenize{>}}[\LWR@strresult]% -\protect\StrSubstitute{\detokenize\expandafter{\LWR@strresult}}% -{\detokenize{"}}{\detokenize{"}}[\LWR@strresult]% -\protect\StrSubstitute{\detokenize\expandafter{\LWR@strresult}}% -{\detokenize{##}}{\LWR@origpound}[\LWR@strresult]% -\LWR@strresult% -\endgroup% -} - -\newrobustcmd{\LWR@HTMLsanitizeexpand}[1]{% -\begingroup% -\LWR@FBcancel% -\fullexpandarg% -\protect\StrSubstitute{\detokenize\expandafter{#1}}% -{\detokenize{&}}{\detokenize{&}}[\LWR@strresult]% -\protect\StrSubstitute{\detokenize\expandafter{\LWR@strresult}}% -{\detokenize{<}}{\detokenize{<}}[\LWR@strresult]% -\protect\StrSubstitute{\detokenize\expandafter{\LWR@strresult}}% -{\detokenize{>}}{\detokenize{>}}[\LWR@strresult]% -\protect\StrSubstitute{\detokenize\expandafter{\LWR@strresult}}% -{\detokenize{"}}{\detokenize{"}}[\LWR@strresult]% -\LWR@strresult% -\endgroup% -} - - \newcounter{LWR@startingequation} \@ifundefined{chapter} { \renewcommand{\theLWR@startingequation}{% -\arabic{LWR@startingequation}% + \arabic{LWR@startingequation}% } } {% chapter defined \renewcommand{\theLWR@startingequation}{% -\ifnumcomp{\value{chapter}}{>}{0}{\arabic{chapter}.}{}% -\arabic{LWR@startingequation}% + \ifnumcomp{\value{chapter}}{>}{0}{\arabic{chapter}.}{}% + \arabic{LWR@startingequation}% } } @@ -10927,12 +11099,12 @@ autopage-\theLWR@currentautosec% \ifbool{mathjax}{}{% not mathjax \NewDocumentCommand{\LWR@remembertag}{m}{% -\ifbool{LWR@isstartingequation}% -{% - \global\boolfalse{LWR@isstartingequation}% - \xdef\LWR@startingequationtag{#1}% -}{}% -\xdef\LWR@equationtag{#1}% + \ifbool{LWR@isstartingequation}% + {% + \global\boolfalse{LWR@isstartingequation}% + \xdef\LWR@startingequationtag{#1}% + }{}% + \xdef\LWR@equationtag{#1}% }% }% not mathjax @@ -10941,17 +11113,17 @@ autopage-\theLWR@currentautosec% \newcommand*{\LWR@amsmathbody}[1] {% -\textbackslash\{begin\}\{#1\} % extra space -\LWR@HTMLsanitizeexpand{\detokenize\expandafter{\the\@envbody}}% -\textbackslash\{end\}\{#1\}% + \textbackslash\{begin\}\{#1\} % extra space + \LWR@HTMLsanitizeexpand{\detokenize\expandafter{\the\@envbody}}% + \textbackslash\{end\}\{#1\}% } \newcommand*{\LWR@amsmathbodynumbered}[1] {% -\ifnumcomp{\value{LWR@startingequation}}{=}{\value{equation}}% -{(\LWR@equationtag)}% -{(\LWR@startingequationtag--\LWR@equationtag)} % extra space -\LWR@amsmathbody{#1} % extra space + \ifnumcomp{\value{LWR@startingequation}}{=}{\value{equation}}% + {(\LWR@equationtag)}% + {(\LWR@startingequationtag--\LWR@equationtag)} % extra space + \LWR@amsmathbody{#1} % extra space } @@ -10992,7 +11164,7 @@ autopage-\theLWR@currentautosec% \global\advance\c@LWR@lateximagedepth 1\relax% Due to AmS \text macro. }% {% start of outer-most lateximage -\LWR@traceinfo{lateximage: starting outer-most lateximage}% + \LWR@traceinfo{lateximage: starting outer-most lateximage}% \setcounter{LWR@startingequation}{\value{equation}}% \addtocounter{LWR@startingequation}{1}% \booltrue{LWR@isstartingequation}% @@ -11047,7 +11219,11 @@ autopage-\theLWR@currentautosec% \LWR@traceinfo{lateximage: about to create a new page}% \LWR@orignewpage% \LWR@traceinfo{lateximage: about to create minipage}% - \LWR@print@minipage{6in}% + \ifdimless{\linewidth}{6in}{% + \LWR@print@minipage{\linewidth}% + }{% + \LWR@print@minipage{6in}% + }% \@nameuse{LWR@print@\LateximageFontSizeName}% \LWR@traceinfo{lateximage: about to temporarily restore formatting}% \LWR@restoreorigformatting% @@ -11123,50 +11299,50 @@ autopage-\theLWR@currentautosec% \renewenvironment*{center} { -\LWR@forcenewpage -\ifbool{FormatWP} -{\BlockClass[\LWR@print@mbox{text-align:center}]{center}} -{\BlockClass{center}} + \LWR@forcenewpage + \ifbool{FormatWP} + {\BlockClass[\LWR@print@mbox{text-align:center}]{center}} + {\BlockClass{center}} } {\endBlockClass} \renewenvironment*{flushright} { -\LWR@forcenewpage -\ifbool{FormatWP} -{\BlockClass[\LWR@print@mbox{text-align:right}]{flushright}} -{\BlockClass{flushright}} + \LWR@forcenewpage + \ifbool{FormatWP} + {\BlockClass[\LWR@print@mbox{text-align:right}]{flushright}} + {\BlockClass{flushright}} } {\endBlockClass} \renewenvironment*{flushleft} { -\LWR@forcenewpage -\ifbool{FormatWP} -{\BlockClass[\LWR@print@mbox{text-align:left}]{flushleft}} -{\BlockClass{flushleft}} + \LWR@forcenewpage + \ifbool{FormatWP} + {\BlockClass[\LWR@print@mbox{text-align:left}]{flushleft}} + {\BlockClass{flushleft}} } {\endBlockClass} \newcommand*{\LWR@HTML@centering}{% -\ifbool{HTMLDebugComments}{% - \LWR@htmlcomment{centering}% -}{}% + \ifbool{HTMLDebugComments}{% + \LWR@htmlcomment{centering}% + }{}% } \LWR@formatted{centering} \newcommand*{\LWR@HTML@raggedleft}{% -\ifbool{HTMLDebugComments}{% - \LWR@htmlcomment{raggedleft}% -}{}% + \ifbool{HTMLDebugComments}{% + \LWR@htmlcomment{raggedleft}% + }{}% } \LWR@formatted{raggedleft} \newcommand*{\LWR@HTML@raggedright}{% -\ifbool{HTMLDebugComments}{% - \LWR@htmlcomment{raggedright}% -}{}% + \ifbool{HTMLDebugComments}{% + \LWR@htmlcomment{raggedright}% + }{}% } \LWR@formatted{raggedright} @@ -11491,12 +11667,20 @@ autopage-\theLWR@currentautosec% \begin{warpHTML} - -\newcounter{LWR@minipagedepth} -\setcounter{LWR@minipagedepth}{0} - \newlength{\LWR@minipagewidth} \newlength{\LWR@minipageheight} +\newcounter{LWR@virtualpagedepth} +\setcounter{LWR@virtualpagedepth}{0} +\NewDocumentEnvironment{LWR@setvirtualpage}{s O{1}}{% + \ifnumequal{\value{LWR@virtualpagedepth}}{0}{% + \IfBooleanT{#1}{\LWR@orignewpage}% + \setlength{\linewidth}{6in/#2}% + \setlength{\textwidth}{6in}% + \setlength{\textheight}{9in}% + }{}% + \addtocounter{LWR@virtualpagedepth}{1}% +} +{\addtocounter{LWR@virtualpagedepth}{-1}} \newbool{LWR@minipagefullwidth} \boolfalse{LWR@minipagefullwidth} \newbool{LWR@forceminipagefullwidth} @@ -11516,19 +11700,14 @@ autopage-\theLWR@currentautosec% \NewDocumentEnvironment{LWR@HTML@sub@minipage}{m m m m} {% \LWR@traceinfo{minipage}% -\begingroup% +\begin{LWR@setvirtualpage}*% \setlength{\LWR@minipagewidth}{#4}% -\ifthenelse{\cnttest{\value{LWR@minipagedepth}}{=}{0}}{% - \LWR@orignewpage% +\ifnumequal{\value{LWR@virtualpagedepth}}{1}{% \addtolength{\LWR@minipagewidth}{3em}% room for frames - \setlength{\linewidth}{6in}% - \setlength{\textwidth}{6in}% - \setlength{\textheight}{9in}% }{}% \LWR@traceinfo{computed width is \LWR@printlength{\LWR@minipagewidth}}% \setlength{\LWR@minipageheight}{\textheight}% default unless specified \ifblank{#2}{}{\setlength{\LWR@minipageheight}{#2}}% -\addtocounter{LWR@minipagedepth}{1}% \ifbool{FormatWP}{\newline}{}% \LWR@stoppars% \ifbool{FormatWP}{% @@ -11565,10 +11744,10 @@ autopage-\theLWR@currentautosec% \ifblank{#2}{}{height:\LWR@printlength{\LWR@minipageheight} ; }% "}% -\setlength{\linewidth}{\LWR@minipagewidth}% the padded width -\addtolength{\linewidth}{-3em}% the original width -\setlength{\textwidth}{6in}% -\setlength{\textheight}{9in}% +\ifnumequal{\value{LWR@virtualpagedepth}}{1}{% + \addtolength{\LWR@minipagewidth}{-3em}% undo frame padding +}{}% +\setlength{\linewidth}{\LWR@minipagewidth}% \LWR@print@raggedright% \def\@mpfn{mpfootnote}% \def\thempfn{\thempfootnote}\c@mpfootnote\z@% @@ -11589,7 +11768,6 @@ autopage-\theLWR@currentautosec% }{}% \LWR@stoppars% -\endgroup% \ifbool{FormatWP}{% @@ -11598,7 +11776,7 @@ autopage-\theLWR@currentautosec% }{}% \LWR@htmldivclassend{minipage}% -\addtocounter{LWR@minipagedepth}{-1}% +\end{LWR@setvirtualpage}% \LWR@startpars% \ifbool{FormatWP}{\newline}{}% \global\booltrue{LWR@minipagethispar}% @@ -11647,38 +11825,38 @@ autopage-\theLWR@currentautosec% }% } \NewDocumentCommand{\LWR@HTML@makebox}{>{\SplitArgument{1}{,}}d() o o +m}{% -{% scope - \def\LWR@temptwo{}% - \IfValueTF{#1}% - {% (width,height) .. - \LWR@@makebox@paren #1% - \IfValueT{#2}% - {% (width,height) [posn] - \LWR@@makebox@align{#2}% + \begin{LWR@setvirtualpage}% + \def\LWR@temptwo{}% + \IfValueTF{#1}% + {% (width,height) .. + \LWR@@makebox@paren #1% + \IfValueT{#2}% + {% (width,height) [posn] + \LWR@@makebox@align{#2}% + }% }% - }% - {% [width] - \IfValueT{#2}% [width] - {% - \setlength{\LWR@tempwidth}{#2}% - \ifdimgreater{\LWR@tempwidth}{0pt}{% - \appto{\LWR@temptwo}{% - width:\LWR@printlength{\LWR@tempwidth} ; % space - }% - }{}% + {% [width] + \IfValueT{#2}% [width] + {% + \setlength{\LWR@tempwidth}{#2}% + \ifdimgreater{\LWR@tempwidth}{0pt}{% + \appto{\LWR@temptwo}{% + width:\LWR@printlength{\LWR@tempwidth} ; % space + }% + }{}% + }% }% - }% - \IfValueT{#3}% - {% [width] [posn] - \LWR@@makebox@align{#3}% - }% - \InlineClass[% - \LWR@print@mbox{display:inline-block} ; % - \LWR@temptwo% - ]% - {makebox}% - {#4}% -}% scope + \IfValueT{#3}% + {% [width] [posn] + \LWR@@makebox@align{#3}% + }% + \InlineClass[% + \LWR@print@mbox{display:inline-block} ; % + \LWR@temptwo% + ]% + {makebox}% + {#4}% + \end{LWR@setvirtualpage}% } \LWR@formatted{makebox} \NewDocumentCommand{\LWR@HTML@framebox}{d() o o +m}{% @@ -11766,9 +11944,10 @@ color:\LWR@origpound\LWR@tempcolor% \NewDocumentEnvironment{LWR@HTML@fminipage}{O{t} o O{t} m} {% \LWR@traceinfo{fminipage #1 #2 #3 #4}% -\LWR@forceminwidth{\fboxrule}% +\begin{LWR@setvirtualpage}*% \setlength{\LWR@tempwidth}{#4}% \IfValueT{#2}{\setlength{\LWR@tempheight}{#2}}% +\LWR@forceminwidth{\fboxrule}% \LWR@stoppars% \begin{BlockClass}[% \LWR@fboxstyle ; % @@ -11788,6 +11967,7 @@ color:\LWR@origpound\LWR@tempcolor% } {% \end{BlockClass}% +\end{LWR@setvirtualpage}% \global\booltrue{LWR@minipagethispar}% \LWR@traceinfo{fminipage done}% } @@ -12286,34 +12466,36 @@ color:\LWR@origpound\LWR@tempcolor% \renewrobustcmd*{~}{\HTMLentity{nbsp}} \renewrobustcmd*{\textellipsis}{\HTMLunicode{2026}} } -\newrobustcmd*{\LWR@HTML@normalsize}{} +\newcommand*{\LWR@font@size}{normalsize} + +\newrobustcmd*{\LWR@HTML@normalsize}{\renewcommand*{\LWR@font@size}{normalsize}} \LWR@formatted{normalsize} -\newrobustcmd*{\LWR@HTML@small}{} +\newrobustcmd*{\LWR@HTML@small}{\renewcommand*{\LWR@font@size}{small}} \LWR@formatted{small} -\newrobustcmd*{\LWR@HTML@footnotesize}{} +\newrobustcmd*{\LWR@HTML@footnotesize}{\renewcommand*{\LWR@font@size}{footnotesize}} \LWR@formatted{footnotesize} -\newrobustcmd*{\LWR@HTML@scriptsize}{} +\newrobustcmd*{\LWR@HTML@scriptsize}{\renewcommand*{\LWR@font@size}{scriptsize}} \LWR@formatted{scriptsize} -\newrobustcmd*{\LWR@HTML@tiny}{} +\newrobustcmd*{\LWR@HTML@tiny}{\renewcommand*{\LWR@font@size}{tiny}} \LWR@formatted{tiny} -\newrobustcmd*{\LWR@HTML@large}{} +\newrobustcmd*{\LWR@HTML@large}{\renewcommand*{\LWR@font@size}{large}} \LWR@formatted{large} -\newrobustcmd*{\LWR@HTML@Large}{} +\newrobustcmd*{\LWR@HTML@Large}{\renewcommand*{\LWR@font@size}{Large}} \LWR@formatted{Large} -\newrobustcmd*{\LWR@HTML@LARGE}{} +\newrobustcmd*{\LWR@HTML@LARGE}{\renewcommand*{\LWR@font@size}{LARGE}} \LWR@formatted{LARGE} -\newrobustcmd*{\LWR@HTML@huge}{} +\newrobustcmd*{\LWR@HTML@huge}{\renewcommand*{\LWR@font@size}{huge}} \LWR@formatted{huge} -\newrobustcmd*{\LWR@HTML@Huge}{} +\newrobustcmd*{\LWR@HTML@Huge}{\renewcommand*{\LWR@font@size}{Huge}} \LWR@formatted{Huge} \DeclareDocumentCommand{\onecolumn}{}{} @@ -12736,6 +12918,111 @@ color:\LWR@origpound\LWR@tempcolor% }{} } \end{warpHTML} + +\begin{warpHTML} +\AtBeginDocument{ + +\@ifpackageloaded{polyglossia}{ + \PackageWarningNoLine{lwarp} + {% + Polyglossia has been loaded. Lwarp also uses cleveref.\MessageBreak + See the cleveref documentation regarding\MessageBreak + polyglossia support% + } + \typeout{If the error} + \typeout{\space\space``! Undefined control sequence. + \space ... \space \protect\@begindocumenthook''} + \typeout{occurs here, use the polyglossia macro:} + \typeout{\space\space\protect\setmainlanguage\protect{...\protect}} + \typeout{---} +}{ + \@ifpackageloaded{babel}{ + \PackageWarningNoLine{lwarp} + {% + Babel has been loaded. Lwarp also uses cleveref.\MessageBreak + See the cleveref documentation regarding\MessageBreak + babel support% + } + }{} +} + +} +\end{warpHTML} +\newcommand*{\LWR@mathjaxwarn}[2]{% + \@ifpackageloaded{lwarp-#1}{% + \ifblank{#2}{% + \PackageWarningNoLine{lwarp} + {% + Lwarp provides emulation for MathJax when used\MessageBreak + with the #1 package% + } + }{% + \PackageWarningNoLine{lwarp} + {% + Lwarp provides emulation for MathJax when used\MessageBreak + with the #1 package.\MessageBreak + #2% + } + }% + }{}% +} + +\AtBeginDocument{ + \ifbool{mathjax}{ + \LWR@mathjaxwarn{arydshln} + {In a math array, do not use the optional argument\MessageBreak + for \protect\cdashline.\space\space + Furthermore, \protect\cline\space is not\MessageBreak + supported by MathJax} + \LWR@mathjaxwarn{autonum} + {MathJax does not support equation+.\MessageBreak + You may use the warpprint and warpHTML\MessageBreak + environments to isolate the package load\MessageBreak + and the equation+ environments} + \LWR@mathjaxwarn{backnaur} + {You may enclose its uses inside\MessageBreak + lateximage environments to force SVG output,\MessageBreak + but this also changes the print output} + \LWR@mathjaxwarn{bigdelim} + {Delimiters appear only of the first line} + \LWR@mathjaxwarn{booktabs} + {In a math array, do not use (trim) for \protect\cmidrule} + \LWR@mathjaxwarn{breqn} + {Each environment becomes an SVG image} + \LWR@mathjaxwarn{delarray} + {Enclose its uses inside lateximage\MessageBreak + environments to force SVG output} + \LWR@mathjaxwarn{jkmath}{} + \LWR@mathjaxwarn{mathspec}{} + \LWR@mathjaxwarn{mathtools} + {Avoid starred macros.\MessageBreak + See the Lwarp manual for other limitations} + \LWR@mathjaxwarn{multirow} + {Multirow works as expected in text mode, but\MessageBreak + limited emulation is provided for MathJax math.\MessageBreak + \protect\multirow\space ignores all arguments except\MessageBreak + the text} + \LWR@mathjaxwarn{pb-diagram} + {Enclose its uses inside lateximage environments\MessageBreak + to force SVG output} + \LWR@mathjaxwarn{physics} + {The third-party extension is not yet used.\MessageBreak + Avoid starred macros and automatic delimiters.\MessageBreak + Use all mandatory arguments, adding empty as needed.\MessageBreak + See the Lwarp manual for details} + \LWR@mathjaxwarn{unicode-math} + {Not all characters are encoded correctly.\MessageBreak + Some symbol fonts are not supported by MathJax,\MessageBreak + and are only approximated} + \LWR@mathjaxwarn{witharrows} + {Arrows can only point to the next line.\MessageBreak + Text is only placed on a single line} + \LWR@mathjaxwarn{xy} + {xy works in text, but in math you must\MessageBreak + enclose its uses inside lateximage\MessageBreak + environments to force SVG output} + }{} +} \endinput %% %% End of file `lwarp.sty'. |