%%
%% This is file `lwarp.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% lwarp.dtx (with options: `package')
%% This is a generated file.
%% Copyright 2016 Brian Dunn
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%% http://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
\ProvidesPackage{lwarp}
[2017/02/09 v0.20 Allows LaTeX to directly produce HTML5 output.]
\RequirePackage{iftex}
\ifLuaTeX
\RequirePackage{luatex85}% until the geometry package is updated
\fi
\RequirePackage{newunicodechar}
\newunicodechar{⨯}{\texttimes}
\ifPDFTeX
\newunicodechar{ff}{ff}
\newunicodechar{fi}{fi}
\newunicodechar{fl}{fl}
\newunicodechar{ffi}{ffi}
\newunicodechar{ffl}{ffl}
\newunicodechar{—}{---}
\newunicodechar{–}{--}
\RequirePackage{upquote}
\else
\fi
\RequirePackage{etoolbox}[2011/01/03]
\RequirePackage{ifplatform}% sense op-system platform
\RequirePackage{comment}
\excludecomment{testing}
\RequirePackage{kvoptions}
\SetupKeyvalOptions{family=LWR,prefix=LWR@}
\newbool{warpingprint}
\newbool{warpingHTML}
\newbool{mathjax}
\newcommand{\warpprintonly}[1]{\ifbool{warpingprint}{#1}{}}
\newcommand{\warpHTMLonly}[1]{\ifbool{warpingHTML}{#1}{}}
\includecomment{warpall}
\DeclareVoidOption{warpprint}{%
\PackageInfo{lwarp}{Using option 'warpprint'}
\includecomment{warpprint}%
\excludecomment{warpHTML}%
\booltrue{warpingprint}%
\boolfalse{warpingHTML}%
}
\DeclareVoidOption{warpHTML}{%
\PackageInfo{lwarp}{Using option 'warpHTML'}
\excludecomment{warpprint}%
\includecomment{warpHTML}%
\booltrue{warpingHTML}%
\boolfalse{warpingprint}%
}
\DeclareVoidOption{mathsvg}{%
\PackageInfo{lwarp}{Using option 'mathsvg'}
\boolfalse{mathjax}%
}
\DeclareVoidOption{mathjax}{%
\PackageInfo{lwarp}{Using option 'mathjax'}
\booltrue{mathjax}%
}
\DeclareStringOption[\jobname]{BaseJobname}
\includecomment{warpprint}%
\excludecomment{warpHTML}%
\booltrue{warpingprint}%
\boolfalse{warpingHTML}%
\boolfalse{mathjax}%
\ProcessKeyvalOptions*\relax
\providecommand*{\BaseJobname}{\LWR@BaseJobname}
\def\@nameedef#1{\expandafter\edef\csname #1\endcsname}
\begin{warpall}
\RequirePackage{iftex}
\newif\ifxetexorluatex
\ifXeTeX
\xetexorluatextrue
\else
\ifLuaTeX
\xetexorluatextrue
\else
\xetexorluatexfalse
\fi
\fi
\end{warpall}
\begin{warpHTML}
\ifxetexorluatex
\defaultfontfeatures[\rmfamily]{Ligatures={NoCommon,TeX}}
\defaultfontfeatures[\sffamily]{Ligatures={NoCommon,TeX}}
\defaultfontfeatures[\ttfamily]{Ligatures=NoCommon}
\else
\RequirePackage {microtype}
\microtypesetup{
protrusion=false,
expansion=false,
tracking=false,
kerning=false,
spacing=false}
\DisableLigatures[f,q,t,T,Q]{encoding = *,family = *}
\fi
\end{warpHTML}
\begin{warpHTML}
\RequirePackage[paperheight=190in,paperwidth=20in,%
left=7in,right=7in,%
top=1in,bottom=1in,%
]{geometry}
\end{warpHTML}
\begin{warpall}
\RequirePackage{xparse}
\end{warpall}
\begin{warpHTML}
\RequirePackage{expl3}
\RequirePackage{gettitlestring}
\RequirePackage{everyhook}
\end{warpHTML}
\begin{warpall}
\RequirePackage{fancyvrb}
\end{warpall}
\begin{warpHTML}
\RequirePackage{xifthen}
\RequirePackage{xstring}
\RequirePackage{makeidx}
\makeindex
\RequirePackage{calc}
\RequirePackage{newfloat}
\RequirePackage{caption}
\RequirePackage{subcaption}
\RequirePackage{enumitem}
\setlist[itemize]{leftmargin=0em}
\setlist[enumerate]{leftmargin=0em}
\setlist[description]{leftmargin=0em}
\RequirePackage[continuous]{pagenote}
\makepagenote
\let\LWR@origmakepagenote\makepagenote
\let\LWR@origprintnotes\printnotes
\let\LWR@origpagenote\pagenote
\end{warpHTML}
\begin{warpall}
\RequirePackage{titling}
\end{warpall}
\begin{warpHTML}
\RequirePackage{zref}
\PassOptionsToPackage{leqno,fleqn}{amsmath}
\RequirePackage{amsmath}
\RequirePackage{environ}
\RequirePackage[nopatches]{titleps}
\let\LWR@origpagestyle\pagestyle
\renewcommand*{\pagestyle}[1]{}
\let\LWR@origthispagestyle\thispagestyle
\renewcommand*{\thispagestyle}[1]{}
\let\LWR@origpagenumbering\pagenumbering
\renewcommand*{\pagenumbering}[1]{}
\RequirePackage{xfrac}
\RequirePackage{printlen}
\end{warpHTML}
\begin{warpHTML}
\let\LWR@origRequirePackage\RequirePackage
\newcommand*{\LWR@requirepackagenames}{}
\newcommand*\LWR@findword[3][,]{%
\StrBetween[#3,\numexpr#3+1]{#1#2#1}{#1}{#1}%
}
\newcommand*{\LWR@lookforpackagename}[1]{
\LWR@findword{\LWR@requirepackagenames}{#1}[\LWR@strresult]
\IfStrEq{\LWR@strresult}{}
{}% no filename
{% yes filename
\IfFileExists{lwarp-\LWR@strresult.sty}
{% latex_html_ file found
\StrSubstitute
{\LWR@requirepackagenames}
{\LWR@strresult}
{lwarp-\LWR@strresult}[\LWR@requirepackagenames]
}
{}% no latex_html_* file
}% yes filename
}
\RenewDocumentCommand{\RequirePackage}{o m o}{%
\renewcommand*{\LWR@requirepackagenames}{#2}
\LWR@lookforpackagename{1}
\LWR@lookforpackagename{2}
\LWR@lookforpackagename{3}
\LWR@lookforpackagename{4}
\LWR@lookforpackagename{5}
\LWR@lookforpackagename{6}
\LWR@lookforpackagename{7}
\LWR@lookforpackagename{8}
\LWR@lookforpackagename{9}
\IfValueTF{#1}
{% options given
\IfValueTF{#3}% version given?
{\LWR@origRequirePackage[#1]{\LWR@requirepackagenames}[#3]}
{\LWR@origRequirePackage[#1]{\LWR@requirepackagenames}}
}
{% no options given
\IfValueTF{#3}% version given?
{\LWR@origRequirePackage{\LWR@requirepackagenames}[#3]}
{\LWR@origRequirePackage{\LWR@requirepackagenames}}
}
}
\let\usepackage\RequirePackage
\NewDocumentCommand{\LWR@ProvidesPackagePass}{m o}{
\PackageInfo{lwarp}{Using the lwarp version of package `#1', 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}}
}
\NewDocumentCommand{\LWR@ProvidesPackageDrop}{m o}{
\PackageInfo{lwarp}{Using the lwarp version of package `#1', discarding options,}%
\IfValueTF{#2}
{\ProvidesPackage{lwarp-#1}[#2]}
{\ProvidesPackage{lwarp-#1}}
\DeclareOption*{}
\ProcessOptions\relax
}
\end{warpHTML}
\begin{warpHTML}
\newcommand*{\LWR@copyfile}[2]{%
\newwrite\copyfile % open the file to write to
\immediate\openout\copyfile=#2
\newread\file % open the file to read from
\openin\file=#1
\begingroup\endlinechar=-1
\makeatletter
\loop\unless\ifeof\file
\read\file to\fileline % Read one line and store it into \fileline
\immediate\write\copyfile{\unexpanded\expandafter{\fileline}}%
\repeat
\closeout\copyfile
\endgroup
}
\end{warpHTML}
\newbool{LWR@tracinglwarp}
\newcommand{\tracinglwarp}{\booltrue{LWR@tracinglwarp}}
\newcommand{\LWR@traceinfo}[1]{%
\ifbool{LWR@tracinglwarp}%
{\PackageInfo{lwarp}{#1 : }}%
{}%
}
\begin{warpHTML}
\let\LWR@origtextit\textit
\let\LWR@origtextbf\textbf
\let\LWR@origtexttt\texttt
\let\LWR@origtextsc\textsc
\let\LWR@origtextsf\textsf
\let\LWR@origtextrm\textrm
\let\LWR@origbfseries\bfseries
\let\LWR@origrmfamily\rmfamily
\let\LWR@origttfamily\ttfamily
\let\LWR@orignormalfont\normalfont
\let\LWR@origraggedright\raggedright
\let\LWR@origonecolumn\onecolumn
\let\LWR@origtextsuperscript\textsuperscript
\let\LWR@origtextsubscript\textsubscript
\let\LWR@origscriptsize\scriptsize
\let\LWR@orignewpage\newpage
\let\LWR@origminipage\minipage
\let\LWR@origendminipage\endminipage
\let\LWR@orignewline\newline
\let\LWR@origitem\item
\let\LWR@origpar\par
\let\LWR@origfootnote\footnote
\let\LWR@orig@mpfootnotetext\@mpfootnotetext
\let\LWR@origclearpage\clearpage
\let\clearpage\relax
\let\cleardoublepage\relax
\end{warpHTML}
\begin{warpall}
\newbool{usingOSwindows}
\boolfalse{usingOSwindows}
\newcommand*{\OSPathSymbol}{/}
\newcommand*{\OSmkdir}{mkdir } % trailing space is required
\newcommand*{\OSrm}{rm }
\newcommand*{\OSmv}{mv }
\newcommand*{\OSShellPath}{/bin/sh}
\newcommand*{\warpOSwindows}
{
\booltrue{usingOSwindows}
\renewcommand*{\OSPathSymbol}{\@backslashchar}
\renewcommand*{\OSmkdir}{MD }
\renewcommand*{\OSrm}{DEL }
\renewcommand*{\OSmv}{MOVE }
}
\ifwindows
\warpOSwindows
\fi
\end{warpall}
\begin{warpHTML}
\newcommand*{\LWR@depthnone}{-5}
\newcommand*{\LWR@depthfinished}{-4}
\newcommand*{\LWR@depthpart}{-1}
\newcommand*{\LWR@depthchapter}{0}
\newcommand*{\LWR@depthsection}{1}
\newcommand*{\LWR@depthsubsection}{2}
\newcommand*{\LWR@depthsubsubsection}{3}
\newcommand*{\LWR@depthparagraph}{4}
\newcommand*{\LWR@depthsubparagraph}{5}
\newcommand*{\LWR@depthlist}{6}
\newcommand*{\LWR@depthlistitem}{7}
\newcommand*{\LWR@closeone}{}% top of the stack
\newcommand*{\LWR@closetwo}{}
\newcommand*{\LWR@closethree}{}
\newcommand*{\LWR@closefour}{}
\newcommand*{\LWR@closefive}{}
\newcommand*{\LWR@closesix}{}
\newcommand*{\LWR@closeseven}{}
\newcommand*{\LWR@closeeight}{}
\newcommand*{\LWR@closenine}{}
\newcommand*{\LWR@closeten}{}
\newcommand*{\LWR@closeeleven}{}
\newcommand*{\LWR@closetwelve}{}
\newcommand*{\LWR@closedepthone}{\LWR@depthnone}% top of the stack
\newcommand*{\LWR@closedepthtwo}{\LWR@depthnone}
\newcommand*{\LWR@closedepththree}{\LWR@depthnone}
\newcommand*{\LWR@closedepthfour}{\LWR@depthnone}
\newcommand*{\LWR@closedepthfive}{\LWR@depthnone}
\newcommand*{\LWR@closedepthsix}{\LWR@depthnone}
\newcommand*{\LWR@closedepthseven}{\LWR@depthnone}
\newcommand*{\LWR@closedeptheight}{\LWR@depthnone}
\newcommand*{\LWR@closedepthnine}{\LWR@depthnone}
\newcommand*{\LWR@closedepthten}{\LWR@depthnone}
\newcommand*{\LWR@closedeptheleven}{\LWR@depthnone}
\newcommand*{\LWR@closedepthtwelve}{\LWR@depthnone}
\NewDocumentCommand{\pushclose}{m m}
{
\let\LWR@closetwelve\LWR@closeeleven
\let\LWR@closeeleven\LWR@closeten
\let\LWR@closeten\LWR@closenine
\let\LWR@closenine\LWR@closeeight
\let\LWR@closeeight\LWR@closeseven
\let\LWR@closeseven\LWR@closesix
\let\LWR@closesix\LWR@closefive
\let\LWR@closefive\LWR@closefour
\let\LWR@closefour\LWR@closethree
\let\LWR@closethree\LWR@closetwo
\let\LWR@closetwo\LWR@closeone
\let\LWR@closeone#1
\let\LWR@closedepthtwelve\LWR@closedeptheleven
\let\LWR@closedepthelevel\LWR@closedepthten
\let\LWR@closedepthten\LWR@closedepthnine
\let\LWR@closedepthnine\LWR@closedeptheight
\let\LWR@closedeptheight\LWR@closedepthseven
\let\LWR@closedepthseven\LWR@closedepthsix
\let\LWR@closedepthsix\LWR@closedepthfive
\let\LWR@closedepthfive\LWR@closedepthfour
\let\LWR@closedepthfour\LWR@closedepththree
\let\LWR@closedepththree\LWR@closedepthtwo
\let\LWR@closedepthtwo\LWR@closedepthone
\let\LWR@closedepthone#2
}
\newcommand*{\popclose}
{
\let\LWR@closeone\LWR@closetwo
\let\LWR@closetwo\LWR@closethree
\let\LWR@closethree\LWR@closefour
\let\LWR@closefour\LWR@closefive
\let\LWR@closefive\LWR@closesix
\let\LWR@closesix\LWR@closeseven
\let\LWR@closeseven\LWR@closeeight
\let\LWR@closeeight\LWR@closenine
\let\LWR@closenine\LWR@closeten
\let\LWR@closeten\LWR@closeeleven
\let\LWR@closeeleven\LWR@closetwelve
\let\LWR@closedepthone\LWR@closedepthtwo
\let\LWR@closedepthtwo\LWR@closedepththree
\let\LWR@closedepththree\LWR@closedepthfour
\let\LWR@closedepthfour\LWR@closedepthfive
\let\LWR@closedepthfive\LWR@closedepthsix
\let\LWR@closedepthsix\LWR@closedepthseven
\let\LWR@closedepthseven\LWR@closedeptheight
\let\LWR@closedeptheight\LWR@closedepthnine
\let\LWR@closedepthnine\LWR@closedepthten
\let\LWR@closedepthten\LWR@closedeptheleven
\let\LWR@closedeptheleven\LWR@closedepthtwelve
}
\end{warpHTML}
\begin{warpHTML}
\NewDocumentCommand{\LWR@setexparray}{m m m}{%
\expandafter\edef\csname #1#2\endcsname{\expandonce#3}%
}
\newcommand*{\LWR@getexparray}[2]{\csuse{#1#2}}
\end{warpHTML}
\begin{warpHTML}
\let\LWR@origampersand\&
\newcommand*{\HTMLentity}[1]{\LWR@origampersand#1;}
\newcommand*{\HTMLunicode}[1]{\HTMLentity{\#x#1}}
\renewcommand*{\&}{\HTMLentity{amp}}
\let\LWR@origtextless\textless
\renewcommand*{\textless}{\HTMLentity{lt}}
\let\LWR@origtextgreater\textgreater
\renewcommand*{\textgreater}{\HTMLentity{gt}}
\end{warpHTML}
\begin{warpall}
\providecommand*{\BaseJobname}{\jobname}
\providecommand*{\HTMLFileName}{}
\providecommand*{\HomeHTMLFileName}{\BaseJobname}
\newcommand*{\SetHTMLFileNumber}[1]{%
\setcounter{LWR@htmlfilenumber}{#1}%
}
\newbool{FileSectionNames}
\booltrue{FileSectionNames}
\end{warpall}
\begin{warpHTML}
\newcounter{LWR@htmlfilenumber}
\setcounter{LWR@htmlfilenumber}{0}
\newcommand*{\LWR@htmlsectionfilename}[1]{%
\LWR@traceinfo{LWR@htmlsectionfilename A}%
\LWR@traceinfo{about to assign temp}%
\edef\LWR@tempone{#1}%
\LWR@traceinfo{about to compare with ??}%
\ifthenelse{\equal{\LWR@tempone}{??}}%
{%
\LWR@traceinfo{found ??}%
}{%
\LWR@traceinfo{not found ??}%
}%
\LWR@traceinfo{about to compare with zero or empty}%
\ifthenelse{%
\equal{\LWR@tempone}{0}%
\OR \equal{\LWR@tempone}{}%
\OR \equal{\LWR@tempone}{??}%
}%
{%
\LWR@traceinfo{LWR@htmlsectionfilename B \HomeHTMLFileName.html}%
\HomeHTMLFileName.html%
}%
{%
\LWR@traceinfo{LWR@htmlsectionfilename C}%
\ifthenelse{%
\equal{\HTMLFileName}{} \AND \equal{\LWR@tempone}{Index} \OR \equal{\LWR@tempone}{index}%
}%
{\_#1.html}%
{\HTMLFileName#1.html}%
}%
\LWR@traceinfo{LWR@htmlsectionfilename Z}%
}
\newcommand*{\LWR@htmlrefsectionfilename}[1]{%
\LWR@traceinfo{LWR@htmlrefsectionfilename A: !#1!}%
\LWR@htmlsectionfilename{\LWR@htmlfileref{#1}}%
\LWR@traceinfo{LWR@htmlrefsectionfilename B}%
}
\end{warpHTML}
\begin{warpHTML}
\newcommand*{\LinkHome}{%
\LWR@subhyperrefclass{%
\HomeHTMLFileName.html}%
{Home}{linkhome}%
}
\newcommand*{\LWR@topnavigation}{
\LWR@htmlelementclassline{nav}{topnavigation}{\LinkHome}
}
\newcommand*{\LWR@botnavigation}{
\LWR@htmlelementclassline{nav}{botnavigation}{\LinkHome}
}
\end{warpHTML}
\begin{warpHTML}
\newcommand*{\PrintStack}{
\LWR@startpars
\LWR@closedepthone{} \LWR@closedepthtwo{} \LWR@closedepththree{}
\LWR@closedepthfour{} \LWR@closedepthfive{} \LWR@closedepthsix{}
\LWR@closedepthseven{} \LWR@closedeptheight{} \LWR@closedepthnine{}
\LWR@closedepthten{} \LWR@closedeptheleven{} \LWR@closedepthtwelve{}
}
\end{warpHTML}
\begin{warpHTML}
\newcommand*{\LWR@closeoneprevious}{%
\LWR@closeone{}
\popclose{}
}
\newcommand*{\LWR@closeprevious}[1]{
\LWR@stoppars
\whiledo{\not\(\LWR@closedepthone<#1\)}{\LWR@closeoneprevious}
}
\end{warpHTML}
\begin{warpHTML}
\newcommand*{\LWR@tagpart}{h2}
\newcommand*{\LWR@tagpartend}{/h2}
\newcommand*{\LWR@tagchapter}{h3}
\newcommand*{\LWR@tagchapterend}{/h3}
\newcommand*{\LWR@tagsection}{h4}
\newcommand*{\LWR@tagsectionend}{/h4}
\newcommand*{\LWR@tagsubsection}{h5}
\newcommand*{\LWR@tagsubsectionend}{/h5}
\newcommand*{\LWR@tagsubsubsection}{h6}
\newcommand*{\LWR@tagsubsubsectionend}{/h6}
\newcommand*{\LWR@tagparagraph}{span class="paragraph"{}}
\newcommand*{\LWR@tagparagraphend}{/span}
\newcommand*{\LWR@tagsubparagraph}{span class="subparagraph"{}}
\newcommand*{\LWR@tagsubparagraphend}{/span}
\newcommand*{\LWR@tagregularparagraph}{p}
\newcommand*{\LWR@htmltagc}[1]{%
{%
\LWR@origttfamily%
\LWR@origtextless#1\LWR@origtextgreater%
}%
}
\newenvironment*{LWR@nestspan}
{%
\addtocounter{LWR@spandepth}{1}%
\RenewDocumentEnvironment{minipage}{O{t} o O{t} m}{}{}%
}%
{\addtocounter{LWR@spandepth}{-1}}
\NewDocumentCommand{\LWR@htmlspan}{m +m}{%
\LWR@ensuredoingapar%
\LWR@htmltagc{#1}%
\begin{LWR@nestspan}%
#2%
\LWR@htmltagc{/#1}%
\end{LWR@nestspan}%
}
\NewDocumentCommand{\LWR@htmlspanclass}{m o +m}{%
\LWR@ensuredoingapar%
\LWR@subhtmlelementclass{span}{#1}[#2]%
\begin{LWR@nestspan}%
#3%
\LWR@htmltagc{/span}%
\end{LWR@nestspan}%
}
\newcommand*{\LWR@htmltagb}[1]{%
\LWR@htmltagc{#1}%
\endgroup%
}
\newcommand*{\LWR@htmltag}{%
\begingroup\catcode`\_=12
\LWR@htmltagb%
}
\newcommand*{\LWR@htmlopencomment}{%
\begingroup\LWR@origttfamily\LWR@origtextless{}!{-}{-}\endgroup%
}
\newcommand*{\LWR@htmlclosecomment}{%
\begingroup\LWR@origttfamily{-}{-}\LWR@origtextgreater{}\endgroup%
}
\newcommand{\LWR@htmlcomment}[1]{%
\LWR@htmlopencomment{}%
\LWR@origtextrm{#1}%
\LWR@htmlclosecomment{}}
\newcommand{\LWR@htmlblockcommentb}[1]
{\LWR@stoppars\LWR@htmlcomment{#1}\LWR@startpars\endgroup}
\newcommand{\LWR@htmlblockcomment}
{%
\begingroup\catcode`\_=12%
\LWR@htmlblockcommentb%
}
\newcommand*{\LWR@htmlblocktag}[1]{%
\LWR@stoppars%
\LWR@htmltag{#1}%
\LWR@startpars%
}
\NewDocumentCommand{\LWR@htmlblocktagcomment}{m +m}{%
\LWR@stoppars%
\LWR@htmltag{#1}\LWR@htmlcomment{#2}\LWR@orignewline%
\LWR@startpars%
}
\NewDocumentCommand{\LWR@subhtmlelementclass}{m m o}{%
\IfValueTF{#3}%
{% option
\ifthenelse{\equal{#3}{}}%
{\LWR@htmltag{#1 class="#2"}}% empty option
{\LWR@htmltag{#1 class="#2" style="#3"}}% non-empty option
}% option
{\LWR@htmltag{#1 class="#2"}}% no option
}
\NewDocumentCommand{\LWR@htmlelementclass}{m m o}{%
\LWR@stoppars%
\LWR@subhtmlelementclass{#1}{#2}[#3]%
\LWR@startpars%
}
\newcommand*{\LWR@htmlelementclassend}[2]{%
\LWR@stoppars%
\LWR@htmltag{/#1}%
\LWR@htmlcomment{End of #1 ``#2''}%
\LWR@startpars%
}
\NewDocumentCommand{\LWR@htmldivclass}{m o}{%
\LWR@htmlelementclass{div}{#1}[#2]%
}
\newcommand*{\LWR@htmldivclassend}[1]{%
\LWR@htmlelementclassend{div}{#1}%
}
\NewDocumentCommand{\LWR@htmlelementclassline}{m m o +m}{%
\LWR@stoppars
\LWR@subhtmlelementclass{#1}{#2}[#3]%
#4%
\LWR@htmltag{/#1}
\LWR@startpars
}
\newcommand*{\LWR@htmlelement}[1]{%
\LWR@htmlblocktag{#1}
}
\newcommand*{\LWR@htmlelementend}[1]{%
\LWR@stoppars
\LWR@htmltag{/#1}
\LWR@startpars
}
\end{warpHTML}
\begin{warpHTML}
\NewDocumentEnvironment{BlockClass}{m o}
{
\LWR@htmldivclass{#1}[#2]
}
{
\LWR@htmldivclassend{#1}
}
\end{warpHTML}
\begin{warpprint}
\NewDocumentEnvironment{BlockClass}{m o}{}{}
\end{warpprint}
\begin{warpHTML}
\newcommand{\BlockClassSingle}[2]{%
\LWR@htmlelementclassline{div}{#1}{#2}%
}
\end{warpHTML}
\begin{warpprint}
\newcommand{\BlockClassSingle}[2]{#2}
\end{warpprint}
\begin{warpHTML}
\NewDocumentCommand{\InlineClass}{m o m}{%
\LWR@htmlspanclass{#1}[#2]{#3}%
}
\end{warpHTML}
\begin{warpprint}
\NewDocumentCommand{\InlineClass}{m o m}{#3}
\end{warpprint}
\begin{warpHTML}
\newcommand*{\LWR@printclosepart}
{\LWR@htmlcomment{Closing part}}
\newcommand*{\LWR@printclosechapter}
{\LWR@htmlcomment{Closing chapter}}
\newcommand*{\LWR@printclosesection}
{\LWR@htmlcomment{Closing section}}
\newcommand*{\LWR@printclosesubsection}
{\LWR@htmlcomment{Closing subsection}}
\newcommand*{\LWR@printclosesubsubsection}
{\LWR@htmlcomment{Closing subsubsection}}
\newcommand*{\LWR@printcloseparagraph}
{\LWR@htmlcomment{Closing paragraph}}
\newcommand*{\LWR@printclosesubparagraph}
{\LWR@htmlcomment{Closing subparagraph}}
\newcommand*{\LWR@printcloselistitem}
{\LWR@htmltag{/li}}
\newcommand*{\LWR@printclosedescitem}
{\LWR@htmltag{/dd}}
\newcommand*{\LWR@printcloseitemize}
{\LWR@htmltag{/ul}}
\newcommand*{\LWR@printcloseenumerate}
{\LWR@htmltag{/ol}}
\newcommand*{\LWR@printclosedescription}
{\LWR@htmltag{/dl}}
\end{warpHTML}
\begin{warpHTML}
\newcounter{LWR@spandepth}
\setcounter{LWR@spandepth}{0}
\newbool{LWR@doingstartpars}
\boolfalse{LWR@doingstartpars}
\newbool{LWR@doingapar}
\global\boolfalse{LWR@doingapar}
\newcommand*{\LWR@ensuredoingapar}{%
\ifbool{LWR@doingstartpars}%
{\global\booltrue{LWR@doingapar}}%
{}%
}
\newcommand*{\LWR@openparagraph}
{%
\ifbool{LWR@doingstartpars}%
{% handling pars
\ifthenelse{%
\cnttest{\value{LWR@lateximagedepth}}{>}{0} \OR%
\cnttest{\value{LWR@spandepth}}{>}{0}%
}% nested par tags?
{}% no nested par tags
{% yes nest par tags
\LWR@htmltagc{\LWR@tagregularparagraph}%
\ifnumcomp{\@listdepth}{>}{0}%
{%
\LWR@orighspace{1in}%
}{}%
\global\booltrue{LWR@doingapar}%
\let\par\LWR@closeparagraph%
}% end of yes nest par tags
}% end of handling pars
{}% not handling pars
}
\newcommand*{\LWR@closeparagraph}
{%
\ifbool{LWR@doingapar}%
{% handling pars
\ifthenelse{%
\cnttest{\value{LWR@lateximagedepth}}{>}{0} \OR%
\cnttest{\value{LWR@spandepth}}{>}{0}%
}%
{% no nested par tags
\ifthenelse{%
\cnttest{\value{LWR@spandepth}}{>}{0}%
\AND%
\cnttest{\value{LWR@lateximagedepth}}{=}{0}%
}%
{%
\ifbool{LWR@intabularmetadata}{}{\unskip\LWR@htmltagc{br /}}%
}%
{}%
}% no nested par tags
{% yes nest par tags
\unskip%
\LWR@htmltagc{/\LWR@tagregularparagraph}%
\global\boolfalse{LWR@doingapar}%
\global\boolfalse{LWR@minipagethispar}%
}% end of yes nest par tags
}% end of handling pars
{% not handling pars
\ifthenelse{\cnttest{\value{LWR@spandepth}}{>}{0}}%
{\ifbool{LWR@intabularmetadata}{}{\unskip\LWR@htmltagc{br /}}}%
{}%
}% not handling pars
\LWR@origpar%
}
\end{warpHTML}
\begin{warpHTML}
\newcommand*{\LWR@startpars}%
{%
\ifbool{LWR@doingstartpars}%
{}%
{%
\PushPreHook{par}{\LWR@openparagraph}%
\let\par\LWR@closeparagraph
}% an intentionally blank line
\global\setbool{LWR@doingstartpars}{true}%
\global\boolfalse{LWR@doingapar}%
}
\newcommand*{\LWR@stoppars}%
{%
\ifbool{LWR@doingapar}%
{%
\unskip%
\LWR@htmltagc{/\LWR@tagregularparagraph}%
\global\boolfalse{LWR@doingapar}%
\global\boolfalse{LWR@minipagethispar}
}% an intentionally blank line
{}%
\ifbool{LWR@doingstartpars}%
{%
\ClearPreHook{par}%
}%
{}%
\global\setbool{LWR@doingstartpars}{false}%
\global\boolfalse{LWR@doingapar}%
}
\end{warpHTML}
\begin{warpall}
\newcommand{\LWR@firstpagetop}{} % for the home page alone
\newcommand{\LWR@pagetop}{} % for all other pages
\newcommand{\LWR@pagebottom}{}
\newcommand{\LWR@setfirstpagetopb}[1]{%
\renewcommand{\LWR@firstpagetop}{#1}
\catcode`\_=8
}
\newcommand{\SetFirstPageTop}{%
\catcode`\_=12
\LWR@setfirstpagetopb
}
\newcommand{\LWR@setpagetopb}[1]{%
\renewcommand{\LWR@pagetop}{#1}
\catcode`\_=8
}
\newcommand{\SetPageTop}{%
\catcode`\_=12
\LWR@setpagetopb
}
\newcommand{\LWR@setpagebottomb}[1]{%
\renewcommand{\LWR@pagebottom}{#1}
\catcode`\_=8
}
\newcommand{\SetPageBottom}{%
\catcode`\_=12
\LWR@setpagebottomb
}
\end{warpall}
\begin{warpHTML}
\newcommand*{\LWR@currentcss}{lwarp.css}
\newcommand*{\LWR@newcssb}[1]{%
\renewcommand*{\LWR@currentcss}{#1}
\catcode`\_=8
}
\newcommand*{\NewCSS}{
\catcode`\_=12
\LWR@newcssb
}
\end{warpHTML}
\begin{warpprint}
\newcommand*{\NewCSS}[1]{}
\end{warpprint}
\begin{warpHTML}
\newcommand{\LWR@currentHTMLdescription}{}
\newcommand{\NewHTMLdescription}[1]{%
\renewcommand{\LWR@currentHTMLdescription}{#1}
}
\end{warpHTML}
\begin{warpprint}
\newcommand{\NewHTMLdescription}[1]{}
\end{warpprint}
\begin{warpHTML}
\AtEndPreamble{
\renewcommand*{\notedivision}
{\BlockClassSingle{footnoteheader}{}}
\renewcommand{\pagenotesubhead}[2]{}
\let\footnote\LWR@origpagenote
\renewcommand{\notenuminnotes}[1]{%
\textsuperscript{#1} }
\let\LWR@orignoteentry\noteentry
\renewcommand{\noteentry}[4]{%
\begingroup%
\renewcommand*{\@currentlabel}{#1}%
\renewcommand*{\cref@currentlabel}{[pagenote][#1][]{#1}}%
\LWR@orignoteentry{#1}{#2}{#3}{#4}%
\endgroup%
}
\newcommand*{\LWR@printpendingnotes}{
\ifthenelse{\cnttest{\value{pagenote}}{>}{0}}%
{
\begin{BlockClass}{footnotes}
\LWR@origprintnotes*
\setcounter{pagenote}{0}
\end{BlockClass}
}
{}
}
}% \AtEndPreamble
\end{warpHTML}
\begin{warpHTML}
\renewcommand{\marginpar}[2][]{%
\LWR@htmlspanclass{marginpar}{#2}%
}
\end{warpHTML}
\begin{warpall}
\newcounter{FileDepth}
\setcounter{FileDepth}{-5}
\newbool{CombineHigherDepths}
\booltrue{CombineHigherDepths}
\end{warpall}
\begin{warpHTML}
\newcommand*{\LWR@thisfilename}{}
\newcommand*{\LWR@thisnewfilename}{}
\newcommand*{\LWR@filenamenoblanks}[1]{%
\begingroup
\renewcommand*{\HTMLunicode}[1]{}
\renewcommand*{\HTMLentity}[1]{##1}
\renewcommand*{\LWR@htmltagc}[1]{}
\DeclareExpandableDocumentCommand{\InlineClass}{m o m}{##3}
\renewcommand*{\&}{and}
\renewcommand{\textit}[1]{##1}
\renewcommand{\textsc}[1]{##1}
\renewcommand{\textsl}[1]{##1}
\renewcommand{\textbf}[1]{##1}
\renewcommand{\texttt}[1]{##1}
\renewcommand{\textsf}[1]{##1}
\renewcommand{\textrm}[1]{##1}
\renewcommand{\textsuperscript}[1]{##1}
\renewcommand{\textsubscript}[1]{##1}
\edef\LWR@thisnewfilename{#1}
\fullexpandarg
\StrSubstitute{\LWR@thisnewfilename}{ }{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{,}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{'}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}%
{\LWR@origampersand}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{+}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{,}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{/}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{:}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{;}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{=}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{?}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{@}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{"}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}%
{\textless}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}%
{\textgreater}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{\#}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{\%}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{\{}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{\}}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{|}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}%
{\textbackslash}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{^}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{~{}}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{[}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{]}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{`}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{-s-}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{-S-}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{-a-}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{-A-}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{-an-}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{-AN-}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{-to-}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{-TO-}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{-by-}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{-BY-}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{-of-}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{-OF-}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{-and-}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{-AND-}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{-for-}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{-FOR-}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{-the-}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{-THE-}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{-----}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{----}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{---}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{--}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{—}{-}[\LWR@thisnewfilename]
\StrSubstitute{\LWR@thisnewfilename}{–}{-}[\LWR@thisnewfilename]
\global\let\LWR@thisfilename\LWR@thisnewfilename% return a global result
\endgroup
}
\newcommand*{\LWR@newhtmlfile}[1]{
\LWR@htmlelementclassend{section}{textbody}
\LWR@printpendingnotes
\LWR@htmlelement{footer}
\LWR@pagebottom
\LWR@htmlelementend{footer}
\ifnumcomp{\value{LWR@htmlfilenumber}}{>}{0}{\LWR@botnavigation}{}
\LWR@stoppars
\LWR@htmltag{/body}\LWR@orignewline
\LWR@htmltag{/html}\LWR@orignewline
\addtocounter{LWR@htmlfilenumber}{1}%
\ifbool{FileSectionNames}%
{\LWR@filenamenoblanks{#1}}
{\renewcommand*{\LWR@thisfilename}{\theLWR@htmlfilenumber}}
\LWR@htmlblockcomment{%
\LWR@origtexttt{|Start file|%
\LWR@htmlsectionfilename{\LWR@thisfilename}|}%
}
\LWR@stoppars
\LWR@filestart{ — #1}% there is an EMdash in front of the #1
\LWR@topnavigation
\LWR@htmlelement{header}
\LWR@pagetop
\LWR@htmlelementend{header}
\LWR@printthetitle
\LWR@sidetoc
\LWR@htmlelementclass{section}{textbody}
\LWR@stoppars
\setcounter{LWR@latestautopage}{\value{page}}
}
\end{warpHTML}
\begin{warpHTML}
\newbool{LWR@mainmatter}
\DeclareDocumentCommand{\mainmatter}{}{%
\booltrue{LWR@mainmatter}%
}
\DeclareDocumentCommand{\frontmatter}{}{%
\boolfalse{LWR@mainmatter}%
}
\DeclareDocumentCommand{\backmatter}{}{%
\boolfalse{LWR@mainmatter}
}
\newcommand*{\LWR@sectionnumber}[1]{%
\InlineClass{sectionnumber}{#1} %
}
\newcommand*{\LWR@createautosec}[1]{%
\LWR@htmltag{#1 id="autosec-\thepage"{}}%
}
\NewDocumentCommand{\LWR@pushoneclose}{m m}{\pushclose{#2}{#1}}
\NewDocumentCommand{\LWR@startnewdepth}{m m}{%
\LWR@closeprevious{#1}%
\LWR@pushoneclose{#1}{#2}%
}
\newcounter{LWR@prevFileDepth}
\setcounter{LWR@prevFileDepth}{\LWR@depthsubparagraph}
\DeclareDocumentCommand{\LWR@section}{m m m m}{%
\LWR@traceinfo{LWR@section}%
\LWR@stoppars%
\global\boolfalse{LWR@minipagethispar}%
\LWR@orignewpage%
\LWR@traceinfo{LWR@section: testing about to start a new HTML file}%
\IfBooleanTF{#1}{}{% not starred
\ifthenelse{%
\cnttest{\csuse{LWR@depth#4}}{<=}{\value{FileDepth}}%
\AND%
\(%
\NOT\boolean{CombineHigherDepths}\OR%
\cnttest{\csuse{LWR@depth#4}}{<=}{\value{LWR@prevFileDepth}}%
\)%
}%
{% new file
\LWR@traceinfo{LWR@section: new HTML file}%
\IfNoValueTF{#2}%
{\LWR@newhtmlfile{#3}}%
{\LWR@newhtmlfile{#2}}%
}% new file
{}% not new file
}% not starred
\LWR@traceinfo{LWR@section: about to LWR@setlatestname}%
\IfValueTF{#2}{\LWR@setlatestname{#2}}{\LWR@setlatestname{#3}}%
\LWR@htmlcomment{Opening #4 ``#3''{}}
\ifthenelse{%
\cnttest{\csuse{LWR@depth#4}}{>=}{\LWR@depthparagraph}%
}%
{\LWR@startpars}
{}
\LWR@createautosec{\csuse{LWR@tag#4}}%
\IfBooleanTF{#1}%
{}% starred
{% not starred
\ifthenelse{%
\cnttest{\csuse{LWR@depth#4}}{<=}{\value{secnumdepth}}%
}%
{% if secnumdepth
\LWR@traceinfo{LWR@section: about to test main matter}%
\ifbool{LWR@mainmatter}%
{%
\LWR@traceinfo{LWR@section: yes mainmatter}%
\refstepcounter{#4}%
\LWR@traceinfo{LWR@section: about to addcontentsline}%
\addcontentsline{toc}{#4}%
{\protect\LWR@sectionnumber{\csuse{the#4}}%
\IfValueTF{#2}{#2}{#3}}%
\LWR@traceinfo{LWR@section: finished addcontentsline}%
}% end of if main matter
{% not main matter
\LWR@traceinfo{LWR@section: no main matter}%
\addcontentsline{toc}{#4}{\IfValueTF{#2}{#2}{#3}}%
}% end of not main matter
}% end of secnumdepth
{%
\addcontentsline{toc}{#4}{\IfValueTF{#2}{#2}{#3}}%
}%
\ifbool{LWR@mainmatter}%
{%
\ifthenelse{%
\(\cnttest{\csuse{LWR@depth#4}}{<=}%
{\value{secnumdepth}}\) \AND
\(\cnttest{\csuse{LWR@depth#4}}{<=}{\LWR@depthpart}\)
}%
{\csuse{#4name}~{}}%
{}%
\LWR@traceinfo{LWR@section: about to print section number}%
\ifthenelse{%
\cnttest{\csuse{LWR@depth#4}}{<=}{\value{secnumdepth}}%
}%
{\protect\LWR@sectionnumber{\csuse{the#4}}}%
{}%
\LWR@traceinfo{LWR@section: finished print section number}%
}{}%
}% end of not starred
#3
\LWR@htmltag{\csuse{LWR@tag#4end}}%
\label{autopage-\thepage}%
\ifthenelse{%
\cnttest{\csuse{LWR@depth#4}}{<}{\LWR@depthparagraph}}%
{\LWR@startpars}%
{}%
\IfBooleanTF{#1}{}{% not starred
\setcounter{LWR@prevFileDepth}{\csuse{LWR@depth#4}}%
}% not starred
\LWR@traceinfo{LWR@section: done}%
}
\@ifundefined{chapter}
{}
{%
\DeclareDocumentCommand{\part}{s o m}{%
\LWR@stoppars%
\LWR@startnewdepth{\LWR@depthpart}{\LWR@printclosepart}%
\LWR@section{#1}{#2}{#3}{part}%
}
}
\@ifundefined{chapter}
{}
{%
\DeclareDocumentCommand{\chapter}{s o m}{%
\LWR@traceinfo{chapter #3}%
\LWR@stoppars%
\LWR@startnewdepth{\LWR@depthchapter}{\LWR@printclosechapter}%
\LWR@traceinfo{chapter: about to LWR@section}%
\LWR@section{#1}{#2}{#3}{chapter}%
\LWR@traceinfo{chapter: done}%
}
}
\DeclareDocumentCommand{\section}{s o m}{%
\LWR@stoppars%
\LWR@startnewdepth{\LWR@depthsection}{\LWR@printclosesection}%
\LWR@section{#1}{#2}{#3}{section}%
}
\DeclareDocumentCommand{\subsection}{s o m}{%
\LWR@stoppars%
\LWR@startnewdepth{\LWR@depthsubsection}{\LWR@printclosesubsection}%
\LWR@section{#1}{#2}{#3}{subsection}%
}
\DeclareDocumentCommand{\subsubsection}{s o m}{%
\LWR@stoppars%
\LWR@startnewdepth{\LWR@depthsubsubsection}%
{\LWR@printclosesubsubsection}%
\LWR@section{#1}{#2}{#3}{subsubsection}%
}
\DeclareDocumentCommand{\paragraph}{s o m}{%
\LWR@stoppars%
\LWR@startnewdepth{\LWR@depthparagraph}{\LWR@printcloseparagraph}%
\LWR@section{#1}{#2}{#3}{paragraph}%
}
\DeclareDocumentCommand{\subparagraph}{s o m}{%
\LWR@stoppars%
\LWR@startnewdepth{\LWR@depthsubparagraph}{\LWR@printclosesubparagraph}%
\LWR@section{#1}{#2}{#3}{subparagraph}%
}
\end{warpHTML}
\begin{warpHTML}
\newcommand*{\MetaLanguage}{en-US}
\newcommand*{\LWR@filestart}[1]{
\begingroup
\renewcommand{\textit}[1]{##1}% not used in filenames
\renewcommand{\textsc}[1]{##1}
\renewcommand{\textsl}[1]{##1}
\renewcommand{\textbf}[1]{##1}
\renewcommand{\texttt}[1]{##1}
\renewcommand{\textsf}[1]{##1}
\renewcommand{\textrm}[1]{##1}
\renewcommand{\textsuperscript}[1]{##1}
\renewcommand{\textsubscript}[1]{##1}
\renewcommand*{\HTMLunicode}[1]{}
\renewcommand*{\HTMLentity}[1]{}
\RenewDocumentCommand{\LWR@htmlspanclass}{m o +m}{##3}
\DeclareExpandableDocumentCommand{\InlineClass}{m o m}{##3}
\LWR@htmltag{!DOCTYPE html}\LWR@orignewline
\LWR@htmltag{html lang="\MetaLanguage"{}}\LWR@orignewline
\LWR@htmltag{head}\LWR@orignewline
\LWR@htmltag{meta charset="UTF-8" /}\LWR@orignewline
\LWR@htmltag{meta name="generator" content="LaTeX lwarp package" /}%
\LWR@orignewline
\ifdefempty{\LWR@currentHTMLdescription}{}{%
\LWR@htmltag{%
meta name="description" content="\LWR@currentHTMLdescription" /}%
\LWR@orignewline
}%
\LWR@htmltag{meta name="viewport" %
content="width=device-width, initial-scale=1.0" /}%
\LWR@orignewline
\LWR@htmltag{!{-}{-}[if lt IE 9]}\LWR@orignewline
\LWR@htmltag{%
script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"{}}
\LWR@htmltag{/script}\LWR@orignewline
\LWR@htmltag{![endif]{-}{-}}\LWR@orignewline
\LWR@htmltag{title}\thetitle#1\LWR@htmltag{/title}\LWR@orignewline
\LWR@htmltag{%
link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}%
\LWR@orignewline
\ifbool{mathjax}%
{%
\boolfalse{LWR@verbtags}
\VerbatimInput{lwarp_mathjax.txt}%
\booltrue{LWR@verbtags}
\LWR@stoppars
}% end of mathjax
{}%
\LWR@htmltag{/head}\LWR@orignewline
\LWR@htmltag{body}\LWR@orignewline
\endgroup
}
\end{warpHTML}
\begin{warpHTML}
\newcommand*{\LWR@LwarpStart}
{%
\edef\LWR@strresult{\HomeHTMLFileName}
\edef\HomeHTMLFileName{\detokenize\expandafter{\LWR@strresult}}
\edef\LWR@strresult{\HTMLFileName}
\edef\HTMLFileName{\detokenize\expandafter{\LWR@strresult}}
\LWR@origonecolumn%
\LWR@origscriptsize%
\LWR@origraggedright%
\let\\\LWR@endofline%
\linespread{1.3}%
\setlength{\parindent}{0pt}
\setlength{\parskip}{2ex}
\ifbool{usingOSwindows}
{% Windows:
\immediate\openout\LWR@file=lateximages.cmd
}
{% Unix:
\immediate\openout\LWR@file=lateximages.sh
\immediate\write\LWR@file{\LWR@hashmark!\OSShellPath}
}
\immediate\write\LWR@file{\OSmkdir lateximages\OSPathSymbol}
\setlength{\belowcaptionskip}{-3ex}
\renewcommand{\ps@plain}{}
\renewcommand*{\centering}{}
\renewcommand*{\raggedleft}{}
\renewcommand*{\raggedright}{}
\let\LWR@origtabular\tabular
\let\LWR@origendtabular\endtabular
\let\tabular\LWR@tabular
\let\endtabular\endLWR@tabular
\let\LWR@origcaption\caption
\let\ltx@label\LWR@htmlmathlabel
\let\TeX\LWR@TeX
\let\LaTeX\LWR@LaTeX
\let\LuaTeX\LWR@LuaTeX
\let\LuaLaTeX\LWR@LuaLaTeX
\let\XeTeX\LWR@XeTeX
\let\XeLaTeX\LWR@XeLaTeX
\let\ConTeXt\LWR@ConTeXt
\let\textcolor\LWR@textcolor
\let\pagecolor\LWR@pagecolor
\let\colorbox\LWR@colorbox
\let\fcolorbox\LWR@fcolorbox
\let\rotatebox\LWR@rotatebox
\let\scalebox\LWR@scalebox
\let\reflectbox\LWR@reflectbox
\global\boolfalse{LWR@doingapar}
\global\boolfalse{LWR@doingstartpars}
\LWR@filestart{}
\LWR@htmltag{header}\LWR@orignewline
\LWR@startpars
\LWR@firstpagetop
\LWR@stoppars
\LWR@htmltag{/header}\LWR@orignewline
\LWR@htmltag{section class="textbody"{}}
\LWR@origpagestyle{empty}
\mainmatter
\LWR@origpagenumbering{arabic}
\if@titlepage
\thanksmarkseries{arabic}
\else
\thanksmarkseries{fnsymbol}
\fi
\fvset{frame=none}%
\catcode`\&=\active
\LWR@startpars
}
\end{warpHTML}
\begin{warpHTML}
\newcommand*{\LWR@requesttoc}[2]{%
\ifbool{#1}
{
\expandafter\newwrite\csuse{tf@#2}
\immediate\openout \csuse{tf@#2} \jobname.#2\relax
}{}
}
\newcommand*{\LWR@LwarpEnd}
{
\LWR@stoppars
\LWR@closeprevious{\LWR@depthfinished}
\LWR@htmlelementclassend{section}{textbody}
\LWR@printpendingnotes
\LWR@htmlelement{footer}
\LWR@pagebottom
\LWR@htmlelementend{footer}
\ifnumcomp{\value{LWR@htmlfilenumber}}{>}{0}{\LWR@botnavigation}{}
\LWR@stoppars% final stop of all paragraphs
\LWR@htmltag{/body}\LWR@orignewline
\LWR@htmltag{/html}\LWR@orignewline
\LWR@orignewpage
\immediate\closeout\LWR@file
}
\end{warpHTML}
\begin{warpHTML}
\newrobustcmd{\affiliation}[1]{\\ \InlineClass{affiliation}{#1}}
\end{warpHTML}
\begin{warpprint}
\newrobustcmd{\affiliation}[1]{\\ \textsc{\small#1}}
\end{warpprint}
\begin{warpall}
\renewcommand{\author}[1]{%
\gdef\@author{#1}
\begingroup
\renewcommand{\thanks}[1]{}
\renewcommand{\and}{\unskip, }
\renewcommand{\thanksmark}[1]{}
\renewcommand{\thanksgap}[1]{}
\renewcommand{\affiliation}[1]{}
\protected@xdef\theauthor{#1}
\endgroup}
\newcommand{\published}[1]{%
\gdef\@published{#1}
\begingroup
\renewcommand{\thanks}[1]{}
\renewcommand{\thanksmark}[1]{}
\renewcommand{\thanksgap}[1]{}
\protected@xdef\thepublished{#1}
\endgroup
}
\newcommand{\@published}{}
\newcommand{\thepublished}{}
\newcommand{\subtitle}[1]{%
\gdef\@subtitle{#1}
\begingroup
\renewcommand{\thanks}[1]{}
\renewcommand{\thanksmark}[1]{}
\renewcommand{\thanksgap}[1]{}
\protected@xdef\thesubtitle{#1}
\endgroup
}
\newcommand{\@subtitle}{}
\newcommand{\thesubtitle}{}
\end{warpall}
\begin{warpHTML}
\renewenvironment*{titlepage}
{\BlockClass{titlepage}\LWR@subminipage}
{\LWR@endsubminipage\endBlockClass}
\renewenvironment*{titlingpage}
{%
\begin{titlepage}
\LWR@maketitlesetup
\let\maketitle\LWR@titlingmaketitle
}
{
\end{titlepage}
\@bscontmark
}
\end{warpHTML}
\begin{warpall}
\newcommand*{\printthanks}{\@thanks}
\AtEndEnvironment{titlingpage}{\@bscontmark}
\end{warpall}
\begin{warpHTML}
\newcommand{\prepublished}[1]{%
\def\@bsprepublished{\BlockClass{published}#1}%
}
\newcommand{\postpublished}[1]{%
\def\@bspostpublished{#1\endBlockClass}%
}
\renewcommand{\pretitle}[1]{%
\def\@bspretitle{#1\LWR@stoppars\LWR@htmltag{h1}}%
}
\renewcommand{\posttitle}[1]{%
\def\@bsposttitle{\LWR@htmltag{/h1}\LWR@startpars#1}%
}
\newcommand{\presubtitle}[1]{%
\def\@bspresubtitle{\BlockClass{subtitle}#1}%
}
\newcommand{\postsubtitle}[1]{%
\def\@bspostsubtitle{#1\endBlockClass}%
}
\renewcommand{\preauthor}[1]{%
\def\@bspreauthor{\BlockClass{author}#1}%
}
\renewcommand{\postauthor}[1]{%
\def\@bspostauthor{#1\endBlockClass}%
}
\renewcommand{\predate}[1]{%
\def\@bspredate{#1\BlockClass{titledate}}%
}
\renewcommand{\postdate}[1]{%
\def\@bspostdate{\endBlockClass#1}%
}
\prepublished{\begin{center}}
\postpublished{\par\end{center}}
\pretitle{\begin{center}}
\posttitle{\par\end{center}}
\presubtitle{\begin{center}}
\postsubtitle{\par\end{center}}
\preauthor{\begin{center}%
\begin{tabular}[t]{c}%
}
\postauthor{\end{tabular}\par\end{center}}
\predate{\begin{center}}
\postdate{\par\end{center}}
\newcommand*{\printpublished}{
\ifthenelse{\equal{\thepublished}{}}
{}
{
\begin{BlockClass}{published}
\@published
\end{BlockClass}
}
}
\newcommand*{\printtitle}
{
\LWR@stoppars
\LWR@htmltag{h1}%
\@title%
\LWR@htmltag{/h1}
\LWR@startpars
}
\newcommand*{\LWR@printthetitle}
{
\LWR@stoppars
\LWR@htmltag{h1}%
\thetitle%
\LWR@htmltag{/h1}
\LWR@startpars
}
\newcommand*{\printsubtitle}{
\ifthenelse{\equal{\thesubtitle}{}}
{}
{
\begin{BlockClass}{subtitle}
\@subtitle
\end{BlockClass}
}
}
\newcommand*{\printauthor}{
\begin{BlockClass}{author}
\begin{tabular}{c}\@author\end{tabular}
\end{BlockClass}
}
\newcommand*{\printdate}{%
\begin{BlockClass}{titledate}
\@date
\end{BlockClass}
}
\end{warpHTML}
\begin{warpprint}
\newcommand*{\printpublished}{{\Large\scshape\@published}}
\newcommand*{\printtitle}{{\Huge\@title}}
\newcommand*{\printsubtitle}{{\Large\itshape\@subtitle\bigskip}}
\newcommand*{\printauthor}
{{\large\begin{tabular}[t]{c}\@author\end{tabular}}}
\newcommand*{\printdate}{{\small\textit{\@date}}}
\providecommand{\maketitle}{}
\if@titlepage
\renewcommand{\maketitle}{\begin{titlepage}%
\let\footnotesize\small
\let\footnoterule\relax
\let \footnote \thanks
\@bsmarkseries
\def\@makefnmark{\rlap{\@textsuperscript{%
\normalfont\@bsthanksheadpre \tamark \@bsthanksheadpost}}}%
\long\def\@makefntext##1{\makethanksmark ##1}
\null\vfil
\vskip 60\p@
\vspace*{\droptitle}
\maketitlehooka
\ifcsempty{@published}
{}
{{\@bsprepublished \@published \@bspostpublished}\maketitlehookaa}
{\@bspretitle \@title \@bsposttitle}
\ifcsempty{@subtitle}
{}
{\maketitlehookaaa{\@bspresubtitle \@subtitle \@bspostsubtitle}}
\maketitlehookb
{\@bspreauthor \@author \@bspostauthor}
\maketitlehookc
{\@bspredate \@date \@bspostdate}
\maketitlehookd
\par
\@thanks
\vfil\null
\end{titlepage}%
\@bscontmark % \setcounter{footnote}{0}%
%%% \@bsmtitlempty
} % end titlepage defs
\else
\renewcommand{\maketitle}{\par
\begingroup
\@bsmarkseries
\def\@makefnmark{\rlap{\@textsuperscript{%
\normalfont\@bsthanksheadpre \tamark \@bsthanksheadpost}}}%
\long\def\@makefntext##1{\makethanksmark ##1}
\if@twocolumn
\ifnum \col@number=\@ne
\@maketitle
\else
\twocolumn[\@maketitle]%
\fi
\else
\newpage
\global\@topnum\z@
\@maketitle
\fi
\thispagestyle{plain}\@thanks
\endgroup
\@bscontmark % \setcounter{footnote}{0}%
%%% \@bsmtitlempty
} % end non-titlepage
\def\@maketitle{%
\newpage
\null
\vskip 2em%
\vspace*{\droptitle}
\maketitlehooka
\ifcsempty{@published}
{}
{{\@bsprepublished \@published \@bspostpublished}\maketitlehookaa}
{\@bspretitle \@title \@bsposttitle}
\ifcsempty{@subtitle}
{}
{\maketitlehookaaa{\@bspresubtitle \@subtitle \@bspostsubtitle}}
\maketitlehookb
{\@bspreauthor \@author \@bspostauthor}
\maketitlehookc
{\@bspredate \@date \@bspostdate}
\maketitlehookd
\par
\vskip 1.5em}
\fi
\providecommand{\maketitlehookaa}{}
\providecommand{\maketitlehookaaa}{}
\newcommand{\prepublished}[1]{%
\def\@bsprepublished{#1}%
}
\newcommand{\postpublished}[1]{%
\def\@bspostpublished{#1}%
}
\newcommand{\presubtitle}[1]{%
\def\@bspresubtitle{#1}%
}
\newcommand{\postsubtitle}[1]{%
\def\@bspostsubtitle{#1}%
}
\if@titlepage
\prepublished{
\vspace*{-\baselineskip}\vspace*{-\medskipamount}\vspace*{-2em}
\begin{center}}
\postpublished{\par\end{center}\vskip 2em}
\presubtitle{\unskip\begin{center}\unskip}
\postsubtitle{\par\end{center}\vskip 2em}
\else
\prepublished{\begin{center}}
\postpublished{\par\end{center}\vskip 0.5em}
\presubtitle{\begin{center}\unskip}
\postsubtitle{\par\end{center}\vskip 0.5em}
\fi
\end{warpprint}
\begin{warpHTML}
\newcommand*{\LWR@maketitlesetup}{%
\@bsmarkseries
\@mpbsmarkseries
\def\@makefnmark{\textsuperscript{\thefootnote}}%
\long\def\@makefntext##1{%
\makethanksmark \LWR@orighspace{1in}
##1\LWR@htmltagc{/\LWR@tagregularparagraph}%
}%
}
\def\@fnsymbol#1{\ensuremath{\ifcase#1\or *\or \dagger\or \ddagger\or
\mathsection\or \mathparagraph\or \text{\HTMLunicode{2016}}\or
**\or \dagger\dagger \or \ddagger\ddagger \else\@ctrerr\fi}}
\renewcommand*{\maketitle}{%
\begin{titlepage}
\LWR@maketitlesetup
\@maketitle
\@thanks
\end{titlepage}
\@bscontmark
}
\DeclareDocumentCommand{\@maketitle}{}{%
\maketitlehooka
\ifcsempty{@published}
{}
{{\@bsprepublished \@published \@bspostpublished}\maketitlehookaa}
{\@bspretitle \@title \@bsposttitle}
\ifcsempty{@subtitle}
{}
{\maketitlehookaaa{\@bspresubtitle \@subtitle \@bspostsubtitle}}
\maketitlehookb
{\@bspreauthor \@author \@bspostauthor}
\maketitlehookc
{\@bspredate \@date \@bspostdate}
\maketitlehookd
}
\providecommand{\maketitlehookaa}{}
\providecommand{\maketitlehookaaa}{}
\newcommand*{\LWR@titlingmaketitle}{%
\@maketitle
\@thanks
}
\let\LWR@origthanksmarkseries\thanksmarkseries
\renewcommand{\thanksmarkseries}[1]{%
\def\@mpbsmarkseries{%
\renewcommand*{\thempfootnote}{\@nameuse{#1}{mpfootnote}}}
\LWR@origthanksmarkseries{#1}
}
\end{warpHTML}
\begin{warpHTML}
\providecommand*{\abstractname}{Abstract}
\DeclareDocumentEnvironment{abstract}{}
{
\BlockClass{abstract}
\BlockClassSingle{abstracttitle}{\abstractname}
}
{
\endBlockClass
}
\end{warpHTML}
\begin{warpHTML}
\newcommand{\attribution}[1]{%
\InlineClass{attribution}{—\,#1}}% emdash
\end{warpHTML}
\begin{warpprint}
\newcommand{\attribution}[1]{\textsc{---\,#1}}
\end{warpprint}
\begin{warpHTML}
\newcommand{\citetitle}[1]{%
\InlineClass{citetitle}{—\,#1}}% emdash
\end{warpHTML}
\begin{warpprint}
\newcommand{\citetitle}[1]{\textsl{---\,#1}}
\end{warpprint}
\begin{warpHTML}
\renewenvironment*{quote}
{\LWR@htmlblocktag{blockquote}}
{\LWR@htmlblocktag{/blockquote}}
\renewenvironment*{quotation}
{\LWR@htmlblocktag{blockquotation}}
{\LWR@htmlblocktag{/blockquotation}}
\end{warpHTML}
\begin{warpall}
\newlength{\HTMLvleftskip}
\setlength{\HTMLvleftskip}{1em}
\newlength{\HTMLleftmargini}
\setlength{\HTMLleftmargini}{4.5em}
\end{warpall}
\begin{warpHTML}
\AfterEndPreamble{
\AtBeginEnvironment{verse}
{%
\ifdef{\vleftskip}{%
\setlength{\vleftskip}{\HTMLvleftskip}
\setlength{\leftmargini}{\HTMLleftmargini}
}{}
\LWR@atbeginverbatim{verse}
\unskip\vspace{-\baselineskip}
}
\AfterEndEnvironment{verse}{
\unskip\vspace{-\baselineskip}
\LWR@afterendverbatim
}
\ifdef{\poemtitle}{
\DeclareDocumentCommand{\@vstypeptitle}{m}{%
\vspace{\beforepoemtitleskip}%
{\InlineClass{poemtitle}{\poemtitlefont #1}\par}%
\vspace{\afterpoemtitleskip}%
}
}{}
}
\end{warpHTML}
\begin{warpHTML}
\AfterEndPreamble{
\AtBeginEnvironment{verbatim}{\LWR@atbeginverbatim{verbatim}\unskip\vspace*{-\baselineskip}}
\AfterEndEnvironment{verbatim}{\unskip\vspace*{-\baselineskip}\LWR@afterendverbatim}
}
\end{warpHTML}
\begin{warpall}
\newlength{\VerbatimHTMLWidth}
\setlength{\VerbatimHTMLWidth}{4in}
\end{warpall}
\begin{warpHTML}
\newbool{LWR@verbtags}
\booltrue{LWR@verbtags}
\renewcommand{\VerbatimFootnotes}{
\PackageError{lwarp}
{Verbatim footnotes are not yet supported by lwarp.}
{This may be improved when lwarp uses LaTeX footnotes instead of pagenotes.}
}
\newcommand*{\LWR@atbeginverbatim}[1]
{%
\setlength{\parskip}{0ex}%
\LWR@stoppars%
\ifbool{LWR@verbtags}{\LWR@htmltag{pre class="#1"{}}}{}%
\LWR@origttfamily%
\let\hspace\LWR@orighspace%
}
\newcommand*{\LWR@afterendverbatim}{%
\unskip%
\ifbool{LWR@verbtags}{\noindent\LWR@htmltag{/pre}
}{}%
\LWR@startpars%
}
\newcommand*{\LWR@Verbatimclass}{fancyvrb}
\NewDocumentEnvironment{VerbatimClass}{m O{}}
{%
\renewcommand*{\LWR@Verbatimclass}{#1}%
\LWR@origVerbatim[#2]%
}
{\endVerbatim}
\AfterEndPreamble{
\let\LWR@origVerbatim\Verbatim
\renewcommand*{\Verbatim}{%
\renewcommand*{\LWR@Verbatimclass}{fancyvrb}%
\LWR@origVerbatim%
}
\newcommand*{\LWR@fvstartnone}{%
\ifbool{LWR@verbtags}{\hbox to\z@{\LWR@htmltagc{div class="\LWR@Verbatimclass"}}}{}%
\hbox to\z@{\LWR@atbeginverbatim{verbatim}}%
}
\newcommand*{\LWR@fvendnone}{%
\hbox to\z@{\LWR@afterendverbatim}%
\ifbool{LWR@verbtags}{\hbox to\z@{\LWR@htmltagc{/div}}}{}%
}
\newcommand*{\LWR@fvstartsingle}{%
\LWR@fvstartnone%
\FV@BeginListFrame@Single%
}
\newcommand*{\LWR@fvendsingle}{%
\FV@EndListFrame@Single%
\LWR@fvendnone%
}
\newcommand*{\LWR@fvstartline}{%
\LWR@fvstartnone%
\FV@BeginListFrame@Lines%
}
\newcommand*{\LWR@fvendline}{%
\FV@EndListFrame@Lines%
\LWR@fvendnone%
}
\def\FV@Frame@none{%
\let\FV@BeginListFrame\LWR@fvstartnone%
\let\FV@LeftListFrame\relax%
\let\FV@RightListFrame\relax%
\let\FV@EndListFrame\LWR@fvendnone}
\def\FV@Frame@single{%
\let\FV@BeginListFrame\LWR@fvstartsingle%
\let\FV@LeftListFrame\FV@LeftListFrame@Single%
\let\FV@RightListFrame\FV@RightListFrame@Single%
\let\FV@EndListFrame\LWR@fvendsingle}
\def\FV@Frame@lines{%
\let\FV@BeginListFrame\LWR@fvstartline%
\let\FV@LeftListFrame\relax%
\let\FV@RightListFrame\relax%
\let\FV@EndListFrame\LWR@fvendline}
\def\FV@Frame@topline{%
\let\FV@BeginListFrame\LWR@fvstartline%
\let\FV@LeftListFrame\relax%
\let\FV@RightListFrame\relax%
\let\FV@EndListFrame\LWR@fvendnone}
\def\FV@Frame@bottomline{%
\let\FV@BeginListFrame\LWR@fvstartnone%
\let\FV@LeftListFrame\relax%
\let\FV@RightListFrame\relax%
\let\FV@EndListFrame\LWR@fvendline}
\def\FV@Frame@leftline{%
\ifx\FancyVerbFillColor\relax%
\let\FV@FrameFillLine\relax%
\else%
\@tempdima\FV@FrameRule\relax%
\multiply\@tempdima-\tw@%
\edef\FV@FrameFillLine{%
{\noexpand\FancyVerbFillColor{\vrule\@width\number\@tempdima sp}%
\kern-\number\@tempdima sp}}%
\fi%
\let\FV@BeginListFrame\LWR@fvstartnone%
\let\FV@LeftListFrame\FV@LeftListFrame@Single%
\let\FV@RightListFrame\relax%
\let\FV@EndListFrame\LWR@fvendnone}
\def\FV@SingleFrameLine#1{%
\hbox to\z@{%
\ifnum#1=\z@\relax
\let\FV@Label\FV@LabelBegin
\else
\let\FV@Label\FV@LabelEnd
\fi
\ifx\FV@Label\relax
\else
\ifnum#1=\z@
\ifx\FV@LabelPositionTopLine\relax
\else
\LWR@htmltagc{div class="fancyvrblabel"}
\LWR@origtextrm{\FV@LabelBegin}% \textrm preserves emdash
\LWR@htmltagc{/div}
\fi
\else
\ifx\FV@LabelPositionBottomLine\relax
\else
\LWR@htmltagc{div class="fancyvrblabel"}
\LWR@origtextrm{\FV@LabelEnd}
\LWR@htmltagc{/div}
\fi
\fi
\fi
\hss
}
}
\def\FV@ListProcessLine#1{%
\hbox to \hsize{%
\hbox to \VerbatimHTMLWidth {%
\ifcsvoid{FV@LeftListNumber}{}{\kern 2.5em}%
\FV@LeftListNumber%
\FancyVerbFormatLine{#1}%
\hss%
\FV@RightListNumber%
}%
\hss% required to avoid underfull hboxes
}
}
\AtBeginEnvironment{BVerbatim}
{
\LWR@atbeginverbatim{bverbatim}
}
\AfterEndEnvironment{BVerbatim}
{
\leavevmode\par\vspace{-\baselineskip}
\LWR@afterendverbatim
}
} % \AfterEndPreamble
\end{warpHTML}
\begin{warpHTML}
\renewcommand{\@begintheorem}[2]{%
\LWR@htmldivclass{theorem}
\InlineClass{theoremlabel}{#1\ #2\ }
\LWR@htmldivclass{theoremcontents}
}
\renewcommand{\@opargbegintheorem}[3]{%
\BlockClass{theorem}
\InlineClass{theoremlabel}{#1\ #2\ (#3)\ }
\BlockClass{theoremcontents}
}
\renewcommand*{\@endtheorem}{%
\endBlockClass% theoremcontents
\endBlockClass% theorem
}
\end{warpHTML}
\begin{warpHTML}
\let\LWR@origitem\item
\newcommand*{\LWR@itemizeitem}{%
\LWR@stoppars%
\LWR@startnewdepth{\LWR@depthlistitem}{\LWR@printcloselistitem{}}%
\LWR@htmltag{li}%
\LWR@startpars%
\LWR@origitem%
}
\AtBeginEnvironment{itemize}{\LWR@itemizestart}
\newcommand*{\LWR@itemizestart}{%
\LWR@stoppars%
\LWR@pushoneclose{\LWR@depthlist}{\LWR@printcloseitemize{}}%
\LWR@htmltag{ul style="list-style-type:none"{}}%
\LWR@startpars%
\let\item\LWR@itemizeitem%
}
\AtEndEnvironment{itemize}{\LWR@itemizeend}
\newcommand*{\LWR@itemizeend}{%
\LWR@stoppars%
\LWR@closeprevious{\LWR@depthlistitem}%
\LWR@closeoneprevious{}%
\LWR@startpars%
}
\AtBeginEnvironment{enumerate}{\LWR@enumeratestart}
\newcommand*{\LWR@enumeratestart}{%
\LWR@stoppars%
\LWR@pushoneclose{\LWR@depthlist}{\LWR@printcloseitemize{}}%
\LWR@htmltag{ul style="list-style-type:none"{}}%
\LWR@startpars%
\let\item\LWR@itemizeitem%
}
\AtEndEnvironment{enumerate}{\LWR@enumerateend}
\newcommand*{\LWR@enumerateend}{%
\LWR@stoppars%
\LWR@closeprevious{\LWR@depthlistitem}%
\LWR@closeoneprevious{}%
\LWR@startpars%
}
\newcommand*{\LWR@descitem}[1][]%
{%
\LWR@stoppars%
\LWR@setlatestname{#1}%
\LWR@startnewdepth{\LWR@depthlistitem}{\LWR@printclosedescitem{}}%
\LWR@origitem[]%
\LWR@orighspace{1in}
\LWR@htmltag{dt}#1\LWR@htmltag{/dt}%
\LWR@orignewline%
\LWR@htmltag{dd}%
\LWR@startpars%
}
\AtBeginEnvironment{description}{\LWR@descriptionstart}
\newcommand*{\LWR@descriptionstart}{%
\LWR@stoppars%
\LWR@pushoneclose{\LWR@depthlist}{\LWR@printclosedescription{}}%
\LWR@htmltag{dl}%
\LWR@startpars%
\let\item\LWR@descitem%
}
\AtEndEnvironment{description}{\LWR@descriptionend}
\newcommand*{\LWR@descriptionend}{%
\LWR@stoppars%
\LWR@closeprevious{\LWR@depthlistitem}%
\LWR@closeoneprevious{}%
\LWR@startpars%
}
\let\LWR@orignewlist\newlist
\renewcommand*{\newlist}[3]{%
\LWR@orignewlist{#1}{#2}{#3}%
\AtBeginEnvironment{#1}{\csuse{LWR@#2start}}%
\AtEndEnvironment{#1}{\csuse{LWR@#2end}}%
}
\end{warpHTML}
\begin{warpHTML}
\newcommand\LWR@mynexttoken\relax
\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=\@BTfnslthree%
\else\let\next=\nexttoken\fi\next}
\def\@BTfnslthree{\afterassignment\LWR@fnslone\let\next= }
\newcommand*{\LWR@getmynexttoken}{%
\LWR@futurenonspacelet\LWR@mynexttoken\LWR@tabledatacolumntag
}
\newbool{LWR@startedrow}
\boolfalse{LWR@startedrow}
\newbool{LWR@doinghline}
\boolfalse{LWR@doinghline}
\newbool{LWR@doingtbrule}
\boolfalse{LWR@doingtbrule}
\newbool{LWR@tableparcell}
\newbool{LWR@skippingmrowcell}
\newbool{LWR@intabularmetadata}
\boolfalse{LWR@intabularmetadata}
\newcommand*{\LWR@closetabledatacell}{%
\global\booltrue{LWR@intabularmetadata}%
\ifbool{LWR@exitingtabular}{}%
{% not exiting tabular
\ifbool{LWR@skippingmrowcell}{}%
{% not skippingmrowcell
\unskip%
\LWR@getexparray{LWR@colafterspec}{\theLWR@tablecolspos}%
\LWR@getexparray{LWR@colatspec}{\theLWR@tablecolspos}%
\ifbool{LWR@tableparcell}{\LWR@stoppars}{}%
\global\boolfalse{LWR@tableparcell}%
\unskip\LWR@htmltag{/td}\LWR@orignewline%
}% not skipping mrowcell
}% not exiting tabular
\global\boolfalse{LWR@skippingmrowcell}%
}
\newcounter{LWR@tabulardepth}
\setcounter{LWR@tabulardepth}{0}
\def\LWR@origampmacro{&}
\begingroup
\catcode`\&=\active
\gdef&{%
\ifthenelse{\cnttest{\value{LWR@tabulardepth}}{>}{0}}%
{%
\unskip%
\LWR@closetabledatacell%
\addtocounter{LWR@tablecolspos}{1}%
\LWR@getmynexttoken%
}%
{\LWR@origampmacro}%
}
\endgroup
\NewDocumentCommand{\LWR@tabularendofline}{s o}
{%
\LWR@closetabledatacell%
\LWR@htmltag{/tr}\LWR@orignewline
\global\booltrue{LWR@intabularmetadata}
\global\boolfalse{LWR@startedrow}
\global\boolfalse{LWR@doinghline}%
\global\boolfalse{LWR@doingtbrule}%
\LWR@clearmidrules%
\setcounter{LWR@tablecolspos}{1}
\LWR@getmynexttoken%
}
\newcommand*{\LWR@colsresult}{}%temp storage for column format results
\newcommand*{\LWR@pposition}{}
\newcommand*{\LWR@pleft}{}
\newcommand*{\LWR@pright}{}
\newcommand*{\LWR@tablecolspec}{}
\newcommand*{\LWR@strresult}{}
\newcommand*{\LWR@origcolspec}{}
\newcounter{LWR@tablecolswidth}
\newcounter{LWR@tablecolspos}
\newcounter{LWR@tabletotalcols}
\newcounter{LWR@tabletotalcolsnext}
\newcommand*{\LWR@parseatcolumn}{%
\LWR@traceinfo{at column}%
\addtocounter{LWR@tablecolspos}{1}%
\LWR@traceinfo{about to read the next token:}%
\expandarg%
\StrChar{\LWR@origcolspec}{\theLWR@tablecolspos}[\LWR@strresult]
\fullexpandarg%
\LWR@traceinfo{have now read the next token}%
\ifthenelse{\cnttest{\value{LWR@tabletotalcols}}=0}
{% left edge of the table:
\LWR@traceinfo{at the left edge}%
\LWR@setexparray{LWR@colatspec}{leftedge}{\LWR@strresult}%
\LWR@traceinfo{finished with the def}%
}%
{% not at the left edge:
\LWR@traceinfo{not at the left edge}%
\LWR@setexparray{LWR@colatspec}{\theLWR@tabletotalcols}{\LWR@strresult}%
\LWR@traceinfo{at \theLWR@tabletotalcols: \LWR@colatspec(\theLWR@tabletotalcols)!}%
}%
\let\LWR@strresult\relax%
}
\newcommand*{\LWR@parsebeforecolumn}{%
\addtocounter{LWR@tablecolspos}{1}%
\expandarg%
\StrChar{\LWR@origcolspec}{\theLWR@tablecolspos}[\LWR@strresult]%
\fullexpandarg%
\LWR@setexparray{LWR@colbeforespec}{\theLWR@tabletotalcolsnext}{\LWR@strresult}%
\let\LWR@strresult\relax%
}
\newcommand*{\LWR@parseaftercolumn}{%
\addtocounter{LWR@tablecolspos}{1}%
\expandarg%
\StrChar{\LWR@origcolspec}{\theLWR@tablecolspos}[\LWR@strresult]%
\fullexpandarg%
\LWR@setexparray{LWR@colafterspec}{\theLWR@tabletotalcols}{\LWR@strresult}%
\let\LWR@strresult\relax%
}
\newcommand*{\LWR@parseskipcolumn}{%
}
\newcommand*{\LWR@parsenormalcolumn}[1]{%
\appto\LWR@tablecolspec{#1}%
\addtocounter{LWR@tabletotalcols}{1}%
\addtocounter{LWR@tabletotalcolsnext}{1}%
\LWR@setexparray{LWR@colatspec}{\theLWR@tabletotalcolsnext}{\relax}%
\LWR@setexparray{LWR@colbeforespec}{\theLWR@tabletotalcolsnext}{\relax}%
\LWR@setexparray{LWR@colafterspec}{\theLWR@tabletotalcolsnext}{\relax}%
}
\newcommand*{\LWR@parsepcolumn}[1]{%
\LWR@parsenormalcolumn{#1}%
\addtocounter{LWR@tablecolspos}{1}%
}
\newcommand*{\LWR@parsetablecols}[1]{%
\LWR@traceinfo{LWR@parsetablecols started}%
\renewcommand*{\LWR@origcolspec}{#1}%
\renewcommand*{\LWR@tablecolspec}{}%
\setcounter{LWR@tabletotalcols}{0}%
\setcounter{LWR@tabletotalcolsnext}{1}%
\LWR@setexparray{LWR@colatspec}{leftedge}{\relax}%
\LWR@setexparray{LWR@colatspec}{1}{\relax}%
\LWR@setexparray{LWR@colatspec}{2}{\relax}%
\LWR@setexparray{LWR@colatspec}{3}{\relax}%
\LWR@setexparray{LWR@colbeforespec}{1}{\relax}%
\LWR@setexparray{LWR@colbeforespec}{2}{\relax}%
\LWR@setexparray{LWR@colbeforespec}{3}{\relax}%
\LWR@setexparray{LWR@colafterspec}{1}{\relax}%
\LWR@setexparray{LWR@colafterspec}{2}{\relax}%
\LWR@setexparray{LWR@colafterspec}{3}{\relax}%
\setcounter{LWR@tablecolspos}{1}%
\LWR@traceinfo{about to StrLen}%
\noexpandarg%
\StrLen{#1}[\LWR@strresult]%
\fullexpandarg%
\LWR@traceinfo{finished StrLen}%
\setcounter{LWR@tablecolswidth}{\LWR@strresult}%
\whiledo{\not\value{LWR@tablecolspos}>\value{LWR@tablecolswidth}}{%
\noexpandarg%
\StrChar{#1}{\theLWR@tablecolspos}[\LWR@strresult]%
\fullexpandarg%
\IfStrEq{\LWR@strresult}{l}{\LWR@parsenormalcolumn{l}}{}%
\IfStrEq{\LWR@strresult}{c}{\LWR@parsenormalcolumn{c}}{}%
\IfStrEq{\LWR@strresult}{r}{\LWR@parsenormalcolumn{r}}{}%
\IfStrEq{\LWR@strresult}{S}{\LWR@parsenormalcolumn{r}}{}%
\IfStrEq{\LWR@strresult}{\detokenize{@}}{\LWR@parseatcolumn}{}%
\IfStrEq{\LWR@strresult}{>}{\LWR@parsebeforecolumn}{}%
\IfStrEq{\LWR@strresult}{<}{\LWR@parseaftercolumn}{}%
\IfStrEq{\LWR@strresult}{!}{\LWR@parseskipcolumn}{}%
\IfStrEq{\LWR@strresult}{p}{\LWR@parsepcolumn{p}}{}%
\IfStrEq{\LWR@strresult}{m}{\LWR@parsepcolumn{m}}{}%
\IfStrEq{\LWR@strresult}{b}{\LWR@parsepcolumn{b}}{}%
\IfStrEq{\LWR@strresult}{P}{\LWR@parsepcolumn{P}}{}%
\IfStrEq{\LWR@strresult}{M}{\LWR@parsepcolumn{M}}{}%
\IfStrEq{\LWR@strresult}{B}{\LWR@parsepcolumn{B}}{}%
\addtocounter{LWR@tablecolspos}{1}%
}%
}%
\newcommand*{\LWR@maybenewtablerow}
{%
\ifbool{LWR@startedrow}%
{}% started the row
{% not started the row
\global\booltrue{LWR@startedrow}%
\global\booltrue{LWR@intabularmetadata}%
\ifbool{LWR@doinghline}%
{\LWR@htmltag{tr class="hline"{}}\LWR@orignewline}%
{% not doing hline
\ifbool{LWR@doingtbrule}%
{\LWR@htmltag{tr class="tbrule"{}}\LWR@orignewline}%
{\LWR@htmltag{tr}\LWR@orignewline}%
}% end of not doing hline
}% end of not started the row
}
\newcommand*{\LWR@tabledatasinglecolumntag}%
{%
\LWR@maybenewtablerow%
\ifbool{LWR@exitingtabular}{}%
{% not exiting tabular
\StrChar{\LWR@tablecolspec}{\theLWR@tablecolspos}[\LWR@strresult]%
\LWR@htmltag{td class="td%
\LWR@strresult%
\ifthenelse{\equal{\LWR@getexparray{LWR@midrules}{\theLWR@tablecolspos}}{Y}}{rule}{}%
"{}}%
\ifthenelse{%
\equal{\LWR@strresult}{p}\OR%
\equal{\LWR@strresult}{m}\OR%
\equal{\LWR@strresult}{b}\OR%
\equal{\LWR@strresult}{P}\OR%
\equal{\LWR@strresult}{M}\OR%
\equal{\LWR@strresult}{B}%
}%
{% allow pars
\LWR@startpars%
\global\booltrue{LWR@tableparcell}%
}% allow pars
{}% no pars
\ifthenelse{\cnttest{\value{LWR@tablecolspos}}=1}%
{\LWR@getexparray{LWR@colatspec}{leftedge}}% left edge
{}% not left edge
\LWR@getexparray{LWR@colbeforespec}{\theLWR@tablecolspos}%
\global\boolfalse{LWR@intabularmetadata}%
}% not exiting tabular
}%
\newcounter{LWR@midrulecounter}
\newcommand*{\LWR@clearmidrules}
{%
\setcounter{LWR@midrulecounter}{1}%
\whiledo{%
\cnttest{\value{LWR@midrulecounter}}{<=}{\value{LWR@tablecolswidth}}%
}%
{%
\LWR@setexparray{LWR@midrules}{\theLWR@midrulecounter}{\relax}%
\addtocounter{LWR@midrulecounter}{1}%
}%
}
\newcommand*{\LWR@subcmidrule}[4]{%
\setcounter{LWR@midrulecounter}{#3}%
\whiledo{\cnttest{\value{LWR@midrulecounter}}{<=}{#4}}%
{%
\LWR@setexparray{LWR@midrules}{\theLWR@midrulecounter}{Y}%
\addtocounter{LWR@midrulecounter}{1}%
}% end of the whiledo
}
\NewDocumentCommand{\LWR@docmidrule}{o d() >{\SplitArgument{1}{-}}m}%
{\LWR@subcmidrule{#1}{#2}#3}
\newcounter{LWR@tablemulticolswidth}
\newcounter{LWR@tablemulticolspos}
\newcommand*{\LWR@printmccoltype}[1]{%
\LWR@traceinfo{lwr@printmccoltype -#1-}%
\StrChar{#1}{\theLWR@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}{S}{r}{}%
\LWR@traceinfo{lwr@printmccoltype done}%
}
\newcommand*{\LWR@multicolpartext}{%
\LWR@startpars%
\LWR@multicoltext%
\LWR@stoppars%
}
\newcommand*{\LWR@multicolother}[1]{%
\addtocounter{LWR@tablemulticolspos}{1}%
\StrChar{#1}{\theLWR@tablemulticolspos}[\LWR@strresult]%
\LWR@strresult%
}
\newcommand*{\LWR@printmccoldata}[1]{%
\LWR@traceinfo{lwr@printmccoldata -#1}%
\StrChar{#1}{\theLWR@tablemulticolspos}[\LWR@strresult]%
\IfStrEq{\LWR@strresult}{l}{\LWR@multicoltext}{}%
\IfStrEq{\LWR@strresult}{c}{\LWR@multicoltext}{}%
\IfStrEq{\LWR@strresult}{r}{\LWR@multicoltext}{}%
\IfStrEq{\LWR@strresult}{p}{\LWR@multicolpartext}{}%
\IfStrEq{\LWR@strresult}{m}{\LWR@multicolpartext}{}%
\IfStrEq{\LWR@strresult}{b}{\LWR@multicolpartext}{}%
\IfStrEq{\LWR@strresult}{P}{\LWR@multicolpartext}{}%
\IfStrEq{\LWR@strresult}{M}{\LWR@multicolpartext}{}%
\IfStrEq{\LWR@strresult}{B}{\LWR@multicolpartext}{}%
\IfStrEq{\LWR@strresult}{S}{\LWR@multicolpartext}{}%
\IfStrEq{\LWR@strresult}{\detokenize{@}}{\LWR@multicolother{#1}}{}%
\IfStrEq{\LWR@strresult}{\detokenize{>}}{\LWR@multicolother{#1}}{}%
\IfStrEq{\LWR@strresult}{\detokenize{<}}{\LWR@multicolother{#1}}{}%
\LWR@traceinfo{lwr@printmccoldata done}%
}
\newcommand*{\LWR@parsemulticolumnalignment}[2]{%
\setcounter{LWR@tablemulticolspos}{1}%
\StrLen{#1}[\LWR@strresult]%
\setcounter{LWR@tablemulticolswidth}{\LWR@strresult}%
\whiledo{%
\not\value{LWR@tablemulticolspos}>\value{LWR@tablemulticolswidth}%
}%
{%
#2{#1}%
\addtocounter{LWR@tablemulticolspos}{1}%
}%
}
\newcommand{\LWR@multicoltext}{}
\NewDocumentCommand{\LWR@domulticolumn}{m m +m}{%
\LWR@traceinfo{lwr@domulticolumn -#1- -#2-}%
\renewcommand{\LWR@multicoltext}{#3}%
\LWR@maybenewtablerow%
\LWR@htmltag{td colspan="#1"
class="td%
\LWR@parsemulticolumnalignment{#2}{\LWR@printmccoltype}%
\ifthenelse{\equal{\LWR@getexparray{LWR@midrules}{\theLWR@tablecolspos}}{Y}}{rule}{}%
"%
}% end of the opening table data tag
\global\boolfalse{LWR@intabularmetadata}%
\LWR@parsemulticolumnalignment{#2}{\LWR@printmccoldata}%
}
\newbool{LWR@starredlongtable}
\boolfalse{LWR@starredlongtable}
\providecommand*{\LTcaptype}{table}
\NewDocumentCommand{\LWR@longtabledatacaptiontag}{s o +m}
{%
\IfValueTF{#2}{% optional given?
\ifthenelse{\equal{#2}{}}% optional empty?
{\LWR@setlatestname{#3}}% empty
{\LWR@setlatestname{#2}}% given and non-empty
}% optional given
{\LWR@setlatestname{#3}}% no optional
\LWR@domulticolumn{\theLWR@tabletotalcols}{P}{% \LWR@domulticolumn
\IfBooleanTF{#1}% star?
{% yes star
\LWR@htmlblocktag{figcaption}%
#3%
\LWR@htmlblocktag{/figcaption}%
}%
{% No star:
\ifbool{LWR@starredlongtable}%
{%
\ifthenelse{\equal{#2}{}}% TOC entry
{}%
{%
\refstepcounter{\LTcaptype}%
\protected@edef\@currentlabel{%
\csuse{p@\LTcaptype}\csuse{the\LTcaptype}}%
}%
}{}%
\LWR@htmlblocktag{figcaption}%
\csuse{fnum@\LTcaptype}\CaptionSeparator#3%
\LWR@htmlblocktag{/figcaption}%
\ifthenelse{\equal{#2}{}}% TOC entry empty
{}%
{% TOC entry not empty
\IfNoValueTF{#2}% No TOC entry?
{% No TOC entry
\addcontentsline%
{\csuse{ext@\LTcaptype}}%
{\LTcaptype}%
{%
\protect\numberline%
{\csuse{p@\LTcaptype}\csuse{the\LTcaptype}}%
{\ignorespaces #3\protect\relax}%
}%
}% end of No TOC entry
{% yes TOC entry
\addcontentsline%
{\csuse{ext@\LTcaptype}}%
{\LTcaptype}%
{%
\protect\numberline%
{\csuse{p@\LTcaptype}\csuse{the\LTcaptype}}%
{\ignorespaces #2\protect\relax}%
}%
}% end of yes TOC entry
}% end of TOC entry not empty
}% end of no star
}% end of \LWR@domulticolumn
\addtocounter{LWR@tablecolspos}{\theLWR@tabletotalcols}
\addtocounter{LWR@tablecolspos}{-1}
}
\NewDocumentCommand{\LWR@tabledatamulticolumntag}{m m +m}%
{%
\LWR@domulticolumn{#1}{#2}{#3}%
\addtocounter{LWR@tablecolspos}{#1}%
\addtocounter{LWR@tablecolspos}{-1}%
}
\NewDocumentCommand{\LWR@tabledatamultirowtag}{m o m o m}%
{%
\LWR@maybenewtablerow%
\LWR@htmltag{td rowspan="#1" class="td%
\StrChar{\LWR@tablecolspec}{\theLWR@tablecolspos}%
\ifthenelse{\equal{\LWR@getexparray{LWR@midrules}{\theLWR@tablecolspos}}{Y}}{rule}{}%
"{}}
\begingroup \let\\\LWR@endofline #5 \endgroup
\LWR@stoppars%
\global\boolfalse{LWR@intabularmetadata}%
}%
\newcommand*{\LWR@donothing}{}
\newcommand*{\LWR@domidrule}{\booltrue{LWR@doinghline}}
\newcommand*{\LWR@dotbrule}{\booltrue{LWR@doingtbrule}}
\newbool{LWR@exitingtabular}
\newcommand*{\LWR@tabledatacolumntag}%
{%
\let\mynext\LWR@tabledatasinglecolumntag%
\ifthenelse{\isequivalentto{\LWR@mynexttoken}{\end}}%
{\booltrue{LWR@exitingtabular}}{}%
\ifthenelse{\isequivalentto{\LWR@mynexttoken}{\caption}}%
{\let\mynext\LWR@donothing}{}%
\ifthenelse{\isequivalentto{\LWR@mynexttoken}{\multicolumn}}%
{\let\mynext\LWR@donothing}{}%
\ifthenelse{\isequivalentto{\LWR@mynexttoken}{\multirow}}%
{\let\mynext\LWR@donothing}{}%
\ifthenelse{\isequivalentto{\LWR@mynexttoken}{\mrowcell}}%
{\let\mynext\LWR@donothing}{}%
\ifthenelse{\isequivalentto{\LWR@mynexttoken}{\hline}}%
{\let\mynext\LWR@donothing}{}%
\ifthenelse{\isequivalentto{\LWR@mynexttoken}{\toprule}}%
{%
\let\mynext\LWR@donothing}{}%
\ifthenelse{\isequivalentto{\LWR@mynexttoken}{\midrule}}%
{\let\mynext\LWR@donothing}{}%
\ifthenelse{\isequivalentto{\LWR@mynexttoken}{\cmidrule}}%
{\let\mynext\LWR@donothing}{}%
\ifthenelse{\isequivalentto{\LWR@mynexttoken}{\cline}}%
{\let\mynext\LWR@donothing}{}%
\ifthenelse{\isequivalentto{\LWR@mynexttoken}{\bottomrule}}%
{\let\mynext\LWR@donothing}{}%
\ifthenelse{\isequivalentto{\LWR@mynexttoken}{\warpprintonly}}
{\let\mynext\LWR@donothing}{}%
\ifthenelse{\isequivalentto{\LWR@mynexttoken}{\warpHTMLonly}}
{\let\mynext\LWR@donothing}{}%
\mynext%
}
\end{warpHTML}
\begin{warpall}
\newcommand*{\mrowcell}{}
\end{warpall}
\begin{warpHTML}
\newenvironment*{LWR@tabular}[2][]
{%
\LWR@traceinfo{tabular started}%
\begingroup%
\addtocounter{LWR@tabulardepth}{1}%
\global\boolfalse{LWR@startedrow}%
\global\boolfalse{LWR@doinghline}%
\global\boolfalse{LWR@doingtbrule}%
\boolfalse{LWR@exitingtabular}%
\global\booltrue{LWR@intabularmetadata}%
\LWR@htmlblocktag{table}%
\LWR@parsetablecols{#2}%
\LWR@stoppars%
\setcounter{LWR@tablecolspos}{1}%
\LWR@clearmidrules%
\let\\\LWR@tabularendofline%
\renewcommand*{\hline}{\LWR@domidrule\LWR@getmynexttoken}%
\newcommand*{\midrule}{\LWR@domidrule\LWR@getmynexttoken}%
\NewDocumentCommand{\cmidrule}{o d() m}%
{\LWR@docmidrule[##1](##2){##3}\LWR@getmynexttoken}%
\RenewDocumentCommand{\cline}{m}%
{\LWR@docmidrule{##1}\LWR@getmynexttoken}%
\newcommand*{\toprule}{\LWR@dotbrule\LWR@getmynexttoken}%
\newcommand*{\bottomrule}{\LWR@dotbrule\LWR@getmynexttoken}%
\let\multicolumn\LWR@tabledatamulticolumntag%
\let\multirow\LWR@tabledatamultirowtag%
\renewcommand*{\mrowcell}{\global\booltrue{LWR@skippingmrowcell}}%
\let\caption\LWR@longtabledatacaptiontag%
\global\boolfalse{LWR@tableparcell}%
\global\boolfalse{LWR@skippingmrowcell}%
\LWR@getmynexttoken%
}%
{%
\LWR@closetabledatacell%
\LWR@htmlblocktag{/tr}%
\LWR@htmlblocktag{/table}%
\global\boolfalse{LWR@intabularmetadata}%
\addtocounter{LWR@tabulardepth}{-1}%
\endgroup%
}
\end{warpHTML}
\begin{warpHTML}
\newcommand*{\@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%
}%
}
\zref@newlist{special}
\zref@newprop{zLWR@name}{\@currentlabelname}
\zref@newprop{zLWR@htmlfilenumber}{%
\ifbool{FileSectionNames}{\LWR@thisfilename}{\theLWR@htmlfilenumber}%
}%
\zref@newprop{zLWR@lateximagedepth}{\arabic{LWR@lateximagedepth}}
\zref@newprop{zLWR@lateximagenumber}{\arabic{LWR@lateximagenumber}}
\zref@addprop{special}{zLWR@name}
\zref@addprop{special}{zLWR@htmlfilenumber}
\zref@addprop{special}{zLWR@lateximagedepth}
\zref@addprop{special}{zLWR@lateximagenumber}
\newcommand*{\LWR@spref}[2]{%
\zref@extractdefault{#1}{#2}{??}}
\newcommand*{\LWR@nameref}[1]{%
\LWR@spref{#1}{zLWR@name}%
}
\newcommand*{\LWR@htmlfileref}[1]{%
\LWR@traceinfo{LWR@htmlfileref A: !#1!}%
\LWR@spref{#1}{zLWR@htmlfilenumber}%
\LWR@traceinfo{LWR@htmlfileref B}%
}
\newcommand*{\LWR@lateximagedepthref}[1]{%
\LWR@spref{#1}{zLWR@lateximagedepth}%
}
\newcommand*{\LWR@lateximagenumberref}[1]{%
\LWR@spref{#1}{zLWR@lateximagenumber}%
}
\newcommand*{\LWR@splabel}[1]{%
\LWR@setlatestname{\@currentlabelname}%
\zref@labelbylist{#1}{special}}
\newcommand*{\LWR@subsublabel}[1]{%
\ifthenelse{\cnttest{\value{LWR@lateximagedepth}}{>}{0}}%
{}%
{% not lateximage
\ifbool{LWR@doingstartpars}%
{% pars allowed
\ifbool{LWR@doingapar}
{% par started
\LWR@htmltag{a id="#1"{}}\LWR@htmltag{/a}%
}% par started
{% par not started
\LWR@stoppars%
\LWR@htmltag{a id="#1"{}}\LWR@htmltag{/a}%
\LWR@startpars%
}% par not started
}% pars allowed
{% pars not allowed
\LWR@htmltag{a id="#1"{}}\LWR@htmltag{/a}%
}% pars not allowed
}% not lateximage
}
\newcommand*{\LWR@sublabel}[1]{%
\LWR@traceinfo{LWR@sublabel: !#1!}%
\LWR@origlabel{#1}%
\LWR@traceinfo{about to splabel}%
\LWR@traceinfo{filesectionnames is \ifbool{FileSectionNames}{true}{false}}%
\LWR@traceinfo{LWR@thisfilename is !\LWR@thisfilename!}%
\LWR@traceinfo{LWR@htmlfilenumber is \theLWR@htmlfilenumber}%
\LWR@splabel{#1}%
\LWR@subsublabel{#1}%
\LWR@traceinfo{finished with LWR@sublabel}%
}
\newcommand*{\LWR@newlabel}[1]{%
\LWR@traceinfo{lwr@newlabel: !#1!}%
\LWR@sublabel{#1}%
\LWR@traceinfo{lwr@newlabel: done}%
}
\newcommand*{\LWR@startref}[1]
{%
\edef\LWR@lidref{\LWR@lateximagedepthref{#1}}
\LWR@htmltag{a href="%
\LWR@htmlrefsectionfilename{#1}%
\#%
\ifthenelse{\equal{\LWR@lidref}{??}}%
{??}%
{%
\ifthenelse{\cnttest{\LWR@lidref}{>}{0}}%
{%
lateximage\LWR@lateximagenumberref{#1}%
}%
{%
#1%
}%
}%
"{}}%
}
\NewDocumentCommand{\LWR@newref}{s m}{%
\LWR@traceinfo{LWR@newref #2}%
\IfBooleanTF{#1}%
{\LWR@origref{#2}}%
{%
\LWR@startref{#2}%
\LWR@origref{#2}%
\LWR@htmltag{/a}%
}%
}
\newcommand*{\pagerefPageFor}{page for}
\NewDocumentCommand{\LWR@newpageref}{s m}{%
\IfBooleanTF{#1}%
{(\pagerefPageFor\ \LWR@origref{#2})}%
{(\cpageref{#2})}%
}
\newcommand*{\nameref}[1]{%
\LWR@traceinfo{nameref A}%
\LWR@startref{#1}%
\LWR@traceinfo{nameref B}%
\LWR@nameref{#1}%
\LWR@traceinfo{nameref C}%
\LWR@htmltag{/a}%
\LWR@traceinfo{nameref D}%
}
\NewDocumentCommand{\LWR@subhyperref}{m +m}{%
\LWR@htmltag{a href="{#1}" target="\_{}blank"\LWR@orignewline}#2\LWR@htmltag{/a}%
\LWR@ensuredoingapar%
}
\NewDocumentCommand{\LWR@subhyperrefclass}{m +m m}{%
\LWR@htmltag{a href="{#1}"
class="#3"\LWR@orignewline}#2\LWR@htmltag{/a}%
\LWR@ensuredoingapar%
}
\NewDocumentCommand{\LWR@hrefb}{O{} m +m}{%
\LWR@subhyperref{#2}{#3}%
\endgroup%
\LWR@ensuredoingapar%
}
\newcommand{\href}{%
\LWR@ensuredoingapar%
\begingroup%
\catcode`\_=12
\LWR@hrefb%
}
\newcommand*{\LWR@nolinkurlb}[1]{#1\endgroup\LWR@ensuredoingapar}
\newcommand{\nolinkurl}{%
\LWR@ensuredoingapar%
\begingroup\catcode`\_=12
\LWR@nolinkurlb%
}
\newcommand*{\LWR@urlb}[1]{%
\href{#1}{#1}%
\endgroup%
\LWR@ensuredoingapar%
}
\newcommand{\url}{%
\LWR@ensuredoingapar%
\begingroup\catcode`\_=12
\LWR@urlb%
}
\newcommand*{\LWR@subinlineimage}[5][]{%
\ifthenelse{\equal{#1}{}}%
{\LWR@htmltag{img src="#3.#4" alt="#3" style="#5" class="#2"{}}}%
{\LWR@htmltag{img src="#3.#4" alt="#1" style="#5" class="#2"{}}}%
}
\end{warpHTML}
\begin{warpHTML}
\NewDocumentCommand{\LWR@floatbegin}{m o}{%
\LWR@stoppars
\addtocounter{LWR@thisfloat}{1}%
\booltrue{LWR@freezethisfloat}%
\begingroup
\LWR@origraggedright
\LWR@htmltag{figure id="autofloat-\arabic{LWR@thisfloat}" class="#1"}
\renewcommand*{\@captype}{#1}
\caption@settype{#1}
\LWR@startpars
}
\let\@float\LWR@floatbegin
\let\@dblfloat\LWR@floatbegin
\newcommand*{\LWR@floatend}{%
\LWR@stoppars%
\LWR@htmlelementend{figure}%
\endgroup%
\boolfalse{LWR@freezethisfloat}%
\LWR@startpars%
}
\let\end@float\LWR@floatend
\let\end@dblfloat\LWR@floatend
\newcounter{LWR@thisfloat}
\newbool{LWR@freezethisfloat}
\boolfalse{LWR@freezethisfloat}
\newcommand*{\LWR@maybeincthisfloat}{%
\ifbool{LWR@freezethisfloat}{}{\addtocounter{LWR@thisfloat}{1}}%
}
\newcommand*{\@captype}{}
\AtBeginDocument{\providecommand*{\CaptionSeparator}{:~}}
\AtBeginDocument{\renewcommand{\@makecaption}[2]{#1\CaptionSeparator#2}}
\newcounter{LWR@nextautofloat}
\newcounter{LWR@nextautopage}
\newcommand*{\LWRsetnextfloat}[2]{%
\setcounter{LWR@nextautopage}{#1}%
\setcounter{LWR@nextautofloat}{#2}%
}
\newcounter{LWR@latestautopage}% updated each new HTML file
\setcounter{LWR@latestautopage}{1}
\let\LWR@origcaption@begin\caption@begin
\let\LWR@origcaption@end\caption@end
\let\LWR@orig@@par\@@par
\newcommand{\LWR@caption@begin}
{
\LWR@traceinfo{LWR@caption@begin}%
\begingroup%
\renewcommand{\@@par}{\LWR@closeparagraph\LWR@orig@@par}%
\RenewDocumentEnvironment{minipage}{O{t} o O{t} m}{}{}%
\LWR@htmlblocktag{figcaption}%
\LWR@origcaption@begin%
}
\newcommand{\LWR@caption@end}
{%
\LWR@origcaption@end%
\vspace*{\baselineskip}%
\LWR@htmlblocktag{/figcaption}%
\endgroup%
\LWR@traceinfo{LWR@caption@end: done}%
}
\let\caption@begin\LWR@caption@begin
\let\caption@end\LWR@caption@end
\let\LWR@origcaptionlistentry\captionlistentry
\renewcommand*{\captionlistentry}{%
\LWR@maybeincthisfloat%
\LWR@ensuredoingapar%
\LWR@htmltag{a id="autofloat-\arabic{LWR@thisfloat}"{}}\LWR@htmltag{/a}%
\LWR@origcaptionlistentry%
}
\def\LWR@LTcaptionlistentry{%
\LWR@ensuredoingapar%
\LWR@htmltag{a id="autofloat-\arabic{LWR@thisfloat}"{}}\LWR@htmltag{/a}%
\bgroup
\@ifstar{\egroup\LWR@LT@captionlistentry}% gobble *
{\egroup\LWR@LT@captionlistentry}}%
\def\LWR@LT@captionlistentry#1{%
\caption@listentry\@firstoftwo[\LTcaptype]{#1}}%
\let\LWR@origaddcontentsline\addcontentsline
\renewcommand*{\addcontentsline}[3]{%
\ifthenelse{\equal{#1}{toc}}{}{%
\addtocontents{\@nameuse{ext@#2}}{%
\protect\LWRsetnextfloat%
{\arabic{LWR@latestautopage}}%
{\arabic{LWR@thisfloat}}%
}%
}%
\LWR@origaddcontentsline{#1}{#2}{#3}%
}
\AtBeginDocument{
\let\LWR@origcaptionof\captionof
\renewcommand*{\captionof}{%
\LWR@maybeincthisfloat%
\LWR@stoppars
\LWR@htmltag{a id="autofloat-\arabic{LWR@thisfloat}"{}}\LWR@htmltag{/a}%
\LWR@origcaptionof%
}
}
\end{warpHTML}
\begin{warpHTML}
\newcommand*{\LWR@myshorttoc}[1]{
\LWR@ensuredoingapar
\IfFileExists{\jobname.#1}{
\begingroup
\makeatletter
\@input{\jobname.#1}
\endgroup
}%
{}%
}
\NewDocumentCommand{\LWR@subtableofcontents}{m m}{%
\@ifundefined{chapter}
{\LWR@closeprevious{\LWR@depthsection}}
{\LWR@closeprevious{\LWR@depthchapter}}
\LWR@printpendingnotes
\@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}
}
\let\LWR@origtableofcontents\tableofcontents
\let\LWR@origlistoffigures\listoffigures
\let\LWR@origlistoftables\listoftables
\renewcommand*{\tableofcontents}{%
\LWR@copyfile{\jobname.toc}{\jobname.sidetoc}%
\LWR@printpendingnotes%
\LWR@origtableofcontents%
}
\renewcommand*{\listoffigures}{\LWR@printpendingnotes\LWR@origlistoffigures}
\renewcommand*{\listoftables}{\LWR@printpendingnotes\LWR@origlistoftables}
\NewDocumentCommand{\listof}{m +m}{%
\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.\csuse{ext@#1}\relax
}
\end{warpHTML}
\begin{warpall}
\newcounter{SideTOCDepth}
\setcounter{SideTOCDepth}{1}
\newcommand{\sidetocname}{Contents}
\end{warpall}
\begin{warpHTML}
\newcommand*{\LWR@sidetoc}{
\LWR@stoppars
\LWR@htmlelementclass{nav}{sidetoc}
\setcounter{tocdepth}{\value{SideTOCDepth}}
\begin{BlockClass}{sidetoctitle}
\sidetocname
\end{BlockClass}
\begin{BlockClass}{sidetoccontents}
\LinkHome
\LWR@myshorttoc{sidetoc}
\end{BlockClass}
\LWR@htmlelementclassend{nav}{sidetoc}
}
\renewcommand*{\numberline}[1]{%
\LWR@sectionnumber{#1}%
}
\NewDocumentCommand{\hypertoc}{m m +m m}{%
\ifthenelse{\cnttest{#1}{<=}{\value{tocdepth}}}{%
\LWR@startpars%
\LWR@subhyperrefclass{%
\LWR@htmlrefsectionfilename{autopage-#4}\#autosec-#4}{#3}{#2}%
\LWR@stoppars%
}
{}
}
\newcommand{\hypertocfloat}[4]{%
\LWR@startpars
\LWR@subhyperrefclass{%
\LWR@htmlrefsectionfilename{autopage-\arabic{LWR@nextautopage}}%
\#autofloat-\arabic{LWR@nextautofloat}}%
{#3}{#2}%
\LWR@stoppars%
}
\renewcommand{\l@part}[2]{\hypertoc{-1}{tocpart}{#1}{#2}}
\DeclareDocumentCommand{\l@chapter}{m m}
{\hypertoc{0}{tocchapter}{#1}{#2}}
\renewcommand{\l@section}[2]{\hypertoc{1}{tocsection}{#1}{#2}}
\renewcommand{\l@subsection}[2]{\hypertoc{2}{tocsubsection}{#1}{#2}}
\renewcommand{\l@subsubsection}[2]
{\hypertoc{3}{tocsubsubsection}{#1}{#2}}
\renewcommand{\l@paragraph}[2]{\hypertoc{4}{tocparagraph}{#1}{#2}}
\renewcommand{\l@subparagraph}[2]{\hypertoc{5}{tocsubparagraph}{#1}{#2}}
\renewcommand{\l@figure}[2]{\hypertocfloat{1}{tocfigure}{#1}{#2}}
\renewcommand{\l@table}[2]{\hypertocfloat{1}{toctable}{#1}{#2}}
\end{warpHTML}
\begin{warpHTML}
\@ifundefined{chapter}
{\newcommand*{\LWR@indexsection}{\section{\indexname}}}
{\newcommand*{\LWR@indexsection}{\chapter{\indexname}}}
\let\LWR@origprintindex\printindex
\renewcommand*{\printindex}
{
\LWR@indexsection
\LWR@startpars
\LWR@origprintindex
}
\renewenvironment*{theindex}{%
\let\item\LWR@indexitem%
\let\subitem\LWR@indexsubitem%
\let\subsubitem\LWR@indexsubsubitem%
}{}
\newcommand{\LWR@indexitem}{
\InlineClass{indexitem}{}
}
\newcommand{\LWR@indexsubitem}{
\InlineClass{indexsubitem}{}
}
\newcommand{\LWR@indexsubsubitem}{
\InlineClass{indexsubsubitem}{}
}
\newcommand*{\hyperindexref}[1]{
\LWR@htmltag{a href="%
\LWR@htmlrefsectionfilename{autopage-#1}\#autosec-#1"{}}%
\LWR@origref{autopage-#1}\enskip\LWR@nameref{autopage-#1}%
\LWR@htmltag{/a}%
}
\end{warpHTML}
\begin{warpprint}
\newcommand{\hyperindexref}[1]{#1}
\end{warpprint}
\begin{warpHTML}
\let\LWR@origtextdollar\$
\renewcommand*{\$}{%
\LWR@htmltagc{span}%
\LWR@origtextdollar%
\LWR@htmltagc{/span}%
}
\newcounter{LWR@externalfilecnt}
\let\LWR@origdollar=$
\let\secondorigdollar=$% balance for editor syntax highlighting
\let\LWR@origopenparen\(
\let\LWR@origcloseparen\)
\begingroup
\catcode`\$=\active%
\protected\gdef${\@ifnextchar$\LWR@doubledollar\LWR@singledollar}%
\gdef\LWR@doubledollar$#1$${
\ifbool{mathjax}%
{\textbackslash[\LWR@HTMLsanitize{#1}\textbackslash]}
{% not mathjax
\begin{lateximage}%
[\textbackslash{[} \LWR@HTMLsanitize{#1} \textbackslash{]}]%
\LWR@origdollar\LWR@origdollar#1\LWR@origdollar\LWR@origdollar%
\end{lateximage}
}
}%
\gdef\LWR@singledollar#1${%
\ifbool{mathjax}%
{\textbackslash(\LWR@HTMLsanitize{#1}\textbackslash)}
{% not mathjax
\begin{lateximage}%
[\textbackslash( \LWR@HTMLsanitize{#1} \textbackslash)]%
\LWR@origdollar#1\LWR@origdollar%
\end{lateximage}%
}%
}%
\gdef\(#1\){$#1$}
\gdef\[#1\]{$$#1$$}
\endgroup
\let\math\relax
\let\endmath\relax
\let\displaymath\relax
\let\enddisplaymath\relax
\NewEnviron{math}{\expandafter\(\BODY\)}
\NewEnviron{displaymath}{\expandafter\[\BODY\]\@ignoretrue}
\AtBeginDocument{\catcode`\$=\active}
\newcounter{LWR@nextequation}
\newcommand*{\LWR@syncmathjax}{%
\ifcsdef{thechapter}{
\BlockClassSingle{hidden}{
\textbackslash(
\textbackslash{}seteqsection \{\thechapter\}
\textbackslash)
}
}
{}% not using chapters
\ifthenelse{\cnttest{\value{equation}}>0}
{
\setcounter{LWR@nextequation}{\value{equation}}
\addtocounter{LWR@nextequation}{1}
\BlockClassSingle{hidden}{
\textbackslash(
\textbackslash{}seteqnumber \{\arabic{LWR@nextequation}\}
\textbackslash)
}
}{}% not eq > 1
}
\newcommand*{\LWR@restoremathlatexformatting}{%
\let\hspace\LWR@orighspace%
\let\rule\LWR@origrule%
\let\,\LWR@origcomma% disable HTML short unbreakable space
\let\textit\LWR@origtextit%
\let\textbf\LWR@origtextbf%
\let\texttt\LWR@origtexttt%
\let\textsc\LWR@origtextsc%
\let\textsf\LWR@origtextsf%
\let\textrm\LWR@origtextrm%
\renewcommand*{\thefootnote}{\fnsymbol{footnote}}%
\let\textsuperscript\LWR@origtextsuperscript%
\let\textsubscript\LWR@origtextsubscript%
\let~\LWR@origtilde%
\let\enskip\LWR@origenskip%
\let\quad\LWR@origquad%
\let\qquad\LWR@origqquad%
}
\NewDocumentCommand{\LWR@hidelatexequation}{m +m}{%
\LWR@stoppars
\LWR@htmlopencomment
\begingroup
\csuse{LWR@orig#1}
\LWR@restoremathlatexformatting
#2
\csuse{LWR@origend#1}
\endgroup
\LWR@htmlclosecomment
\LWR@startpars
}
\NewDocumentCommand{\LWR@addmathjax}{m +m}{%
\textbackslash{}begin\{#1\}
\LWR@HTMLsanitizeexpand{\detokenize\expandafter{#2}}
\textbackslash{}end\{#1\}
}
\let\LWR@origequation\equation
\let\LWR@origendequation\endequation
\let\equation\relax
\let\endequation\relax
\NewEnviron{equation}{%
\ifbool{mathjax}
{
\LWR@syncmathjax
\LWR@hidelatexequation{equation}{\BODY}
}
{% not mathjax
\begin{lateximage}[(\theequation) \textbackslash{begin\{equation\}}%
\LWR@HTMLsanitizeexpand{\detokenize\expandafter{\BODY}}%
\textbackslash{end\{equation\}}]% alt tag
\LWR@origequation
\BODY% contents collected by NewEnviron
\LWR@origendequation
\end{lateximage}%
}
}[\ifbool{mathjax}{\LWR@addmathjax{equation}{\BODY}}{}]
\newbool{LWR@amsmultline}
\boolfalse{LWR@amsmultline}
\newcommand*{\LWR@htmlmathlabel}[1]{%
\LWR@traceinfo{LWR@htmlmathlabel #1}%
\ifbool{mathjax}{%
\text{
\ifbool{LWR@amsmultline}{}{\hspace*{\totwidth@}}
\LWR@htmlclosecomment\LWR@sublabel{\@firstofone#1}\LWR@htmlopencomment}%
}%
{\LWR@sublabel{\@firstofone#1}}%
}
\newcommand*{\LWR@beginhideamsmath}{
\LWR@stoppars
\LWR@htmlopencomment
\begingroup
\LWR@restoremathlatexformatting
}
\newcommand*{\LWR@endhideamsmath}{
\endgroup
\LWR@htmlclosecomment
\LWR@startpars
}
\BeforeBeginEnvironment{multline}{
\ifbool{mathjax}
{
\LWR@syncmathjax
\booltrue{LWR@amsmultline}
\LWR@beginhideamsmath
}
{
\lateximage[LWRAMSMATHBODY]
}
}
\AfterEndEnvironment{multline}{
\ifbool{mathjax}
{
\LWR@endhideamsmath
\boolfalse{LWR@amsmultline}
\LWR@addmathjax{multline}{\the\@envbody}
}
{\endlateximage}
}
\BeforeBeginEnvironment{multline*}{
\ifbool{mathjax}
{
\LWR@syncmathjax
\booltrue{LWR@amsmultline}
\LWR@beginhideamsmath
}
{
\lateximage[LWRAMSMATHBODY]
}
}
\AfterEndEnvironment{multline*}{
\ifbool{mathjax}
{
\LWR@endhideamsmath
\boolfalse{LWR@amsmultline}
\LWR@addmathjax{multline*}{\the\@envbody}
}
{\endlateximage}
}
\BeforeBeginEnvironment{gather}{
\ifbool{mathjax}
{
\LWR@syncmathjax
\boolfalse{LWR@amsmultline}
\LWR@beginhideamsmath
}
{
\lateximage[LWRAMSMATHBODY]
}
}
\AfterEndEnvironment{gather}{
\ifbool{mathjax}
{
\LWR@endhideamsmath
\LWR@addmathjax{gather}{\the\@envbody}
}
{\endlateximage}
}
\BeforeBeginEnvironment{gather*}{
\ifbool{mathjax}
{
\LWR@syncmathjax
\boolfalse{LWR@amsmultline}
\LWR@beginhideamsmath
}
{
\lateximage[LWRAMSMATHBODY]
}
}
\AfterEndEnvironment{gather*}{
\ifbool{mathjax}
{
\LWR@endhideamsmath
\LWR@addmathjax{gather*}{\the\@envbody}
}
{\endlateximage}
}
\BeforeBeginEnvironment{align}{
\ifbool{mathjax}
{
\LWR@syncmathjax
\boolfalse{LWR@amsmultline}
\LWR@beginhideamsmath
}
{
\lateximage[LWRAMSMATHBODY]
}
}
\AfterEndEnvironment{align}{
\ifbool{mathjax}
{
\LWR@endhideamsmath
\LWR@addmathjax{align}{\the\@envbody}
}
{\endlateximage}
}
\BeforeBeginEnvironment{align*}{
\ifbool{mathjax}
{
\LWR@syncmathjax
\boolfalse{LWR@amsmultline}
\LWR@beginhideamsmath
}
{
\lateximage[LWRAMSMATHBODY]
}
}
\AfterEndEnvironment{align*}{
\ifbool{mathjax}
{
\LWR@endhideamsmath
\LWR@addmathjax{align*}{\the\@envbody}
}
{\endlateximage}
}
\BeforeBeginEnvironment{flalign}{
\ifbool{mathjax}
{
\LWR@syncmathjax
\boolfalse{LWR@amsmultline}
\LWR@beginhideamsmath
}
{
\lateximage[LWRAMSMATHBODY]
}
}
\AfterEndEnvironment{flalign}{
\ifbool{mathjax}
{
\LWR@endhideamsmath
\LWR@addmathjax{flalign}{\the\@envbody}
}
{\endlateximage}
}
\BeforeBeginEnvironment{flalign*}{
\ifbool{mathjax}
{
\LWR@syncmathjax
\boolfalse{LWR@amsmultline}
\LWR@beginhideamsmath
}
{
\lateximage[LWRAMSMATHBODY]
}
}
\AfterEndEnvironment{flalign*}{
\ifbool{mathjax}
{
\LWR@endhideamsmath
\LWR@addmathjax{flalign*}{\the\@envbody}
}
{\endlateximage}
}
\end{warpHTML}
\begin{warpHTML}
\newpagestyle{LWR@commentfooterstyle}{
\sethead{}{}{}
\setfoot{\LWR@htmlopencomment}{}{}
}
\newcounter{LWR@lateximagenumber}
\setcounter{LWR@lateximagenumber}{0}
\newcounter{LWR@lateximagedepth}
\setcounter{LWR@lateximagedepth}{0}
\ifcsdef{LWR@file}{}{\newwrite{\LWR@file}}
\edef\LWR@hashmark{\string#} % for use in \write
\edef\LWR@percent{\@percentchar} % for use in \write
\newcounter{LWR@nextpage}
\end{warpHTML}
\begin{warpall}
\newcommand*{\LateximageFontSizeName}{normalsize}
\end{warpall}
\begin{warpHTML}
\newcommand{\LWR@HTMLsanitize}[1]{%
\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{##}}%
{\#}%
[\LWR@strresult]%
\LWR@strresult%
}
\newcommand{\LWR@HTMLsanitizeexpand}[1]{%
\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]%
\LWR@strresult%
}
\NewDocumentEnvironment{lateximage}{O{image}}{%
\ifthenelse{\cnttest{\value{LWR@lateximagedepth}}{>}{0}}%
{%
\addtocounter{LWR@lateximagedepth}{1}%
}%
{% start of outer-most lateximage
\addtocounter{LWR@lateximagenumber}{1}%
\boolfalse{mathjax}
\LWR@ensuredoingapar%
\addtocounter{LWR@externalfilecnt}{1}%
\setcounter{LWR@nextpage}{\thepage}%
\addtocounter{LWR@nextpage}{1}%
\LWR@htmltag{span id="lateximage\arabic{LWR@lateximagenumber}" %
class="lateximagesource"{}} \LWR@orignewline
\immediate\write\LWR@file{%
pdfseparate -f \theLWR@nextpage \space -l %
\theLWR@nextpage \space %
\jobname.pdf lateximagetemp-\LWR@percent d.pdf}%
\immediate\write\LWR@file{%
pdfcrop --hires lateximagetemp-\theLWR@nextpage.pdf
lateximage-\theLWR@externalfilecnt.pdf}%
\immediate\write\LWR@file{%
pdftocairo -svg lateximage-\theLWR@externalfilecnt.pdf
lateximage-\theLWR@externalfilecnt.svg}%
\immediate\write\LWR@file{%
\OSmv lateximage-\theLWR@externalfilecnt.svg %
lateximages\OSPathSymbol}%
\immediate\write\LWR@file{%
\OSrm lateximage-\theLWR@externalfilecnt.pdf
lateximagetemp-\theLWR@nextpage.pdf}%
\LWR@origthispagestyle{LWR@commentfooterstyle}%
\addtocounter{LWR@lateximagedepth}{1}%
\LWR@orignewpage%
\LWR@origminipage{6in}%
\csuse{LWR@orig\LateximageFontSizeName}%
\let\hspace\LWR@orighspace%
\let\rule\LWR@origrule%
\let\,\LWR@origcomma% disable HTML short unbreakable space
\let\textit\LWR@origtextit%
\let\textbf\LWR@origtextbf%
\let\texttt\LWR@origtexttt%
\let\textsc\LWR@origtextsc%
\let\textsf\LWR@origtextsf%
\let\textrm\LWR@origtextrm%
\renewcommand*{\thefootnote}{\fnsymbol{footnote}}%
\let\textsuperscript\LWR@origtextsuperscript%
\let\textsubscript\LWR@origtextsubscript%
\let~\LWR@origtilde%
\let\enskip\LWR@origenskip%
\let\quad\LWR@origquad%
\let\qquad\LWR@origqquad%
\let\tabular\LWR@origtabular%
\let\endtabular\LWR@origendtabular%
\let\newline\LWR@orignewline%
}% end of outer-most lateximage
}% end of \begin{lateximage}
{% start of \end{lateximage}
\ifthenelse{\cnttest{\value{LWR@lateximagedepth}}{>}{1}}%
{%
\addtocounter{LWR@lateximagedepth}{-1}%
}%
{% end of outer-most lateximage
\LWR@origendminipage%
\LWR@orignewpage%
\LWR@origscriptsize%
\LWR@htmlclosecomment{}\LWR@orignewline%
\ifthenelse{\equal{#1}{LWRAMSMATHBODY}}%
{%
\LWR@subinlineimage[%
\LWR@HTMLsanitizeexpand{\detokenize\expandafter{\the\@envbody}}%
]%
{lateximage}%
{lateximages\OSPathSymbol{}lateximage-\theLWR@externalfilecnt}%
{svg}%
{}%
}%
{%
\LWR@subinlineimage[#1]{lateximage}%
{lateximages\OSPathSymbol{}lateximage-\theLWR@externalfilecnt}{svg}{}%
}%
\LWR@ensuredoingapar%
\LWR@htmltag{/span}%
\LWR@htmlcomment{End of lateximage}%
\addtocounter{LWR@lateximagedepth}{-1}%
}% end of outer-most lateximage
}%
\end{warpHTML}
\begin{warpprint}
\newenvironment{lateximage}[1][]{\begingroup}{\endgroup}
\end{warpprint}
\begin{warpHTML}
\renewenvironment*{center}
{\BlockClass{center}}
{\endBlockClass}
\renewenvironment*{flushright}
{\BlockClass{flushright}}
{\endBlockClass}
\renewenvironment*{flushleft}
{\BlockClass{flushleft}}
{\endBlockClass}
\end{warpHTML}
\begin{warpHTML}
\PassOptionsToPackage{
detect-mode=true,
per-mode=symbol, % fraction is not seen by pdftotext
text-celsius = {\HTMLentity{deg}C},
text-degree = {\HTMLentity{deg}},
}{siunitx}
\end{warpHTML}
\begin{warpHTML}
\newcommand*{\thisgraphicspath}{{}}
\renewcommand*{\graphicspath}[1]{\renewcommand*{\thisgraphicspath}{#1}}
\renewcommand*{\DeclareGraphicsExtensions}[1]{}
\renewcommand*{\DeclareGraphicsRule}[4]{}
\renewcommand*{\unitspace}{}
\newlength{\LWR@igwidth}
\newlength{\LWR@igheight}
\newcommand*{\LWR@igwidthstyle}{}
\newcommand*{\LWR@igheightstyle}{}
\newcommand*{\LWR@igorigin}{}
\newcommand*{\LWR@igangle}{}
\newcommand*{\LWR@igxscale}{1}
\newcommand*{\LWR@igyscale}{1}
\newcommand*{\LWR@igclass}{inlineimage}
\define@key{igraph}{width}{%
\setlength{\LWR@igwidth}{#1}%
\ifthenelse{\lengthtest{\LWR@igwidth > 0pt}}%
{%
\uselengthunit{PT}%
\renewcommand*{\LWR@igwidthstyle}{width:\rndprintlength{\LWR@igwidth}}%
\IfEndWith{#1}{ex}%
{\renewcommand*{\LWR@igwidthstyle}{width:#1}}% yes ex
{}% not ex
\IfEndWith{#1}{em}%
{\renewcommand*{\LWR@igwidthstyle}{width:#1}}% yes em
{}% not em
\IfEndWith{#1}{\%}%
{\renewcommand*{\LWR@igwidthstyle}{width:#1}}% yes percent
{}% not percent
\IfEndWith{#1}{px}%
{\renewcommand*{\LWR@igwidthstyle}{width:#1}}% yes px
{}% not px
}{}% end of length > 0pt
}
\define@key{igraph}{height}{%
\setlength{\LWR@igheight}{#1}%
\ifthenelse{\lengthtest{\LWR@igheight > 0pt}}%
{%
\uselengthunit{PT}%
\renewcommand*{\LWR@igheightstyle}{%
height:\rndprintlength{\LWR@igheight} %
}%
\IfEndWith{#1}{ex}%
{\renewcommand*{\LWR@igheightstyle}{height:#1}}% yes ex
{}% not ex
\IfEndWith{#1}{em}%
{\renewcommand*{\LWR@igheightstyle}{height:#1}}% yes em
{}% not em
\IfEndWith{#1}{\%}%
{\renewcommand*{\LWR@igheightstyle}{height:#1}}% yes percent
{}% not percent
\IfEndWith{#1}{px}%
{\renewcommand*{\LWR@igheightstyle}{height:#1}}% yes px
{}% not px
}{}% end of length > 0pt
}
\define@key{igraph}{origin}{%
\renewcommand*{\LWR@igorigin}{#1}%
}
\define@key{igraph}{angle}{\renewcommand*{\LWR@igangle}{#1}}
\define@key{igraph}{class}{\renewcommand*{\LWR@igclass}{#1}}
\define@key{igraph}{scale}{%
\renewcommand*{\LWR@igxscale}{#1}%
\renewcommand*{\LWR@igyscale}{#1}}
\define@key{igraph}{bb}{}
\define@key{igraph}{bbllx}{}
\define@key{igraph}{bblly}{}
\define@key{igraph}{bburx}{}
\define@key{igraph}{bbury}{}
\define@key{igraph}{natwidth}{}
\define@key{igraph}{natheight}{}
\define@key{igraph}{hiresbb}{}
\define@key{igraph}{viewport}{}
\define@key{igraph}{trim}{}
\define@key{igraph}{totalheight}{}
\define@key{igraph}{keepaspectratio}{}
\define@key{igraph}{clip}{}
\define@key{igraph}{draft}{}
\define@key{igraph}{type}{}
\define@key{igraph}{ext}{}
\define@key{igraph}{read}{}
\define@key{igraph}{command}{}
\newcommand*{\LWR@rotstyle}[2]{%
#1transform:rotate(-#2deg);
}
\newcommand*{\LWR@scalestyle}[3]{%
#1transform:scale(#2,#3);
}
\newbool{LWR@infloatrow}
\boolfalse{LWR@infloatrow}
\newcommand*{\LWR@imageextension}{}
\newcommand*{\LWR@expgraphicsfilename}{}
\newcommand*{\LWR@includegraphicsb}[2][]
{%
\LWR@origtilde \LWR@orignewline%
\ifthenelse{\cnttest{\value{LWR@minipagedepth}}{=}{0}}{%
\ifbool{LWR@infloatrow}%
{}
{% not in a minipage or a floatrow:
\setlength{\linewidth}{6in}%
\setlength{\textwidth}{6in}%
\setlength{\textheight}{9in}%
}%
}{}%
\edef\LWR@expgraphicsfilename{#2}
\renewcommand*{\LWR@imageextension}{}%
\IfFileExists{\detokenize\expandafter\thisgraphicspath\LWR@expgraphicsfilename.jpg}%
{\renewcommand*{\LWR@imageextension}{.jpg}}{}%
\IfFileExists{\detokenize\expandafter\thisgraphicspath\LWR@expgraphicsfilename.JPG}%
{\renewcommand*{\LWR@imageextension}{.JPG}}{}%
\IfFileExists{\detokenize\expandafter\thisgraphicspath\LWR@expgraphicsfilename.png}%
{\renewcommand*{\LWR@imageextension}{.png}}{}%
\IfFileExists{\detokenize\expandafter\thisgraphicspath\LWR@expgraphicsfilename.PNG}%
{\renewcommand*{\LWR@imageextension}{.PNG}}{}%
\IfFileExists{\detokenize\expandafter\thisgraphicspath\LWR@expgraphicsfilename.gif}%
{\renewcommand*{\LWR@imageextension}{.gif}}{}%
\IfFileExists{\detokenize\expandafter\thisgraphicspath\LWR@expgraphicsfilename.GIF}%
{\renewcommand*{\LWR@imageextension}{.GIF}}{}%
\IfFileExists{\detokenize\expandafter\thisgraphicspath\LWR@expgraphicsfilename.svg}%
{\renewcommand*{\LWR@imageextension}{.svg}}{}%
\IfFileExists{\detokenize\expandafter\thisgraphicspath\LWR@expgraphicsfilename.SVG}%
{\renewcommand*{\LWR@imageextension}{.SVG}}{}%
\IfFileExists{\detokenize\expandafter\thisgraphicspath\LWR@expgraphicsfilename.svgz}%
{\renewcommand*{\LWR@imageextension}{.svgz}}{}%
\IfFileExists{\detokenize\expandafter\thisgraphicspath\LWR@expgraphicsfilename.SVGZ}%
{\renewcommand*{\LWR@imageextension}{.SVGZ}}{}%
\StrSubstitute{\detokenize\expandafter{\LWR@expgraphicsfilename}}%
{\detokenize{.pdf}}{\detokenize{.svg}}[\LWR@strresult]%
\StrSubstitute{\LWR@strresult}%
{\detokenize{.PDF}}{\detokenize{.SVG}}[\LWR@strresult]%
\large%
\setlength{\LWR@igwidth}{0pt}%
\setlength{\LWR@igheight}{0pt}%
\renewcommand*{\LWR@igwidthstyle}{}%
\renewcommand*{\LWR@igheightstyle}{}%
\renewcommand*{\LWR@igorigin}{}%
\renewcommand*{\LWR@igangle}{}%
\renewcommand*{\LWR@igxscale}{1}%
\renewcommand*{\LWR@igyscale}{1}%
\renewcommand*{\LWR@igclass}{inlineimage}%
\setkeys{igraph}{#1}%
\href{\thisgraphicspath\LWR@strresult\LWR@imageextension}%
{% start of href
\LWR@htmltag{% start of image tags
img src="\thisgraphicspath\LWR@strresult\LWR@imageextension" \LWR@orignewline
\LWR@origtilde{} alt="\LWR@strresult" \LWR@orignewline
\ifthenelse{
\NOT\equal{\LWR@igwidthstyle}{} \OR
\NOT\equal{\LWR@igheightstyle}{} \OR
\NOT\equal{\LWR@igorigin}{} \OR
\NOT\equal{\LWR@igangle}{} \OR
\NOT\equal{\LWR@igxscale}{1} \OR
\NOT\equal{\LWR@igyscale}{1}
}%
{\LWR@origtilde{} style="%
\ifthenelse{\NOT\equal{\LWR@igwidthstyle}{}}%
{\LWR@igwidthstyle;}{}%
\ifthenelse{\NOT\equal{\LWR@igheightstyle}{}}%
{\LWR@igheightstyle;}{}%
\ifthenelse{\NOT\equal{\LWR@igorigin}{}}%
{\LWR@origtilde{} transform-origin: \LWR@originnames{\LWR@igorigin}; \LWR@orignewline}{}%
\ifthenelse{\NOT\equal{\LWR@igangle}{}}%
{%
\LWR@rotstyle{-ms-}{\LWR@igangle}%
\LWR@rotstyle{-webkit-}{\LWR@igangle}%
\LWR@rotstyle{}{\LWR@igangle%
}}{}%
\ifthenelse{\NOT\equal{\LWR@igxscale}{1}\OR%
\NOT\equal{\LWR@igyscale}{1}}%
{\LWR@scalestyle{-ms-}{\LWR@igxscale}{\LWR@igyscale}%
\LWR@scalestyle{-webkit-}{\LWR@igxscale}{\LWR@igyscale}%
\LWR@scalestyle{}{\LWR@igxscale}{\LWR@igyscale}}{}%
" \LWR@orignewline}{}%
\LWR@origtilde{} class="\LWR@igclass" \LWR@orignewline%
}% end of image tags
}% end of href
\endgroup
\LWR@origscriptsize
}
\renewcommand*{\includegraphics}
{%
\LWR@ensuredoingapar%
\begingroup%
\LWR@includegraphicsb%
}
\end{warpHTML}
\begin{warpprint}
\define@key{Gin}{class}{}
\end{warpprint}
\begin{warpHTML}
\newcommand*{\LWR@rotboxorigin}{}
\newcommand*{\LWR@originname}[1]{%
\ifthenelse{\equal{#1}{t}}{top}{}%
\ifthenelse{\equal{#1}{b}}{bottom}{}%
\ifthenelse{\equal{#1}{c}}{center}{}%
\ifthenelse{\equal{#1}{l}}{left}{}%
\ifthenelse{\equal{#1}{r}}{right}{}%
}
\newcommand*{\LWR@originnames}[1]{%
\StrChar{#1}{1}[\LWR@strresult]%
\LWR@originname{\LWR@strresult}
\StrChar{#1}{2}[\LWR@strresult]%
\LWR@originname{\LWR@strresult}
}
\define@key{krotbox}{origin}{%
\renewcommand*{\LWR@rotboxorigin}{#1}%
}
\define@key{krotbox}{x}{}
\define@key{krotbox}{y}{}
\define@key{krotbox}{units}{}
\NewDocumentCommand{\LWR@rotatebox}{O{} m +m}{%
\renewcommand*{\LWR@rotboxorigin}{}
\setkeys{krotbox}{#1}%
\LWR@htmltagc{span style="display: inline-block;
\ifthenelse{\NOT\equal{\LWR@rotboxorigin}{}}%
{transform-origin: \LWR@originnames{\LWR@rotboxorigin};\LWR@origtilde}{}%
\LWR@rotstyle{-ms-}{#2} %
\LWR@rotstyle{-webkit-}{#2} %
\LWR@rotstyle{}{#2} %
"{}}\LWR@orignewline%
\begin{LWR@nestspan}%
#3%
\LWR@htmltagc{/span}%
\end{LWR@nestspan}%
}
\NewDocumentCommand{\LWR@scalebox}{m o m}{%
\LWR@htmltagc{span style="display: inline-block; %
\LWR@scalestyle{-ms-}{#1}{\IfNoValueTF{#2}{#1}{#2}} %
\LWR@scalestyle{-webkit-}{#1}{\IfNoValueTF{#2}{#1}{#2}} %
\LWR@scalestyle{}{#1}{\IfNoValueTF{#2}{#1}{#2}} %
"{}}%
\begin{LWR@nestspan}%
#3%
\LWR@htmltagc{/span}%
\end{LWR@nestspan}%
}
\newcommand{\LWR@reflectbox}[1]{\LWR@scalebox{-1}[1]{#1}}
\end{warpHTML}
\begin{warpHTML}
\renewcommand{\resizebox}[3]{#3}
\end{warpHTML}
\begin{warpHTML}
\AtEndPreamble{
\RequirePackage{cleveref}
\crefname{pagenote}{note}{notes}
}
\AfterEndPreamble{
\renewcommand*{\@@setcref}[2]{#1{\ref{#2}}{}{}}
\renewcommand{\@@setcrefrange}[3]{%
#1{\ref{#2}}{\ref{#3}}{}{}{}{}}
\newcommand*{\cpagerefFor}{for}
\renewcommand*{\@@setcpageref}[2]{%
#1{\cpagerefFor\ \cref{#2}}{}{}%
}
\renewcommand{\@@setcpagerefrange}[3]{%
#1{\cpagerefFor\ \cref{#2}}{\cref{#3}}{}{}{}{}}
\let\LWR@origlabel\label
\let\label\LWR@newlabel
\let\LWR@origref\ref
\let\ref\LWR@newref% \end{ syntax highlighting
\let\LWR@origpageref\pageref
\let\pageref\LWR@newpageref
}% AfterEndPreamble
\end{warpHTML}
\begin{warpHTML}
\BeforeBeginEnvironment{picture}{
\lateximage}
\AfterEndEnvironment{picture}{\endlateximage
}
\end{warpHTML}
\begin{warpHTML}
\newbool{LWR@tikzbabel}
\boolfalse{LWR@tikzbabel}
\AtBeginDocument{
\@ifpackageloaded{tikz}{
\@ifpackagelater{tikz}{2013/12/20}% Test for Tikz version v3.0.0
{\booltrue{LWR@tikzbabel}}
{\boolfalse{LWR@tikzbabel}}
}{}
}
\BeforeBeginEnvironment{tikzpicture}{%
\lateximage
\ifbool{LWR@tikzbabel}
{}
{\catcode`\$=3} % dollar sign is math shift
}
\AfterEndEnvironment{tikzpicture}{%
\endlateximage
\ifbool{LWR@tikzbabel}
{}
{\catcode`\$=\active}
}
\end{warpHTML}
\begin{warpHTML}
\newcounter{LWR@minipagedepth}
\setcounter{LWR@minipagedepth}{0}
\newlength{\LWR@minipagewidth}
\newlength{\LWR@minipageheight}
\let\LWR@origminipage\minipage
\let\LWR@origendminipage\endminipage
\NewDocumentCommand{\LWR@nullrule}{o m m}{}
\newcommand{\LWR@makefntext}[1]{%
\begingroup%
\let\rule\LWR@nullrule%
\textsuperscript{\@thefnmark} #1%
\endgroup%
\LWR@htmltagc{/\LWR@tagregularparagraph}%
}
\newcommand*{\LWR@makefnmark}{\textsuperscript{\@thefnmark}}
\def\LWR@endminipage{%
\par
\unskip
\ifvoid\@mpfootins\else
\vskip\skip\@mpfootins
\normalcolor
\LWR@htmldivclass{mpfootnotes}
\unvbox\@mpfootins
\LWR@htmldivclassend{mpfootnotes}
\fi
\@minipagefalse
\color@endgroup
\egroup
\expandafter\@iiiparbox\@mpargs{\unvbox\@tempboxa}}
\newcommand*{\LWR@subminipage}{%
\LWR@stoppars
\LWR@origminipage{6in}
\LWR@origraggedright%
\let\footnote\LWR@origfootnote%
\let\@makefntext\LWR@makefntext%
\let\@makefnmark\LWR@makefnmark%
\LWR@startpars%
}
\newcommand*{\LWR@endsubminipage}{%
\LWR@stoppars%
\LWR@endminipage% The following empty line is required:
}
\newbool{LWR@minipagefullwidth}
\boolfalse{LWR@minipagefullwidth}
\newcommand*{\minipagefullwidth}{\booltrue{LWR@minipagefullwidth}}
\end{warpHTML}
\begin{warpprint}
\newcommand*{\minipagefullwidth}{}
\end{warpprint}
\begin{warpHTML}
\newbool{LWR@minipagethispar}
\boolfalse{LWR@minipagethispar}
\RenewDocumentEnvironment{minipage}{O{t} o O{t} m}
{%
\LWR@traceinfo{starting minipage}%
\uselengthunit{in}%
\setlength{\LWR@minipagewidth}{#4}%
\ifthenelse{\cnttest{\value{LWR@minipagedepth}}{=}{0}}{%
\addtolength{\LWR@minipagewidth}{3em}% room for frames
\setlength{\linewidth}{6in}%
\setlength{\textwidth}{6in}%
\setlength{\textheight}{9in}%
}{}%
\addtocounter{LWR@minipagedepth}{1}%
\setlength{\LWR@minipageheight}{\textheight}% default unless specified
\IfValueTF{#2}{\setlength{\LWR@minipageheight}{#2}}{}%
\LWR@stoppars%
\LWR@traceinfo{minipage: creating div class}%
\LWR@htmltag{div class="minipage" style="%
\ifthenelse{\equal{#1}{t}}{vertical-align: bottom ; }{}%
\ifthenelse{\equal{#1}{c}}{vertical-align: middle ; }{}%
\ifthenelse{\equal{#1}{b}}{vertical-align: top ; }{}%
\ifthenelse{\equal{#3}{t}}{justify-content: flex-start ; }{}%
\ifthenelse{\equal{#3}{c}}{justify-content: center ; }{}%
\ifthenelse{\equal{#3}{b}}{justify-content: flex-end ; }{}%
\ifthenelse{\equal{#3}{s}}{justify-content: space-between ; }{}%
\LWR@traceinfo{minipage: about to print the width}%
\uselengthunit{PT}%
\ifbool{LWR@minipagefullwidth}%
{\boolfalse{LWR@minipagefullwidth}}%
{%
\ifthenelse{\lengthtest{#4}=\linewidth}%
{}%
{width:\rndprintlength{\LWR@minipagewidth} ; }%
}%
\LWR@traceinfo{minipage: about to print the height}%
\IfValueTF{#2}{height:\rndprintlength{\LWR@minipageheight} ; }{}%
"{}}%
\LWR@origminipage{6in}% The preceding empty line is required.
\setlength{\linewidth}{#4}% the original width
\setlength{\textwidth}{6in}%
\setlength{\textheight}{9in}%
\LWR@origraggedright%
\let\footnote\LWR@origfootnote%
\let\@makefntext\LWR@makefntext%
\let\@makefnmark\LWR@makefnmark%
\LWR@startpars%
\LWR@traceinfo{minipage: finished starting the minipage}%
}
{%
\LWR@stoppars%
\LWR@endminipage% The following empty line is required:
\LWR@htmldivclassend{minipage}%
\vspace{1\baselineskip}% required for subcaption
\addtocounter{LWR@minipagedepth}{-1}%
\LWR@startpars%
\global\booltrue{LWR@minipagethispar}%
}
\RenewDocumentCommand{\parbox}{O{t} o O{t} m m}
{
\begin{minipage}[#1][#2][#3]{#4}
#5
\end{minipage}
}
\RenewDocumentCommand{\makebox}{o o m}{%
\mbox{#3}
}
\RenewDocumentCommand{\framebox}{o o m}{%
\fbox{#3}
}
\let\LWR@origfbox\fbox
\renewcommand*{\fbox}[1]{%
\InlineClass{framebox}{#1}%
}
\RenewDocumentCommand{\raisebox}{m o o m}{%
#4%
}
\end{warpHTML}
\begin{warpHTML}
\renewcommand{\emph}[1]{\LWR@htmlspan{em}{#1}}
\renewcommand{\textmd}[1]{\LWR@htmlspan{textmd}{#1}}
\renewcommand{\textbf}[1]{\LWR@htmlspan{b}{#1}}
\renewcommand{\textrm}[1]{\InlineClass{textrm}{#1}}
\renewcommand{\textsf}[1]{\InlineClass{textsf}{#1}}
\renewcommand{\texttt}[1]{\LWR@htmlspan{kbd}{#1}}
\renewcommand{\textup}[1]{\LWR@htmlspan{textup}{#1}}
\renewcommand{\textit}[1]{\LWR@htmlspan{i}{#1}}
\renewcommand{\textsc}[1]{\InlineClass{textsc}{#1}}
\renewcommand{\textnormal}[1]{\textmd{\textrm{\textup{#1}}}}
\renewcommand*{\mdseries}{}
\renewcommand*{\bfseries}{}
\renewcommand*{\rmfamily}{}
\renewcommand*{\sffamily}{}
\renewcommand*{\ttfamily}{}
\renewcommand*{\upshape}{}
\renewcommand*{\itshape}{}
\renewcommand*{\scshape}{}
\renewcommand*{\normalfont}{}
\renewcommand{\sp}[1]{\text{#1}{}}
\renewcommand{\sb}[1]{\text{#1}{}}
\renewcommand{\textsuperscript}[1]{\LWR@htmlspan{sup}{#1}}
\renewcommand{\textsubscript}[1]{\LWR@htmlspan{sub}{#1}}
\AtBeginDocument{\let\up\textsuperscript}
\AtBeginDocument{\let\fup\textsuperscript}
\renewcommand*{\hfill}{\qquad}
\renewcommand*{\hrulefill}{\rule{1in}{1pt}}
\renewcommand*{\dotfill}{\dots}
\end{warpHTML}
\begin{warpHTML}
\let\LWR@origcomma\,
\let\LWR@origtilde~
\let\LWR@origenskip\enskip
\let\LWR@origquad\quad
\let\LWR@origqquad\qquad
\let\LWR@orighspace\hspace
\let\LWR@origrule\rule
\renewcommand*{\,}{\HTMLunicode{202f}} % HTML thin non-breakable space
\renewcommand*{~}{\HTMLentity{nbsp}}
\renewcommand*{\textellipsis}{\HTMLunicode{2026}}
\let\LWR@orignormalsize\normalsize
\let\LWR@origsmall\small
\let\LWR@origfootnotesize\footnotesize
\let\LWR@origscriptsize\scriptsize
\let\LWR@origtiny\tiny
\let\LWR@origlarge\large
\let\LWR@origLarge\Large
\let\LWR@origLARGE\LARGE
\let\LWR@orighuge\huge
\let\LWR@origHuge\Huge
\renewcommand*{\normalsize}{}
\renewcommand*{\small}{}
\renewcommand*{\footnotesize}{}
\renewcommand*{\scriptsize}{}
\renewcommand*{\tiny}{}
\renewcommand*{\large}{}
\renewcommand*{\Large}{}
\renewcommand*{\LARGE}{}
\renewcommand*{\huge}{}
\renewcommand*{\Huge}{}
\renewcommand*{\onecolumn}{}
\renewcommand{\twocolumn}[1][]{
#1
}
\newcommand*{\LWR@newlinebr}{\unskip\LWR@htmltag{br /}\LWR@orignewline}%
\let\newline\LWR@newlinebr
\NewDocumentCommand{\LWR@endofline}{s o}
{%
\newline%
}
\newcommand*{\LWR@minipagestartpars}{%
\ifbool{LWR@minipagethispar}%
{%
\LWR@startpars%
}{}%
}
\newcommand*{\LWR@minipagestoppars}{%
\ifbool{LWR@minipagethispar}%
{%
\LWR@stoppars%
}{}%
}
\renewcommand*{\quad}{%
\LWR@minipagestoppars%
\HTMLunicode{2001}%
\LWR@minipagestartpars%
}
\renewcommand*{\qquad}{\quad\quad}
\renewcommand*{\enskip}{%
\LWR@minipagestoppars%
\HTMLunicode{2000}%
\LWR@minipagestartpars%
}
\newlength{\LWR@tempwidth}
\newlength{\LWR@tempheight}
\newlength{\LWR@tempraise}
\NewDocumentCommand{\LWR@hspace}{s m}{%
\setlength{\LWR@tempwidth}{#2}%
\ifthenelse{\dimtest{\LWR@tempwidth}{=}{0pt}}{}{%
\LWR@minipagestoppars%
\ifthenelse{\dimtest{\LWR@tempwidth}{=}{.16667em}}
{%
\HTMLunicode{2009}% thin breakable space
}%
{%
\uselengthunit{PT}%
\LWR@htmltagc{%
span style="width:\printlength{\LWR@tempwidth}; display:inline-block;"%
}%
\LWR@htmltagc{/span}%
}%
\LWR@minipagestartpars%
}%
}
\let\hspace\LWR@hspace
\renewcommand*{\linebreak}[1][]{\newline}
\renewcommand*{\nolinebreak}[1][]{}
\renewcommand*{\pagebreak}[1][]{
}
\renewcommand*{\nopagebreak}[1][]{}
\RenewDocumentCommand{\enlargethispage}{s m}{}
\NewDocumentCommand{\LWR@rule}{o m m}{%
\setlength{\LWR@tempwidth}{#2}%
\ifthenelse{\lengthtest{\LWR@tempwidth=0pt}}
{}% zero- width
{% non-zero width
\ifthenelse{\lengthtest{\LWR@tempwidth>0pt}\AND%
\lengthtest{\LWR@tempwidth<1pt}}%
{\setlength{\LWR@tempwidth}{1pt}}{}%
\setlength{\LWR@tempheight}{#3}%
\ifthenelse{\lengthtest{\LWR@tempheight>0pt}\AND%
\lengthtest{\LWR@tempheight<1pt}}%
{\setlength{\LWR@tempheight}{1pt}}{}%
\LWR@minipagestoppars%
\uselengthunit{PT}%
\LWR@htmltagc{%
span
style=" %
background:\LWR@currenttextcolor; %
width:\printlength{\LWR@tempwidth}; %
height:\printlength{\LWR@tempheight}; %
\IfValueTF{#1}%
{%
\setlength{\LWR@tempraise}{0pt-#1}%
\setlength{\LWR@tempraise}{\LWR@tempraise*2}%
\LWR@orignewline%
-ms-transform: translate(0pt,\printlength{\LWR@tempraise}); %
\LWR@orignewline%
-webkit-transform: translate(0pt,\printlength{\LWR@tempraise}); %
\LWR@orignewline%
transform: translate(0pt,\printlength{\LWR@tempraise}); %
\LWR@orignewline%
}{}%
display:inline-block;"%
}%
\LWR@htmltagc{/span}%
\LWR@minipagestartpars%
}% non-zero width
}
\let\rule\LWR@rule
\end{warpHTML}
\begin{warpHTML}
\newcommand*{\phantomsection}{\section*{}}
\end{warpHTML}
\begin{warpHTML}
\newcommand*{\LWR@TeX}
{\InlineClass{latexlogofont}%
{\InlineClass{latexlogo}{T\textsubscript{e}X}}}
\newcommand*{\LWR@LaTeX}
{\InlineClass{latexlogofont}%
{\InlineClass{latexlogo}%
{L\textsuperscript{a}T\textsubscript{e}X}}}
\renewcommand*{\LaTeXe}
{\LaTeX\InlineClass{latexlogofont}%
{\,2\textsubscript{\textit{\HTMLunicode{3B5}}}}}
\newcommand*{\LWR@LuaTeX}{\InlineClass{latexlogofont}{Lua}\TeX}
\newcommand*{\LWR@LuaLaTeX}{\InlineClass{latexlogofont}{Lua}\LaTeX}
\newcommand*{\Xe}
{X\textsubscript{\HTMLunicode{18e}}}
\newcommand*{\LWR@XeTeX}{\InlineClass{xetexlogo}{\Xe}\TeX}
\newcommand*{\LWR@XeLaTeX}{\InlineClass{xelatexlogo}{\Xe}\LaTeX}
\newcommand*{\LWR@ConTeXt}
{\InlineClass{latexlogofont}{Con}\TeX{}%
\InlineClass{latexlogofont}{t}}
\providecommand*{\BibTeX}
{\InlineClass{latexlogofont}{B\textsc{ib}}\TeX}
\newcommand*{\MakeIndex}
{\InlineClass{latexlogofont}{\textit{MakeIndex}}}
\AtBeginDocument{\DeclareDocumentCommand{\AmS}{}
{\InlineClass{amslogo}{\textit{A\textsubscript{M}S}}}}
\newcommand*{\MiKTeX}{\InlineClass{latexlogofont}{MiK}\TeX}
\newcommand*{\LyX}{\InlineClass{lyxlogo}{LyX}}
\end{warpHTML}
\begin{warpprint}
\newcommand*{\XeTeXrevE}
{\hspace{-.1667em}\raisebox{-.5ex}{\reflectbox{E}}\hspace{-.125em}}
\providecommand*{\XeTeX}{\mbox{X\XeTeXrevE\TeX}}
\providecommand*{\XeLaTeX}{\mbox{X\XeTeXrevE\LaTeX}}
\providecommand*{\AmS}{%
\leavevmode\hbox{$\mathcal A\kern-.2em\lower.376ex%
\hbox{$\mathcal M$}\kern-.2em\mathcal S$}}
\newcommand*{\LyX}{\textsf{LyX}}
\providecommand*{\LuaTeX}{\mbox{Lua\TeX}}
\providecommand*{\LuaLaTeX}{\mbox{Lua\LaTeX}}
\providecommand*{\BibTeX}{\mbox{B\textsc{ib}\TeX}}
\providecommand*{\MakeIndex}{\mbox{\textit{MakeIndex}}}
\providecommand*{\ConTeXt}{\mbox{Con\TeX{}t}}
\providecommand*{\MiKTeX}{\mbox{MiK\TeX}}
\end{warpprint}
\begin{warpHTML}
\AfterEndPreamble{\LWR@LwarpStart}
\AtEndDocument{\LWR@LwarpEnd}
\end{warpHTML}
\providecommand*{\HomeHTMLFileName}{\BaseJobname}
\providecommand*{\HTMLFileName}{}
\providecommand*{\UseLatexmk}{false}
\begin{warpprint}
\ifcsdef{LWR@file}{}{\newwrite{\LWR@file}}
\immediate\openout\LWR@file=lwarpmk.conf
\ifwindows
\immediate\write\LWR@file{opsystem = "Windows"}
\else
\immediate\write\LWR@file{opsystem = "Unix"}
\fi
\ifPDFTeX
\immediate\write\LWR@file{latexname = "pdflatex"}
\fi
\ifXeTeX
\immediate\write\LWR@file{latexname = "xelatex"}
\fi
\ifLuaTeX
\immediate\write\LWR@file{latexname = "lualatex"}
\fi
\immediate\write\LWR@file{sourcename = "\jobname"}
\immediate\write\LWR@file{%
homehtmlfilename = "\HomeHTMLFileName"%
}
\immediate\write\LWR@file{htmlfilename = "\HTMLFileName"}
\immediate\write\LWR@file{uselatexmk = "\UseLatexmk"}
\immediate\closeout\LWR@file
\end{warpprint}
\endinput
%%
%% End of file `lwarp.sty'.