texlive[47695] trunk: lwarp (12may18)
commits+karl at tug.org
commits+karl at tug.org
Sat May 12 23:24:56 CEST 2018
Revision: 47695
http://tug.org/svn/texlive?view=revision&revision=47695
Author: karl
Date: 2018-05-12 23:24:56 +0200 (Sat, 12 May 2018)
Log Message:
-----------
lwarp (12may18)
Modified Paths:
--------------
trunk/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua
trunk/Master/texmf-dist/doc/latex/lwarp/README.txt
trunk/Master/texmf-dist/doc/latex/lwarp/lwarp.pdf
trunk/Master/texmf-dist/scripts/lwarp/lwarpmk.lua
trunk/Master/texmf-dist/source/latex/lwarp/lwarp.dtx
trunk/Master/texmf-dist/source/latex/lwarp/lwarp.ins
trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-float.sty
trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-mdframed.sty
trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-multirow.sty
trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-paralist.sty
trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-ulem.sty
trunk/Master/texmf-dist/tex/latex/lwarp/lwarp.sty
Added Paths:
-----------
trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-arydshln.sty
trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-lua-check-hyphen.sty
trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-parnotes.sty
trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-quoting.sty
trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-tocenter.sty
trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-underscore.sty
Modified: trunk/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua
===================================================================
--- trunk/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua 2018-05-12 21:24:16 UTC (rev 47694)
+++ trunk/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua 2018-05-12 21:24:56 UTC (rev 47695)
@@ -4,7 +4,7 @@
-- Print the usage of the lwarpmk command:
-printversion = "v0.55"
+printversion = "v0.56"
function printhelp ()
print ("lwarpmk: Use lwarpmk -h or lwarpmk --help for help.") ;
@@ -27,6 +27,7 @@
For use with latexmk or a Makefile:
Converts project_html.pdf to project_html.html and individual HTML files.
Finishes the HTML conversion even if there was a compile error.
+lwarpmk pdftosvg <list of file names>: Converts each PDF file to SVG.
lwarpmk clean [project]: Remove .aux, .toc, .lof/t, .idx, .ind, .log, *_html_inc.*, .gl*
lwarpmk cleanall [project]: Remove auxiliary files and also project.pdf, *.html
lwarpmk cleanlimages: Removes all images from the "lateximages" directory.
@@ -49,6 +50,7 @@
homehtmlfilename = "index" (or perhaps the project name)
htmlfilename = "" (or "projectname" - filename prefix)
latexmk = "false" (or "true" to use latexmk to build PDFs)
+shellescape = "false"
xindylanguge = "english" (use a language supported by xindy)
xindycodepage = "utf8" (use a codepage supported by xindy)
xindystyle = "lwarp.xdy" (or a custom file based on lwarp.xdy)
@@ -55,7 +57,7 @@
pdftotextenc = "UTF-8" (use an encoding supported by pdftotext)
--
Filenames must contain only letters, numbers, underscore, or dash.
-Values must be in "quotes".
+Values must be in upright "quotes".
]] ) ;
end
@@ -99,13 +101,13 @@
local conffile = "lwarpmk.conf"
-- Optional configuration filename:
if ( arg[2] ~= nil ) then conffile = arg[2]..".lwarpmkconf" end
--- Default xindy language:
+-- Additional defaults:
+opsystem = "Unix"
+latexmk = "false"
+shellescape = "false"
xindylanguage = "english"
--- Default xindy codepage:
xindycodepage = "utf8"
--- Default xindystyle:
xindystyle = "lwarp.xdy"
--- Default pdftotext encoding:
pdftotextenc = "UTF-8"
-- Verify the file exists:
if (lfs.attributes(conffile,"mode")==nil) then
@@ -161,6 +163,7 @@
elseif ( cvarname == "homehtmlfilename" ) then homehtmlfilename = cvalue
elseif ( cvarname == "htmlfilename" ) then htmlfilename = cvalue
elseif ( cvarname == "latexmk" ) then latexmk = cvalue
+elseif ( cvarname == "shellescape" ) then shellescape = cvalue
elseif ( cvarname == "xindylanguage" ) then xindylanguage = cvalue
elseif ( cvarname == "xindycodepage" ) then xindycodepage = cvalue
elseif ( cvarname == "xindystyle" ) then xindystyle = cvalue
@@ -254,7 +257,13 @@
function onetime (fsuffix)
print("lwarpmk: Compiling with " .. latexname .. " " .. sourcename..fsuffix)
-err = os.execute(latexname .. " " .. sourcename..fsuffix)
+local thisshellescape = " "
+if ( shellescape == "true" ) then
+ thisshellescape = " -shell-escape "
+else
+ thisshellescape = " "
+end
+err = os.execute(latexname .. thisshellescape .. sourcename..fsuffix)
if ( err ~= 0 ) then
print ("lwarpmk: ===")
print ("lwarpmk: Compile error.")
@@ -519,6 +528,13 @@
-- Use latexmk to compile source and index:
-- fsuffix is "" for print, or "_html" for HTML
function compilelatexmk ( fsuffix )
+-- Maybe select the shell-escape option:
+local thisshellescape = " "
+if ( shellescape == "true" ) then
+ thisshellescape = " -shell-escape "
+else
+ thisshellescape = " "
+end
-- The recorder option is required to detect changes in <project>.tex
-- while we are loading <project>_html.tex.
err=os.execute ( "latexmk -pdf -dvi- -ps- -recorder "
@@ -530,7 +546,7 @@
.. " -C " .. xindycodepage
.. " -L " .. xindylanguage .. " /"
.. opquote
- .. " -pdflatex=\"" .. latexname .." %O %S\" "
+ .. " -pdflatex=\"" .. latexname .. thisshellescape .." %O %S\" "
.. sourcename..fsuffix ..".tex" ) ;
if ( err ~= 0 ) then
print ("lwarpmk: ===")
@@ -538,8 +554,22 @@
print ("lwarpmk: ===")
os.exit(1)
end
-end
+end -- function
+-- Converts PDF files to SVG files.
+-- The filenames are arg[2] and up.
+-- arg[1] is the command "pdftosvg".
+function convertpdftosvg ()
+for i = 2 , #arg do
+ if (lfs.attributes(arg[i],"mode")==nil) then
+ print ("lwarpmk: File \"" .. arg[i] .. "\" does not exist.")
+ else
+ print ("lwarpmk: Converting \"" .. arg[i] .. "\"")
+ os.execute ( "pdftocairo -svg " .. arg[i] )
+ end -- if
+end -- do
+end --function
+
-- lwarpmk --version :
if (arg[1] == "--version") then
@@ -744,6 +774,12 @@
os.execute ( rmname .. " lateximages/*" )
print ("lwarpmk: Done.")
+-- lwarpmk pdftosvg <list of file names>
+-- Convert PDf files to SVG using pdftocairo
+elseif arg[1] == "pdftosvg" then
+convertpdftosvg ()
+print ("lwarpmk: Done.")
+
-- lwarpmk with no argument :
elseif (arg[1] == nil) then
Modified: trunk/Master/texmf-dist/doc/latex/lwarp/README.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/lwarp/README.txt 2018-05-12 21:24:16 UTC (rev 47694)
+++ trunk/Master/texmf-dist/doc/latex/lwarp/README.txt 2018-05-12 21:24:56 UTC (rev 47695)
@@ -1,5 +1,5 @@
-LaTeX lwarp package v0.55 README.txt
+LaTeX lwarp package v0.56 README.txt
Files included are:
Modified: trunk/Master/texmf-dist/doc/latex/lwarp/lwarp.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/scripts/lwarp/lwarpmk.lua
===================================================================
--- trunk/Master/texmf-dist/scripts/lwarp/lwarpmk.lua 2018-05-12 21:24:16 UTC (rev 47694)
+++ trunk/Master/texmf-dist/scripts/lwarp/lwarpmk.lua 2018-05-12 21:24:56 UTC (rev 47695)
@@ -4,7 +4,7 @@
-- Print the usage of the lwarpmk command:
-printversion = "v0.55"
+printversion = "v0.56"
function printhelp ()
print ("lwarpmk: Use lwarpmk -h or lwarpmk --help for help.") ;
@@ -27,6 +27,7 @@
For use with latexmk or a Makefile:
Converts project_html.pdf to project_html.html and individual HTML files.
Finishes the HTML conversion even if there was a compile error.
+lwarpmk pdftosvg <list of file names>: Converts each PDF file to SVG.
lwarpmk clean [project]: Remove .aux, .toc, .lof/t, .idx, .ind, .log, *_html_inc.*, .gl*
lwarpmk cleanall [project]: Remove auxiliary files and also project.pdf, *.html
lwarpmk cleanlimages: Removes all images from the "lateximages" directory.
@@ -49,6 +50,7 @@
homehtmlfilename = "index" (or perhaps the project name)
htmlfilename = "" (or "projectname" - filename prefix)
latexmk = "false" (or "true" to use latexmk to build PDFs)
+shellescape = "false"
xindylanguge = "english" (use a language supported by xindy)
xindycodepage = "utf8" (use a codepage supported by xindy)
xindystyle = "lwarp.xdy" (or a custom file based on lwarp.xdy)
@@ -55,7 +57,7 @@
pdftotextenc = "UTF-8" (use an encoding supported by pdftotext)
--
Filenames must contain only letters, numbers, underscore, or dash.
-Values must be in "quotes".
+Values must be in upright "quotes".
]] ) ;
end
@@ -99,13 +101,13 @@
local conffile = "lwarpmk.conf"
-- Optional configuration filename:
if ( arg[2] ~= nil ) then conffile = arg[2]..".lwarpmkconf" end
--- Default xindy language:
+-- Additional defaults:
+opsystem = "Unix"
+latexmk = "false"
+shellescape = "false"
xindylanguage = "english"
--- Default xindy codepage:
xindycodepage = "utf8"
--- Default xindystyle:
xindystyle = "lwarp.xdy"
--- Default pdftotext encoding:
pdftotextenc = "UTF-8"
-- Verify the file exists:
if (lfs.attributes(conffile,"mode")==nil) then
@@ -161,6 +163,7 @@
elseif ( cvarname == "homehtmlfilename" ) then homehtmlfilename = cvalue
elseif ( cvarname == "htmlfilename" ) then htmlfilename = cvalue
elseif ( cvarname == "latexmk" ) then latexmk = cvalue
+elseif ( cvarname == "shellescape" ) then shellescape = cvalue
elseif ( cvarname == "xindylanguage" ) then xindylanguage = cvalue
elseif ( cvarname == "xindycodepage" ) then xindycodepage = cvalue
elseif ( cvarname == "xindystyle" ) then xindystyle = cvalue
@@ -254,7 +257,13 @@
function onetime (fsuffix)
print("lwarpmk: Compiling with " .. latexname .. " " .. sourcename..fsuffix)
-err = os.execute(latexname .. " " .. sourcename..fsuffix)
+local thisshellescape = " "
+if ( shellescape == "true" ) then
+ thisshellescape = " -shell-escape "
+else
+ thisshellescape = " "
+end
+err = os.execute(latexname .. thisshellescape .. sourcename..fsuffix)
if ( err ~= 0 ) then
print ("lwarpmk: ===")
print ("lwarpmk: Compile error.")
@@ -519,6 +528,13 @@
-- Use latexmk to compile source and index:
-- fsuffix is "" for print, or "_html" for HTML
function compilelatexmk ( fsuffix )
+-- Maybe select the shell-escape option:
+local thisshellescape = " "
+if ( shellescape == "true" ) then
+ thisshellescape = " -shell-escape "
+else
+ thisshellescape = " "
+end
-- The recorder option is required to detect changes in <project>.tex
-- while we are loading <project>_html.tex.
err=os.execute ( "latexmk -pdf -dvi- -ps- -recorder "
@@ -530,7 +546,7 @@
.. " -C " .. xindycodepage
.. " -L " .. xindylanguage .. " /"
.. opquote
- .. " -pdflatex=\"" .. latexname .." %O %S\" "
+ .. " -pdflatex=\"" .. latexname .. thisshellescape .." %O %S\" "
.. sourcename..fsuffix ..".tex" ) ;
if ( err ~= 0 ) then
print ("lwarpmk: ===")
@@ -538,8 +554,22 @@
print ("lwarpmk: ===")
os.exit(1)
end
-end
+end -- function
+-- Converts PDF files to SVG files.
+-- The filenames are arg[2] and up.
+-- arg[1] is the command "pdftosvg".
+function convertpdftosvg ()
+for i = 2 , #arg do
+ if (lfs.attributes(arg[i],"mode")==nil) then
+ print ("lwarpmk: File \"" .. arg[i] .. "\" does not exist.")
+ else
+ print ("lwarpmk: Converting \"" .. arg[i] .. "\"")
+ os.execute ( "pdftocairo -svg " .. arg[i] )
+ end -- if
+end -- do
+end --function
+
-- lwarpmk --version :
if (arg[1] == "--version") then
@@ -744,6 +774,12 @@
os.execute ( rmname .. " lateximages/*" )
print ("lwarpmk: Done.")
+-- lwarpmk pdftosvg <list of file names>
+-- Convert PDf files to SVG using pdftocairo
+elseif arg[1] == "pdftosvg" then
+convertpdftosvg ()
+print ("lwarpmk: Done.")
+
-- lwarpmk with no argument :
elseif (arg[1] == nil) then
Modified: trunk/Master/texmf-dist/source/latex/lwarp/lwarp.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/lwarp/lwarp.dtx 2018-05-12 21:24:16 UTC (rev 47694)
+++ trunk/Master/texmf-dist/source/latex/lwarp/lwarp.dtx 2018-05-12 21:24:56 UTC (rev 47695)
@@ -16,7 +16,7 @@
% \iffalse
%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<package>\ProvidesPackage{lwarp}
-%<package> [2018/04/26 v0.55 Allows LaTeX to directly produce HTML5 output.]
+%<package> [2018/05/12 v0.56 Allows LaTeX to directly produce HTML5 output.]
%
%<*driver>
\documentclass{ltxdoc}
@@ -1165,8 +1165,8 @@
\newcommand{\limitsgraphics}{%
For \cs{includegraphics} with \texttt{.pdf} files,
\index{graphics>PDF files}
-\index{PDF images}
-\index{images>PDF}
+\index{PDF images>using}
+\index{images>PDF>using}
\watchout[\texttt{.pdf} image files]
the user should provide a \texttt{.pdf} image file, and also
a \texttt{.svg}, \texttt{.png}, or \texttt{.jpg} version of the same image.
@@ -1180,10 +1180,12 @@
For \HTML, one of the other formats is used instead.
\DescribeProgram{pdftocairo}
-To convert a \PDF\ image to \SVG, use the utility \texttt{pdftocairo}:\userentry{
-pdftocairo -svg filename.pdf
-}
+To convert a \PDF\ image to \SVG, use the utility \texttt{pdftocairo}:
+\userentry{pdftocairo -svg filename.pdf}
+For a large number of images, use \prog{lwarpmk}:
+\userentry{lwarpmk pdftosvg *.pdf \qquad \textrm{(or a list of filenames)}}
+
If a \texttt{.pdf} file is referred to with its file extension,
a link to the \texttt{.pdf} file will appear in the \HTML\ output.
\begin{sourcedisplay}
@@ -1251,14 +1253,16 @@
\watchout[adding/removing]
removed, the \SVG\ images must be re-created by entering \cmds{lwarpmk limages}
to maintain the proper image-file associations.
+Inline \SVG\ math may be hashed and thus not need to be recreated, but
+display math and objects such as \tikz\ may move to new image numbers when
+the document is changed.
Before attempting to create the \SVG\ image files,
\prog{lwarpmk} verifies that the \HTML\ version of the document exists and
-has correct internal image references.
+has correct internal image references.\footnote{This becomes important
+when dealing with a document containing thousands of images.}
If it is necessary to recompile the document's \HTML\ version, \prog{lwarpmk}
will inform so with an error message.%
-\footnote{This becomes important when dealing with a document containing
-thousands of images.}
If \HTML\ appears where an \SVG\ image should be,\watchout[\HTML\ instead of images]%
\index{math>appearing as \HTML}%
@@ -1280,8 +1284,9 @@
the math exactly as \LaTeX\ would, but has the disadvantage of requiring
an individual file for each math expression.
\watchout[Lots of files!]
-For inline math, \pkg{lwarp} uses an MD5 hash on its \LaTeX\ source
-to combine multiple instances of identical inline expressions into a single image file,
+For inline math, and some other objects, \pkg{lwarp} uses an MD5 hash
+on its \LaTeX\ source to combine multiple instances of identical inline expressions
+into a single image file,
but display math and other environments such as \env{picture} and \tikz\ require
one image file each.
For a document with a large amount of math,
@@ -1467,6 +1472,8 @@
\item [Rules:] \
\begin{itemize}
+ \item Doubled \cs{hline}s, \cs{midrule}s, and vertical rules are supported.
+
\item Vertical rules next to either side of an \texttt{@} or \texttt{!} column
\margintag{vertical rules}
are displayed on both sides of the column.
@@ -1971,6 +1978,12 @@
for \brand{MathJax} is not currently hosted at any public CDN,
thus \pkg{siunitx} is not usable with \brand{MathJax} unless a local copy
of this extension is created first.}
+
+Tabular \texttt{S} columns are rendered as simple \texttt{c} columns,
+\watchout[\env{tabular}]
+and tabular \texttt{s} columns are not supported.
+These may be replaced by \texttt{c} columns with each cell contained in
+\cs{num} or \cs{si}.
}
\newcommand{\limitsnicefrac}{%
@@ -2154,7 +2167,7 @@
%<*package>
% \fi
%
-% \CheckSum{23632}
+% \CheckSum{24234}
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -2251,6 +2264,7 @@
% \changes{v0.53}{2018/04/01}{\ 2018/04/01}
% \changes{v0.54}{2018/04/22}{\ 2018/04/22}
% \changes{v0.55}{2018/04/26}{\ 2018/04/26}
+% \changes{v0.56}{2018/05/12}{\ 2018/05/12}
@@ -2310,7 +2324,7 @@
%
% A modular package-loading system uses the \pkg{lwarp} version of a package for
% \HTML\ when available.
-% More than two hundred \LaTeX\ packages are supported with these high-level source
+% More than 270 \LaTeX\ packages are supported with these high-level source
% compatibility replacements, and many others work as-is.
%
% A tutorial is provided to quickly introduce the user to the major components
@@ -2448,6 +2462,34 @@
%
% \begin{description}
% \needspace{2\baselineskip}
+% \item[v0.56:] \
+% \begin{itemize}
+% \item Added
+% \margintag{\prog{lwarpmk}}
+% \begin{sourcedisplay}
+% lwarpmk pdftosvg <list-of-PDF-files>
+% \end{sourcedisplay}
+% to quickly convert a document's \PDF\ images to \SVG, for use with \HTML.
+% See \cref{sec:limitsgraphics}.
+% \item Added support for |-shell-escape|. See \cref{sec:shellescape}.
+% \item Added support for \pkg{array} |w| and |W| columns.
+% \margintag{\env{tabular}}
+% \item Fix: \cs{multicolumn} parameter handling.
+% \item Added support for double \cs{hline}s, \cs{midrule}s, and vertical rules.
+% \item Added support for \pkg{arydshln} dashed lines
+% with \HTML\ \env{tabular}, but
+% reverts to plain rules for \env{lateximage}
+% and \SVG\ math \env{array}.
+% \item Fix: \cs{thinspace}.
+% \margintag{misc. fixes}
+% \item Fix: \pkg{paralist} compact environments.
+% \item Added \pkg{parnotes}, \pkg{quoting}, \pkg{lua-check-hyphen},
+% \pkg{tocenter}, \pkg{underscore}.
+% \margintag{packages}
+% \item Verified works with \pkg{babelbib}, \pkg{bibunits}, \pkg{bodegraph},
+% \pkg{fast-diagram}, \pkg{nicematrix}, \pkg{structmech}.
+% \end{itemize}
+% \needspace{2\baselineskip}
% \item[v0.55:] \
% \begin{itemize}
% \item Fix: Extraneous space in file links, which also
@@ -3505,7 +3547,7 @@
% \pkg{ebook}, \pkg{everyshi},
% \pkg{fancyhdr}, \pkg{fwlw}, \pkg{geometry}, \pkg{grid}, \pkg{gridset},
% \pkg{ltxgrid}, \pkg{pagegrid}, \pkg{pagesel}, \pkg{preview},
-% \pkg{scrlayer-scrpage}, \pkg{textarea}, \pkg{titleps},
+% \pkg{scrlayer-scrpage}, \pkg{textarea}, \pkg{titleps}, \pkg{tocenter},
% \pkg{turnthepage}, \pkg{typearea}, \pkg{vmargin},
% \pkg{watermark}, \pkg{zwpagelayout}. \\
%
@@ -3527,7 +3569,7 @@
%
% Glossary: & \pkg{glossaries} and \prog{xindy} are used. \\
%
-% Bibliography: & \pkg{backref}, \pkg{biblatex}, \pkg{bibunits},
+% Bibliography: & \pkg{babelbib}, \pkg{backref}, \pkg{biblatex}, \pkg{bibunits},
% \pkg{chapterbib}, \pkg{cite}, \pkg{hypernat}, \pkg{natbib}. \\
%
% \midrule
@@ -3546,7 +3588,7 @@
% Footnotes: & Adds \progcode{FootnoteDepth} to print footnotes at section breaks.
% \pkg{endheads}, \pkg{endnotes},
% \pkg{footmisc}, \pkg{footnote}, \pkg{footnpag},
-% \pkg{marginnote}, \pkg{nccfoots}, \pkg{pagenote}, \pkg{sidenote}. \\
+% \pkg{marginnote}, \pkg{nccfoots}, \pkg{pagenote}, \pkg{parnotes}, \pkg{sidenote}. \\
%
% \midrule
%
@@ -3563,7 +3605,7 @@
% Additional math: & Math fonts via \SVG\ images, \pkg{resizegather}, \pkg{xy}.
%
% Tested to work as-is:
-% \pkg{amscd}, \pkg{bm}, \pkg{braket}, \pkg{delarray},
+% \pkg{amscd}, \pkg{bm}, \pkg{braket}, \pkg{delarray}, \pkg{nicematrix},
% \pkg{pb-diagram}, \pkg{tikz-cd}, etc. \\
%
% Display math with \cs{displaymathother}: & %
@@ -3587,7 +3629,7 @@
% \midrule
%
% Tabular: &
-% \env{tabular} environment, \pkg{array}, \pkg{bigdelim}, \pkg{booktabs},
+% \env{tabular} environment, \pkg{array}, \pkg{arydshln}, \pkg{bigdelim}, \pkg{booktabs},
% \pkg{colortbl}, \pkg{diagbox}, \pkg{longtable}, \pkg{ltxtable},
% \pkg{multirow}, \pkg{supertabular}, \pkg{tabularx}, \pkg{tabulary},
% \pkg{threeparttable}, \pkg{xtab}. \\
@@ -3632,7 +3674,7 @@
% \env{minipage}, \cs{parbox}: & Some \HTMLfive-imposed limitations.
% Nested minipages are supported. \pkg{pbox}.\\
%
-% Quotations: & \pkg{csquotes}, \pkg{epigraph}, \pkg{verse}. \\
+% Quotations: & \pkg{csquotes}, \pkg{epigraph}, \pkg{quoting}, \pkg{verse}. \\
%
% Verbatim: &
% \pkg{fancyvrb}, \pkg{moreverb}, \pkg{shortvrb}, \pkg{verbatim}. \\
@@ -3658,10 +3700,10 @@
% Direct formatting: & \cs{emph}, \cs{textsuperscript},
% \cs{textbf}, etc are supported.
% \cs{bfseries}, etc.\ are only supported in some cases.
-% \pkg{cancel}, \pkg{hyphenat}, \pkg{lettrine}, \pkg{luacolor},
+% \pkg{cancel}, \pkg{hyphenat}, \pkg{lettrine}, \pkg{lua-check-hyphen}, \pkg{luacolor},
% \pkg{magaz}, \pkg{pdfrender}, \pkg{realscripts}, \pkg{relsize},
% \pkg{scalefnt}, \pkg{soul}, \pkg{soulpos}, \pkg{soulutf8},
-% \pkg{textfit}, \pkg{ulem}. \\
+% \pkg{textfit}, \pkg{ulem}, \pkg{underscore}. \\
%
% Ordinals: & \pkg{engord}, \pkg{fmtcount}, \pkg{nth}. \\
%
@@ -3694,9 +3736,11 @@
% \pkg{listings}, \pkg{mhchem}, \pkg{phfqit}.
%
% Tested to work as-is:
-% \pkg{blochsphere}, \pkg{bohr}, \pkg{circuitikz}, \pkg{elements},
+% \pkg{blochsphere}, \pkg{bodegraph}, \pkg{bohr}, \pkg{circuitikz},
+% \pkg{elements}, \pkg{fast-diagram},
% \pkg{hepnicenames}, \pkg{heppennames},
-% \pkg{linop}, \pkg{pgfgantt}, \pkg{physics}, \pkg{simpler-wick}, \pkg{slashed}.
+% \pkg{linop}, \pkg{pgfgantt}, \pkg{physics}, \pkg{simpler-wick}, \pkg{slashed},
+% \pkg{structmech}.
% \\
%
% \midrule
@@ -4544,12 +4588,13 @@
% used as a homepage, so the document index is in \texttt{\_Index.html}.}
% \end{enumerate}
%
-% \item View the homepage in a web browser.
+% \item View the \HTML\ page in a web browser.
%
% \qquad Open the file |tutorial.html| in a web browser.
%
-% Note that math is still displayed as its plain-text \LaTeX\ source
-% \margintag{math}
+% Note that math is still displayed as its \attribute{alt} tag, which is
+% \margintag{math}
+% the plain-text \LaTeX\ source,
% until the
% images of the math expressions have been generated. Math may be
% displayed as \SVG\ images or by a \brand{MathJax} script, as seen in
@@ -4636,7 +4681,6 @@
% may not support some math-related packages.
%
%
-%
% \clearpage
% \subsection{Changing the CSS style}
%
@@ -4701,9 +4745,8 @@
% rather than modification times, so |lwarpmk again| will not trigger a
% recompile, but \prog{latexmk} has a much better awareness of changes than
% the \prog{lwarpmk} utility does and it is likely to correctly know when to
-% recompile. A recompile may be forced by making a small change to the source.
-%
-% A single recompile may be forced with:
+% recompile. A recompile may be forced by making a small change to the source,
+% and a single recompile may be forced with:
% \margintag{forced single-pass recompile}
% \userentry{lwarpmk print1} \quad and/or
% \userentry{lwarpmk html1}
@@ -4720,11 +4763,12 @@
% \item Remove the auxiliary files for the project:
% \userentry{lwarpmk cleanall}
%
-% \item Use \prog{xelatex} or \prog{lualatex} to recompile the printed version.
+% \item Use \prog{xelatex} or \prog{lualatex} to compile the printed version
+% a single time.
% \userentry{xelatex tutorial.tex} \quad -or-
% \userentry{lualatex tutorial.tex}
%
-% When the recompile occurs,
+% When the compile occurs,
% the configuration files for \prog{lwarpmk} are modified to remember
% which \TeX\ engine was used. \XeLaTeX\ or \LuaLaTeX\ will be used for
% future runs of \prog{lwarpmk}.
@@ -4733,7 +4777,11 @@
% \userentry{lwarpmk print} \quad -and-
% \userentry{lwarpmk html}
%
-% \item Also remember to update the indexes and recompile again.
+% \item Also remember to update the indexes and recompile again:
+% \userentry{lwarpmk htmlindex}
+% \userentry{lwarpmk html}
+% \userentry{lwarpmk printindex}
+% \userentry{lwarpmk print}
% \end{enumerate}
%
%
@@ -4771,6 +4819,8 @@
% In each case, the document will have to be recompiled afterwards:
% \userentry{lwarpmk html1}
% \userentry{lwarpmk html}
+% \userentry{lwarpmk print1}
+% \userentry{lwarpmk print}
%
%
%
@@ -4793,11 +4843,25 @@
% \subsection{Cleaning the images from the \filenm{lateximages} directory}
% \changes{v0.53}{2018/04/01}{Docs: \cmds{lwarpmk cleanlimages}.}
%
-% To remove the images from the \filenm{lateximages} directory, including
-% all \SVG\ math images:
+% The \filenm{lateximage} directory contains \SVG\ images automatically generated
+% for inline and display math, \pkg{tikz}, etc.
+% To remove all the images from the \filenm{lateximages} directory:
% \userentry{lwarpmk cleanlimages}
%
%
+% \subsection{Converting PDF images to SVG}
+% \changes{v0.56}{2018/04/29}{Docs: \cmds{lwarpmk pdftosvg}.}
+%
+% \HTML\ cannot display \PDF\ images, so any external \PDF\ graphics images must
+% be converted to \SVG\ format.
+% \prog{pdftocairo} may be used one image at a time,
+% but \prog{lwarpmk} provides a way to convert images in bulk:
+% \userentry{lwarpmk pdftosvg *.pdf \qquad \textrm{(or a list of files)}}
+% \index{SVG>converting from PDF}
+% \index{PDF images>converting to SVG}
+% \index{images>PDF>converting to SVG}
+%
+%
% \subsection{Creating HTML from an incomplete compile}
% \changes{v0.53}{2018/04/01}{Docs: \cmds{lwarpmk pdftohtml}.}
%
@@ -4839,6 +4903,8 @@
% convert each target to \HTML\ files.
%
%
+% \clearpage
+%
% \section{Converting an existing document}
% \label{sec:convertexisting}
%
@@ -4883,7 +4949,7 @@
% \item Possible option clashes with \pkg{memoir}. See \cref{sec:limitsmemoir}.
% \item Other changes as per \nameref{sec:limitations}, \cref{sec:limitations}.
% \end{enumerate}
-% \item Create an SVG version of any PDF image.
+% \item Convert any \PDF\ images to \SVG. See \cref{sec:limitsgraphics}.
% \item Manually compile the print version with \prog{pdflatex},
% \prog{lualatex}, or \prog{xelatex}.
% \item |lwarpmk print| to finish the print version.
@@ -4897,10 +4963,21 @@
%
% \section{Additional details}
%
-% \label{sec:usage}
%
+% \subsection{Shell escape}
+% \label{sec:shellescape}
+% \index{shell escape}
%
+% \DescribeOption{-shell-escape}
+% Some documents require the use of an external program,
+% which is allowed when using the |-shell-escape| command-line option.
+% When the document is first compiled manually,
+% and also whenever the print version is recompiled,
+% \pkg{lwarp} detects and remembers
+% whether shell escape is enabled. If so, it will also be enabled when
+% the document is recompiled with \prog{lwarpmk}.
%
+%
% \subsection{Font and UTF-8 support}
% \label{sec:fonts}
% \index{font>selection}
@@ -6164,18 +6241,19 @@
% A starred sectional unit does not have a \acro{TOC} entry unless one is placed
% manually. The typical method using \cs{phantomsection} and \cs{addcontentsline}
% works for inline text but fails when the new starred section is given its own
-% webpage after the \acro{TOC} entry is created.
+% webpage after the \acro{TOC} entry is created, or when creating an \EPUB\ where
+% the \acro{TOC} entry will point to the page before the starred section.
% If the starred section has its own \HTML\ page but no correct \acro{TOC} entry
% \watchout[inaccessible \HTML\ page]
% pointing to that page, the page will be inaccessible unless some other link is created.
-%
+%
% \DescribeMacro{\ForceHTMLTOC}
% To automatically force the \HTML\ version of the document to have a \acro{TOC} entry
-% for a starred section, use \cs{ForceHTMLTOC} just before the \cs{chapter*} or
-% \cs{section*}. The \acro{TOC} will only be assigned for \HTML\ output, not
-% for print output, and it will appear in the main \acro{TOC} and also the side\acro{TOC}
-% per page.
-%
+% for a starred section, use \cs{ForceHTMLTOC} just before
+% the \cs{chapter*} or \cs{section*},
+% and place \cs{phantomsection} and \cs{addcontentsline} inside a \env{warpprint}
+% environment.
+%
% For print output, \cs{ForceHTMLTOC} and \cs{ForceHTMLPage} have no effect.
%
%
@@ -6308,6 +6386,9 @@
%
% \DescribePackage{graphics}
% \DescribePackage{graphicx}
+% \index{SVG>converting from PDF}
+% \index{PDF images>converting to SVG}
+% \index{images>PDF>converting to SVG}
% \limitsgraphics
%
%
@@ -8417,6 +8498,7 @@
\LWR at loadafter{ltcaption}
\LWR at loadafter{ltxgrid}
\LWR at loadafter{ltxtable}
+\LWR at loadafter{lua-check-hyphen}
\LWR at loadafter{luacolor}
\LWR at loadafter{luatodonotes}
\LWR at loadafter{magaz}
@@ -8456,6 +8538,7 @@
\LWR at notmemoirloadafter{pagenote}
\LWR at loadafter{pagesel}
\LWR at loadafter{paralist}
+\LWR at loadafter{parnotes}
\LWR at notmemoirloadafter{parskip}
\LWR at loadafter{pbox}
\LWR at loadafter{pdfrender}
@@ -8468,6 +8551,7 @@
\LWR at loadafter{prettyref}
\LWR at loadafter{preview}
\LWR at loadafter{quotchap}
+\LWR at loadafter{quoting}
\LWR at loadafter{ragged2e}
\LWR at loadafter{realscripts}
\LWR at loadafter{relsize}
@@ -8518,6 +8602,7 @@
\LWR at notmemoirloadafter{titling}
% \LWR at loadafter{tocbasic}% preloaded by koma-script classes
\LWR at notmemoirloadafter{tocbibind}
+\LWR at loadafter{tocenter}
\LWR at notmemoirloadafter{tocloft}
\LWR at loadafter{tocstyle}
\LWR at loadafter{todo}
@@ -8530,6 +8615,7 @@
% \begin{macrocode}
% \LWR at loadafter{typearea}% preloaded by koma-script classes
\LWR at loadafter{ulem}
+\LWR at loadafter{underscore}
\LWR at loadafter{upref}
\LWR at loadafter{url}
\LWR at loadafter{varioref}% no lwarp package provided
@@ -9702,6 +9788,7 @@
% \end{macrocode}
% \begin{macrocode}
\let\LWR at origcomma\,
+\let\LWR at origthinspace\thinspace
\let\LWR at origtilde~
\let\LWR at origenskip\enskip
\let\LWR at origquad\quad
@@ -9983,6 +10070,7 @@
% \changes{v0.54}{2018/04/06}{\filenm{lwarpmk.conf}: Option \optn{IndexLanguage} changed to \optn{xindyLanguage}.}
% \changes{v0.54}{2018/04/06}{\filenm{lwarpmk.conf}: Option \optn{xindyCodepage} added.}
% \changes{v0.54}{2018/04/06}{\filenm{lwarpmk.conf}: Option \optn{pdftotextEnc} added.}
+% \changes{v0.56}{2018/05/11}{\filenm{lwarpmk.conf}: Records \texttt{-shell-escape}.}
%
% \codeprint
% \begin{macrocode}
@@ -10009,6 +10097,7 @@
}
\immediate\write\LWR at quickfile{htmlfilename = "\HTMLFilename"}
\immediate\write\LWR at quickfile{latexmk = "\ifbool{LWR at latexmk}{true}{false}"}
+\immediate\write\LWR at quickfile{shellescape = "\ifshellescape true\else false\fi"}
\immediate\write\LWR at quickfile{xindylanguage = "\LWR at xindyLanguage"}
\immediate\write\LWR at quickfile{xindycodepage = "\LWR at xindyCodepage"}
\immediate\write\LWR at quickfile{xindystyle = "\LWR at xindyStyle"}
@@ -10029,6 +10118,7 @@
% \changes{v0.54}{2018/04/06}{\filenm{*.lwarpmkconf}: Option \optn{IndexLanguage} changed to \optn{xindyLanguage}.}
% \changes{v0.54}{2018/04/06}{\filenm{*.lwarpmkconf}: Option \optn{xindyCodepage} added.}
% \changes{v0.54}{2018/04/06}{\filenm{*.lwarpmkconf}: Option \optn{pdftotextEnc} added.}
+% \changes{v0.56}{2018/05/11}{\filenm{*.lwarpmkconf}: Records \texttt{-shell-escape}.}
%
% \begin{macrocode}
\begin{warpprint}
@@ -10054,6 +10144,7 @@
}
\immediate\write\LWR at quickfile{htmlfilename = "\HTMLFilename"}
\immediate\write\LWR at quickfile{latexmk = "\ifbool{LWR at latexmk}{true}{false}"}
+\immediate\write\LWR at quickfile{shellescape = "\ifshellescape true\else false\fi"}
\immediate\write\LWR at quickfile{xindylanguage = "\LWR at xindyLanguage"}
\immediate\write\LWR at quickfile{xindycodepage = "\LWR at xindyCodepage"}
\immediate\write\LWR at quickfile{xindystyle = "\LWR at xindyStyle"}
@@ -10080,6 +10171,8 @@
% \changes{v0.30}{2017/04/26}{Fix: \filenm{*.css} files only written in print mode.}
% \changes{v0.50}{2018/03/02}{\filenm{lwarp.css}: Improved \SVG\ display math centering.}
% \changes{v0.54}{2018/04/24}{\filenm{lwarp.css}: Fix: Text-decoration-skip: auto.}
+% \changes{v0.56}{2018/04/27}{\filenm{lwarp.css}: Added \attribute{span.textbf}, etc.}
+% \changes{v0.56}{2018/05/09}{\filenm{lwarp.css}: Added \attribute{div.textbf}, etc.}
%
% ^^A *lwarp.css
% \begin{macrocode}
@@ -10146,7 +10239,7 @@
div.hidden, span.hidden { display: none ; }
-kbd {
+kbd, span.texttt {
font-family: "DejaVu Mono", "Bitstream Vera Mono", "Lucida Console",
"Nimbus Mono L", "Liberation Mono", "FreeMono", "Andale Mono",
"Courier New", monospace;
@@ -10155,22 +10248,24 @@
pre { padding: 3pt ; }
-span.strong { font-weight: bold; }
+span.strong, span.textbf, div.strong, div.textbf { font-weight: bold; }
-span.textmd { font-weight: normal; }
+span.textit, div.textit { font-style: italic; }
-span.textsc { font-variant: small-caps; }
+span.textmd, div.textmd { font-weight: normal; }
-span.textsl { font-style: oblique; }
+span.textsc, div.textsc { font-variant: small-caps; }
-span.textup { font-variant: normal; }
+span.textsl, div.textsl { font-style: oblique; }
-span.textrm {
+span.textup, div.textup { font-variant: normal; }
+
+span.textrm, div.textrm {
font-family: "DejaVu Serif", "Bitstream Vera Serif",
"Lucida Bright", Georgia, serif;
}
-span.textsf {
+span.textsf, div.textsf {
font-family: "DejaVu Sans", "Bitstream Vera Sans",
Geneva, Verdana, sans-serif ;
}
@@ -10460,8 +10555,7 @@
.footnotes {
font-size: .85em ;
- margin: 3ex 1em 0ex 1em ;
- padding-bottom: 1ex ;
+ margin: 3ex 2em 0ex 2em ;
border-top: 1px solid silver ;
}
@@ -10504,7 +10598,7 @@
section.textbody div.footnotes{
- margin: 3ex 0em 0ex 0em ;
+ margin: 3ex 2em 0ex 2em ;
border-bottom: 2px solid silver ;
}
@@ -10999,9 +11093,16 @@
table td.tdB { text-align: center ; vertical-align: top ; }
table td.tvertbarl { border-left: 1px solid black }
+table td.tvertbarldouble { border-left: 4px double black }
table td.tvertbarr { border-right: 1px solid black }
+table td.tvertbarrdouble { border-right: 4px double black }
+table td.tvertbarldash { border-left: 1px dashed black }
+table td.tvertbarldoubledash { border-left: 2px dashed black }
+table td.tvertbarrdash { border-right: 1px dashed black }
+table td.tvertbarrdoubledash { border-right: 2px dashed black }
+
/* for cmidrules: */
table td.tdrule {
border-top: 1px solid #A0A0A0 ;
@@ -12265,6 +12366,8 @@
% \changes{v0.54}{2018/04/11}{\prog{lwarpmk}: Verifies image references before \progcode{lwarpmk limages}.}
% \changes{v0.54}{2018/04/11}{\prog{lwarpmk}: Verifies \HTML\ version exists before \progcode{lwarpmk limages}.}
% \changes{v0.54}{2018/04/19}{\prog{lwarpmk}: Improved error if configuration file does not exist.}
+% \changes{v0.56}{2018/04/29}{\prog{lwarpmk}: Added \progcode{lwarpmk pdftosvg}.}
+% \changes{v0.56}{2018/05/11}{\prog{lwarpmk}: Supports \texttt{-shell-escape}.}
%
% The following is only generated if the \optn{lwarpmk} option
% was given to \pkg{lwarp}.
@@ -12281,7 +12384,7 @@
-- Print the usage of the lwarpmk command:
-printversion = "v0.55"
+printversion = "v0.56"
function printhelp ()
print ("lwarpmk: Use lwarpmk -h or lwarpmk --help for help.") ;
@@ -12304,6 +12407,7 @@
For use with latexmk or a Makefile:
Converts project_html.pdf to project_html.html and individual HTML files.
Finishes the HTML conversion even if there was a compile error.
+lwarpmk pdftosvg <list of file names>: Converts each PDF file to SVG.
lwarpmk clean [project]: Remove .aux, .toc, .lof/t, .idx, .ind, .log, *_html_inc.*, .gl*
lwarpmk cleanall [project]: Remove auxiliary files and also project.pdf, *.html
lwarpmk cleanlimages: Removes all images from the "lateximages" directory.
@@ -12326,6 +12430,7 @@
homehtmlfilename = "index" (or perhaps the project name)
htmlfilename = "" (or "projectname" - filename prefix)
latexmk = "false" (or "true" to use latexmk to build PDFs)
+shellescape = "false"
xindylanguge = "english" (use a language supported by xindy)
xindycodepage = "utf8" (use a codepage supported by xindy)
xindystyle = "lwarp.xdy" (or a custom file based on lwarp.xdy)
@@ -12332,7 +12437,7 @@
pdftotextenc = "UTF-8" (use an encoding supported by pdftotext)
--
Filenames must contain only letters, numbers, underscore, or dash.
-Values must be in "quotes".
+Values must be in upright "quotes".
]] ) ;
end
@@ -12377,13 +12482,13 @@
local conffile = "lwarpmk.conf"
-- Optional configuration filename:
if ( arg[2] ~= nil ) then conffile = arg[2]..".lwarpmkconf" end
--- Default xindy language:
+-- Additional defaults:
+opsystem = "Unix"
+latexmk = "false"
+shellescape = "false"
xindylanguage = "english"
--- Default xindy codepage:
xindycodepage = "utf8"
--- Default xindystyle:
xindystyle = "lwarp.xdy"
--- Default pdftotext encoding:
pdftotextenc = "UTF-8"
-- Verify the file exists:
if (lfs.attributes(conffile,"mode")==nil) then
@@ -12439,6 +12544,7 @@
elseif ( cvarname == "homehtmlfilename" ) then homehtmlfilename = cvalue
elseif ( cvarname == "htmlfilename" ) then htmlfilename = cvalue
elseif ( cvarname == "latexmk" ) then latexmk = cvalue
+elseif ( cvarname == "shellescape" ) then shellescape = cvalue
elseif ( cvarname == "xindylanguage" ) then xindylanguage = cvalue
elseif ( cvarname == "xindycodepage" ) then xindycodepage = cvalue
elseif ( cvarname == "xindystyle" ) then xindystyle = cvalue
@@ -12535,7 +12641,13 @@
function onetime (fsuffix)
print("lwarpmk: Compiling with " .. latexname .. " " .. sourcename..fsuffix)
-err = os.execute(latexname .. " " .. sourcename..fsuffix)
+local thisshellescape = " "
+if ( shellescape == "true" ) then
+ thisshellescape = " -shell-escape "
+else
+ thisshellescape = " "
+end
+err = os.execute(latexname .. thisshellescape .. sourcename..fsuffix)
if ( err ~= 0 ) then
print ("lwarpmk: ===")
print ("lwarpmk: Compile error.")
@@ -12806,6 +12918,13 @@
-- Use latexmk to compile source and index:
-- fsuffix is "" for print, or "_html" for HTML
function compilelatexmk ( fsuffix )
+-- Maybe select the shell-escape option:
+local thisshellescape = " "
+if ( shellescape == "true" ) then
+ thisshellescape = " -shell-escape "
+else
+ thisshellescape = " "
+end
-- The recorder option is required to detect changes in <project>.tex
-- while we are loading <project>_html.tex.
err=os.execute ( "latexmk -pdf -dvi- -ps- -recorder "
@@ -12817,7 +12936,7 @@
.. " -C " .. xindycodepage
.. " -L " .. xindylanguage .. " /"
.. opquote
- .. " -pdflatex=\"" .. latexname .." %O %S\" "
+ .. " -pdflatex=\"" .. latexname .. thisshellescape .." %O %S\" "
.. sourcename..fsuffix ..".tex" ) ;
if ( err ~= 0 ) then
print ("lwarpmk: ===")
@@ -12825,10 +12944,22 @@
print ("lwarpmk: ===")
os.exit(1)
end
-end
+end -- function
+-- Converts PDF files to SVG files.
+-- The filenames are arg[2] and up.
+-- arg[1] is the command "pdftosvg".
+function convertpdftosvg ()
+for i = 2 , #arg do
+ if (lfs.attributes(arg[i],"mode")==nil) then
+ print ("lwarpmk: File \"" .. arg[i] .. "\" does not exist.")
+ else
+ print ("lwarpmk: Converting \"" .. arg[i] .. "\"")
+ os.execute ( "pdftocairo -svg " .. arg[i] )
+ end -- if
+end -- do
+end --function
-
-- lwarpmk --version :
if (arg[1] == "--version") then
@@ -13033,6 +13164,12 @@
os.execute ( rmname .. " lateximages/*" )
print ("lwarpmk: Done.")
+-- lwarpmk pdftosvg <list of file names>
+-- Convert PDf files to SVG using pdftocairo
+elseif arg[1] == "pdftosvg" then
+convertpdftosvg ()
+print ("lwarpmk: Done.")
+
-- lwarpmk with no argument :
elseif (arg[1] == nil) then
@@ -14470,6 +14607,14 @@
% \end{macro}
+% \begin{macro}{\PN at parnotes@auto} Redefined by \pkg{parnotes} to print
+% paragraph notes at the end of each paragraph.
+% \begin{macrocode}
+\def\PN at parnotes@auto{}%
+% \end{macrocode}
+% \end{macro}
+
+
% \begin{macro}{\LWR at openparagraph}
% \begin{macrocode}
\newcommand*{\LWR at openparagraph}
@@ -14498,6 +14643,15 @@
% so it's OK to generate paragraph tags.
% \begin{macrocode}
{% yes nest par tags
+% \end{macrocode}
+% If \pkg{parnotes} is used, paragraph notes are inserted
+% before starting the next paragraph:
+% \changes{v0.56}{2018/05/09}{Added support for \pkg{parnotes}.}
+% \begin{macrocode}
+ \PN at parnotes@auto%
+% \end{macrocode}
+% The opening paragraph tag:
+% \begin{macrocode}
\LWR at htmltagc{\LWR at tagregularparagraph}%
% \end{macrocode}
% Now have started a paragraph.
@@ -14559,7 +14713,7 @@
% \begin{macrocode}
{% yes nest par tags
% \end{macrocode}
-% Print a closing tag and some extra vertical space:
+% Print a closing tag and some extra vertical space.
% \begin{macrocode}
\unskip%
\LWR at htmltagc{/\LWR at tagregularparagraph}%
@@ -14568,10 +14722,17 @@
% No longer doing a paragraph:
% \begin{macrocode}
\global\boolfalse{LWR at doingapar}%
+% \end{macrocode}
% Disable the special \env{minipage} \& \cs{hspace} interaction
% until a new minipage is found:
% \begin{macrocode}
\global\boolfalse{LWR at minipagethispar}%
+% \end{macrocode}
+% If \pkg{parnotes} is used, paragraph notes are inserted
+% after ending the previous paragraph:
+% \changes{v0.56}{2018/05/09}{Added support for \pkg{parnotes}.}
+% \begin{macrocode}
+ \PN at parnotes@auto%
}% end of yes nest par tags
}% end of handling pars
% \end{macrocode}
@@ -14732,15 +14893,15 @@
% \begin{macrocode}
{\ClearPreHook{par}}%
% \end{macrocode}
-% Else: do nothing
+% Else: Do nothing:
% \begin{macrocode}
{}%
% \end{macrocode}
-% no longer in paragraph mode
+% No longer in paragraph mode:
% \begin{macrocode}
\global\setbool{LWR at doingstartpars}{false}%
% \end{macrocode}
-% no \element{p} tag to undo:
+% No \element{p} tag to undo:
% \begin{macrocode}
\global\boolfalse{LWR at doingapar}%
}% nestspan
@@ -15012,7 +15173,8 @@
% The default of |3| places footnotes before each \cs{subsubsection} or higher.
% See \cref{tab:depthsheadings} for a table of \LaTeX\ section headings.
% \changes{v0.43}{2017/11/08}{Added \progcode{FootnoteDepth}.}
-% \changes{v0.52}{2018/03/28}{Changed \progcode{FootnoteDepth} default to \cs{subsbusection}.}
+% \changes{v0.52}{2018/03/28}{Changed \progcode{FootnoteDepth} default
+% to \cs{subsbusection}.}
% \begin{macrocode}
\newcounter{FootnoteDepth}
\setcounter{FootnoteDepth}{3}
@@ -18421,7 +18583,7 @@
% This causes \pkg{lwarp} to mistakenly place an empty span between
% \HTML\ list tags.
% \begin{macrocode}
-\LetLtxMacro{\hspace}{\LWR at nohspace}%
+\LetLtxMacro\hspace\LWR at nohspace%
% \end{macrocode}
% Process the original \cs{item} code:
% \begin{macrocode}
@@ -18429,7 +18591,7 @@
% \end{macrocode}
% Restore \cs{hspace} for use in the item text:
% \begin{macrocode}
-\LetLtxMacro{\hspace}{\LWR at hspace}%
+\LetLtxMacro\hspace\LWR at hspace%
\LWR at htmltag{dt}#1\LWR at htmltag{/dt}%
\LWR at orignewline%
\LWR at htmltag{dd}%
@@ -18529,8 +18691,10 @@
% \section{Tabular}
%
% This is arguably the most complicated part of the entire package.
-% Numerous tricks are employed to handle the syntax which is involved.
+% Numerous tricks are employed to handle the syntax of the \LaTeX\ core
+% and the various tabular-related packages.
%
+%
% \subsection{Limitations}
%
% \limitstabular
@@ -18541,15 +18705,34 @@
% \changes{v0.33}{2017/07/10}{Add: Tabular at and bang columns now have their
% own HTML columns.}
%
-% \subsection{Token lookahead}
-
-% Used by \cs{LWR at futurenonspacelet} to look at the next token.
-
% \codehtml
% \begin{macrocode}
\begin{warpHTML}
% \end{macrocode}
+%
+%
+% \subsection{Temporary package-related macros}
+%
+% These macros are temporary placeholders for macros defined by various
+% packages. If the relevent package is not loaded, these placeholders are used instead.
+%
+%
+% \subsubsection{\pkg{arydshln}}
+%
+% Emualated by the original \LaTeX\ non-dashed versions.
+% \changes{v0.56}{2018/05/04}{\pkg{arydshln}: Added.}
+% \begin{macrocode}
+\LetLtxMacro\hdashline\hline
+\LetLtxMacro\cdashline\cline
+\LetLtxMacro\firsthdashline\hline
+\LetLtxMacro\lasthdashline\hline
+% \end{macrocode}
+%
+%
+% \subsection{Token lookahead}
+% Used by \cs{LWR at futurenonspacelet} to look at the next token.
+
% \begin{macro}{\LWR at mynexttoken}
% \begin{macrocode}
\newcommand\LWR at mynexttoken\relax
@@ -18602,14 +18785,18 @@
\boolfalse{LWR at tabularcelladded}
% \end{macrocode}
-% \DescribeBoolean{LWR at doinghline}
-% True if the next row will have an hline or midrule above it.
-% Also used for \cs{midrule}.
+% \DescribeCounter{LWR at hlines}
+% Number of \cs{hline}s or \cs{midrule}s above the next row.
% \begin{macrocode}
-\newbool{LWR at doinghline}
-\boolfalse{LWR at doinghline}
+\newcounter{LWR at hlines}
% \end{macrocode}
+% \DescribeCounter{LWR at hdashedlines}
+% Number of \pkg{arydshln} dashed lines above the next row.
+% \begin{macrocode}
+\newcounter{LWR at hdashedlines}
+% \end{macrocode}
+
% \DescribeBoolean{LWR at doingtbrule}
% True if the next row will have a top/bottom rule above it.
% \begin{macrocode}
@@ -19025,7 +19212,8 @@
not bool {LWR at exitingtabular} or%
bool{LWR at doingtbrule} or%
bool{LWR at doingcmidrule} or%
- bool{LWR at doinghline} or%
+ test{\ifnumcomp{\value{LWR at hlines}}{>}{0}} or%
+ test{\ifnumcomp{\value{LWR at hdashedlines}}{>}{0}} or%
bool{LWR at startedrow}%
}{%
% \end{macrocode}
@@ -19120,7 +19308,8 @@
% \end{macrocode}
% Additional setup:
% \begin{macrocode}
-\global\boolfalse{LWR at doinghline}%
+\setcounter{LWR at hlines}{0}%
+\setcounter{LWR at hdashedlines}{0}%
\global\boolfalse{LWR at doingtbrule}%
\global\boolfalse{LWR at doingcmidrule}%
\LWR at clearmidrules%
@@ -19143,6 +19332,31 @@
% \end{macro}
+% \subsection{Looking ahead in the column specifications}
+%
+% \begin{macro}{\LWR at columnspeclookahead} \marg{offset}
+%
+% Looks |offset| tokens ahead in the column specification,
+% setting \cs{LWR at strresulttwo}.
+%
+% The |w| column alignment will be seen as a single unit such as |{c}|.
+% \begin{macrocode}
+\newcommand*{\LWR at columnspeclookahead}[1]{%
+\setcounter{LWR at tempcountone}{\value{LWR at tablecolspecindex}}%
+\addtocounter{LWR at tempcountone}{#1}%
+\fullexpandarg%
+\StrChar{\LWR at origcolspec}{\arabic{LWR at tempcountone}}[\LWR at strresulttwo]%
+% \end{macrocode}
+% Get the contents of the first group in \cs{LWR at strresulttwo}:
+% \begin{macrocode}
+\exploregroups%
+\StrChar{\LWR at strresulttwo}{1}[\LWR at strresulttwo]%
+\noexploregroups%
+}
+% \end{macrocode}
+% \end{macro}
+
+
% \subsection{Parsing @, >, <, !, bar columns}
%
%
@@ -19169,7 +19383,8 @@
% \begin{macrocode}
\LWR at traceinfo{about to read the next token:}%
\expandarg%
-\StrChar{\LWR at origcolspec}{\arabic{LWR at tablecolspecindex}}[\LWR at colparameter]
+\StrChar{\LWR at origcolspec}%
+ {\arabic{LWR at tablecolspecindex}}[\LWR at colparameter]
\fullexpandarg%
% \end{macrocode}
% Store the result into a data array, expanding once out of \cs{LWR at colparameter}:
@@ -19184,7 +19399,8 @@
}%
{% not at the left edge:
\LWR at traceinfo{not at the left edge}%
- \LWR at setexparray{LWR at colatspec}{\arabic{LWR at tabletotalcols}}{\LWR at colparameter}%
+ \LWR at setexparray{LWR at colatspec}%
+ {\arabic{LWR at tabletotalcols}}{\LWR at colparameter}%
\LWR at traceinfo{at \arabic{LWR at tabletotalcols}: %
\LWR at getexparray{LWR at colatspec}{\arabic{LWR at tabletotalcols}}}%
}%
@@ -19212,10 +19428,12 @@
% \begin{macrocode}
\LWR at traceinfo{about to read the next token:}%
\expandarg%
-\StrChar{\LWR at origcolspec}{\arabic{LWR at tablecolspecindex}}[\LWR at colparameter]
+\StrChar{\LWR at origcolspec}%
+ {\arabic{LWR at tablecolspecindex}}[\LWR at colparameter]
\fullexpandarg%
% \end{macrocode}
-% Store the result into a data array, expanding once out of \cs{LWR at colparameter}:
+% Store the result into a data array,
+% expanding once out of \cs{LWR at colparameter}:
% \begin{macrocode}
\LWR at traceinfo{have now read the next token}%
\ifnumcomp{\value{LWR at tabletotalcols}}{=}{0}%
@@ -19225,7 +19443,8 @@
}%
{% not at the left edge:
\LWR at traceinfo{not at the left edge}%
- \LWR at setexparray{LWR at colbangspec}{\arabic{LWR at tabletotalcols}}{\LWR at colparameter}%
+ \LWR at setexparray{LWR at colbangspec}%
+ {\arabic{LWR at tabletotalcols}}{\LWR at colparameter}%
\LWR at traceinfo{bang \arabic{LWR at tabletotalcols}: \LWR at colparameter!}%
}%
\let\LWR at colparameter\relax%
@@ -19250,12 +19469,14 @@
% Read the next token, expanding once into \cs{LWR at colparameter}:
% \begin{macrocode}
\expandarg%
-\StrChar{\LWR at origcolspec}{\arabic{LWR at tablecolspecindex}}[\LWR at colparameter]%
+\StrChar{\LWR at origcolspec}%
+ {\arabic{LWR at tablecolspecindex}}[\LWR at colparameter]%
\fullexpandarg%
% \end{macrocode}
% Store the result into a data array, expanding once out of \cs{LWR at colparameter}:
% \begin{macrocode}
-\LWR at setexparray{LWR at colbeforespec}{\arabic{LWR at tabletotalcolsnext}}{\LWR at colparameter}%
+\LWR at setexparray{LWR at colbeforespec}%
+ {\arabic{LWR at tabletotalcolsnext}}{\LWR at colparameter}%
\let\LWR at colparameter\relax%
\booltrue{LWR at validtablecol}%
}
@@ -19276,12 +19497,14 @@
% Read the next token, expanding once into \cs{LWR at colparameter}:
% \begin{macrocode}
\expandarg%
-\StrChar{\LWR at origcolspec}{\arabic{LWR at tablecolspecindex}}[\LWR at colparameter]%
+\StrChar{\LWR at origcolspec}%
+ {\arabic{LWR at tablecolspecindex}}[\LWR at colparameter]%
\fullexpandarg%
% \end{macrocode}
% Store the result into a data array, expanding once out of \cs{LWR at colparameter}:
% \begin{macrocode}
-\LWR at setexparray{LWR at colafterspec}{\arabic{LWR at tabletotalcols}}{\LWR at colparameter}%
+\LWR at setexparray{LWR at colafterspec}%
+ {\arabic{LWR at tabletotalcols}}{\LWR at colparameter}%
\let\LWR at colparameter\relax%
\booltrue{LWR at validtablecol}%
}
@@ -19292,19 +19515,34 @@
% \begin{macro}{\LWR at parsebarcolumn} \qquad Handles vertical rules.
%
% \changes{v0.41}{2017/10/07}{Added vertical rules.}
+% \changes{v0.56}{2018/04/30}{Adds support for double vertical rules.}
%
% \begin{macrocode}
\newcommand*{\LWR at parsebarcolumn}{%
-\LWR at traceinfo{bar column}%
+\LWR at traceinfo{LWR at parsebarcolumn}%
% \end{macrocode}
% Remember the bar at this position:
% \begin{macrocode}
\ifnumcomp{\value{LWR at tabletotalcols}}{=}{0}%
{% left edge of the table:
- \LWR at setexparray{LWR at colbarspec}{leftedge}{tvertbarl}%
+ \edef\LWR at tempone{\LWR at getexparray{LWR at colbarspec}{leftedge}}%
+ \ifdefstring{\LWR at tempone}{tvertbarl}%
+ {\LWR at setexparray{LWR at colbarspec}{leftedge}{tvertbarldouble}}%
+ {\LWR at setexparray{LWR at colbarspec}{leftedge}{tvertbarl}}%
}%
{% not at the left edge:
- \LWR at setexparray{LWR at colbarspec}{\arabic{LWR at tabletotalcols}}{tvertbarr}%
+ \edef\LWR at tempone{%
+ \LWR at getexparray{LWR at colbarspec}{\arabic{LWR at tabletotalcols}}%
+ }%
+ \ifdefstring{\LWR at tempone}{tvertbarr}%
+ {%
+ \LWR at setexparray{LWR at colbarspec}%
+ {\arabic{LWR at tabletotalcols}}{tvertbarrdouble}%
+ }%
+ {%
+ \LWR at setexparray{LWR at colbarspec}%
+ {\arabic{LWR at tabletotalcols}}{tvertbarr}%
+ }%
}%
\booltrue{LWR at validtablecol}%
}
@@ -19312,6 +19550,56 @@
% \end{macro}
%
%
+% \begin{macro}{\LWR at parsecoloncolumn} \qquad Handles vertical rules.
+%
+% \changes{v0.56}{2018/05/04}{\pkg{arydshln}: Added.}
+% \begin{macrocode}
+\newcommand*{\LWR at parsecoloncolumn}{%
+\LWR at traceinfo{LWR at parsecoloncolumn}%
+% \end{macrocode}
+% Remember the bar at this position:
+% \begin{macrocode}
+\ifnumcomp{\value{LWR at tabletotalcols}}{=}{0}%
+{% left edge of the table:
+ \edef\LWR at tempone{\LWR at getexparray{LWR at colbarspec}{leftedge}}%
+ \ifdefstring{\LWR at tempone}{tvertbarldash}%
+ {\LWR at setexparray{LWR at colbarspec}{leftedge}{tvertbarldoubledash}}%
+ {\LWR at setexparray{LWR at colbarspec}{leftedge}{tvertbarldash}}%
+}%
+{% not at the left edge:
+ \edef\LWR at tempone{%
+ \LWR at getexparray{LWR at colbarspec}{\arabic{LWR at tabletotalcols}}%
+ }%
+ \ifdefstring{\LWR at tempone}{tvertbarrdash}%
+ {\LWR at setexparray{LWR at colbarspec}%
+ {\arabic{LWR at tabletotalcols}}{tvertbarrdoubledash}}%
+ {\LWR at setexparray{LWR at colbarspec}%
+ {\arabic{LWR at tabletotalcols}}{tvertbarrdash}}%
+}%
+\booltrue{LWR at validtablecol}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\LWR at parsesemicoloncolumn} \qquad Handles vertical rules.
+%
+% \changes{v0.56}{2018/05/04}{\pkg{arydshln}: Added.}
+% \begin{macrocode}
+\newcommand*{\LWR at parsesemicoloncolumn}{%
+% \end{macrocode}
+% Treat |;| as a |:| column:
+% \begin{macrocode}
+\LWR at parsecoloncolumn%
+% \end{macrocode}
+% Skip the following width token:
+% \begin{macrocode}
+\addtocounter{LWR at tablecolspecindex}{1}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
% \subsection{Parsing `l', `c', or `r' columns}
%
% \begin{macro}{\LWR at parsenormalcolumn} \marg{thiscolumn}
@@ -19354,6 +19642,24 @@
% \end{macro}
+% \subsection{Parsing `w' columns}
+%
+% \begin{macro}{\LWR at parsewcolumn}
+% The width will be ignored.
+% \begin{macrocode}
+\newcommand*{\LWR at parsewcolumn}{%
+% \end{macrocode}
+% \begin{macrocode}
+\LWR at columnspeclookahead{1}%
+\expandafter\LWR at parsenormalcolumn\expandafter{\LWR at strresulttwo}%
+% \end{macrocode}
+% Skips the following width and alignment tokens:
+% \begin{macrocode}
+\addtocounter{LWR at tablecolspecindex}{2}%
+}
+% \end{macrocode}
+% \end{macro}
+
% \subsection{Parsing `D' columns}
%
% From the \pkg{dcolumn} package.
@@ -19538,7 +19844,8 @@
% \begin{macrocode}
\whileboolexpr{%
not test{%
- \ifnumcomp{\value{LWR at tablecolspecindex}}{>}{\value{LWR at tablecolspecwidth}}%
+ \ifnumcomp{\value{LWR at tablecolspecindex}}{>}%
+ {\value{LWR at tablecolspecwidth}}%
}%
}%
{%
@@ -19576,16 +19883,30 @@
\IfStrEq{\LWR at strresult}{C}{\LWR at parsenormalcolumn{c}}{}%
\IfStrEq{\LWR at strresult}{R}{\LWR at parsenormalcolumn{r}}{}%
\IfStrEq{\LWR at strresult}{J}{\LWR at parsenormalcolumn{l}}{}%
-\IfStrEq{\LWR at strresult}{S}{\LWR at parsenormalcolumn{r}}{}%
+% \end{macrocode}
+% \begin{macrocode}
+\IfStrEq{\LWR at strresult}{S}{\LWR at parsenormalcolumn{c}}{}%
+\IfStrEq{\LWR at strresult}{s}{\LWR at parsenormalcolumn{c}}{}%
+% \end{macrocode}
+% \begin{macrocode}
\IfStrEq{\LWR at strresult}{\detokenize{@}}{\LWR at parseatcolumn}{}%
\IfStrEq{\LWR at strresult}{!}{\LWR at parsebangcolumn}{}%
\IfStrEq{\LWR at strresult}{>}{\LWR at parsebeforecolumn}{}%
\IfStrEq{\LWR at strresult}{<}{\LWR at parseaftercolumn}{}%
\IfStrEq{\LWR at strresult}{|}{\LWR at parsebarcolumn}{}%
+\IfStrEq{\LWR at strresult}{:}{\LWR at parsecoloncolumn}{}%
+\IfStrEq{\LWR at strresult}{;}{\LWR at parsesemicoloncolumn}{}%
+% \end{macrocode}
+% \begin{macrocode}
\IfStrEq{\LWR at strresult}{p}{\LWR at parsepcolumn{p}}{}%
\IfStrEq{\LWR at strresult}{m}{\LWR at parsepcolumn{m}}{}%
\IfStrEq{\LWR at strresult}{b}{\LWR at parsepcolumn{b}}{}%
% \end{macrocode}
+% \changes{v0.56}{2018/05/10}{Added \pkg{array} \texttt{W} column.}
+% \begin{macrocode}
+\IfStrEq{\LWR at strresult}{w}{\LWR at parsewcolumn}{}%
+\IfStrEq{\LWR at strresult}{W}{\LWR at parsewcolumn}{}%
+% \end{macrocode}
% From the \pkg{dcolumn} package:
% \begin{macrocode}
\IfStrEq{\LWR at strresult}{D}{\LWR at parseDcolumn{c}}{}%
@@ -19621,7 +19942,7 @@
% \begin{macrocode}
\addtocounter{LWR at tablecolspecindex}{1}%
}% whiledo
-\LWR at traceinfo{LWR at parsetablecols: done}%
+\LWR at traceinfo{LWR at parsetablecols: Final table column spec: !\LWR at tablecolspec!}%
}%
% \end{macrocode}
% \end{macro}
@@ -19773,16 +20094,12 @@
% Create the row tag, with a class if necessary.
% \begin{macrocode}
\global\booltrue{LWR at intabularmetadata}%
- \ifbool{LWR at doinghline}%
+ \ifboolexpr{%
+ test{\ifnumcomp{\value{LWR at hlines}}{>}{0}} or%
+ test{\ifnumcomp{\value{LWR at hdashedlines}}{>}{0}}%
+ }%
{%
- \ifdefvoid{\LWR at ruleHTMLcolor}{%
- \LWR at htmltag{tr class="hline" }%
- }{%
- \LWR at htmltag{%
- tr class="hline" %
- style="border-top: 1px solid \LWR at origpound\LWR at ruleHTMLcolor "%
- }%
- }%
+ \LWR at htmltag{tr class="hline" }%
\LWR at orignewline%
}%
{% not doing hline
@@ -19792,8 +20109,9 @@
\LWR at htmltag{tr class="tbrule"}%
}{%
\LWR at htmltag{%
- tr class="tbrule" %
- style="border-top: 1px solid \LWR at origpound\LWR at ruleHTMLcolor "%
+ tr class="tbrule" % space
+ style="border-top: 1px solid % space
+ \LWR at origpound\LWR at ruleHTMLcolor "%
}%
}%
\LWR at orignewline%
@@ -19855,6 +20173,7 @@
"%
\LWR at tdstartstyles%
\LWR at addcmidrulewidth%
+ \LWR at addcdashline%
\LWR at addtabularrulecolors%
\LWR at tdendstyles%
}%
@@ -19938,7 +20257,8 @@
% \end{macrocode}
% Fetch the current column's alignment character into \cs{LWR at strresult}:
% \begin{macrocode}
- \StrChar{\LWR at tablecolspec}{\arabic{LWR at tablecolindex}}[\LWR at strresult]%
+ \StrChar{\LWR at tablecolspec}%
+ {\arabic{LWR at tablecolindex}}[\LWR at strresult]%
% \end{macrocode}
% print the start of a new table data cell:
% \begin{macrocode}
@@ -19962,7 +20282,9 @@
% \begin{macrocode}
\LWR at tdstartstyles%
\LWR at addcmidrulewidth%
- \StrChar{\LWR at tablecolspec}{\arabic{LWR at tablecolindex}}[\LWR at thiscolspec]%
+ \LWR at addcdashline%
+ \StrChar{\LWR at tablecolspec}%
+ {\arabic{LWR at tablecolindex}}[\LWR at thiscolspec]%
\LWR at addformatwpalignment{\LWR at thiscolspec}%
% \end{macrocode}
% Add styles for cell and rule colors:
@@ -19976,7 +20298,7 @@
}%
\LWR at traceinfo{LWR at tabledatasinglecolumntag: done printing td tag}%
% \end{macrocode}
-% If this is a p, m, b, or X column, allow paragraphs:
+% If this is a |p|, |m|, |b|, or X column, allow paragraphs:
% \begin{macrocode}
\ifboolexpr{%
test{ \ifdefstring{\LWR at strresult}{p} } or
@@ -20025,7 +20347,13 @@
% (\cref{sec:dataarray}) of columns containing
% |r| if a midrule should be right trimmed for each column.
+% \DescribeObject{LWR at cdashlines}|LWR at cdashlines| is a data array
+% (\cref{sec:dataarray}) of columns each containing a |Y|
+% if an \pkg{arydshln} package "cdashed line" should be
+% created for this column.
+
+
% \DescribeCounter{LWR at midrulecounter}
% Indexes across the |LWR at midrules| and |LWR at trim<l/r>rules| data arrays.
% \begin{macrocode}
@@ -20083,7 +20411,8 @@
\setcounter{LWR at midrulecounter}{1}%
\whileboolexpr{%
not test{%
- \ifnumcomp{\value{LWR at midrulecounter}}{>}{\value{LWR at tablecolspecwidth}}%
+ \ifnumcomp{\value{LWR at midrulecounter}}{>}%
+ {\value{LWR at tablecolspecwidth}}%
}%
}%
{%
@@ -20091,6 +20420,7 @@
\setlength{\LWR at thiscmidrulewidth}{\LWR at cmidrulewidth}%
\LWR at setexparray{LWR at trimlrules}{\arabic{LWR at midrulecounter}}{}%
\LWR at setexparray{LWR at trimrrules}{\arabic{LWR at midrulecounter}}{}%
+\LWR at setexparray{LWR at cdashlines}{\arabic{LWR at midrulecounter}}{N}%
\addtocounter{LWR at midrulecounter}{1}%
}%
}
@@ -20129,27 +20459,71 @@
% \end{macro}
-% \begin{macro}{\LWR at docmidrule} \oarg{width} \marg{trim} \marg{leftcolumn-rightcolumn}
+% \begin{macro}{\LWR at docmidrule} \oarg{width} \parg{trim} \marg{leftcolumn-rightcolumn}
%
% Marks |LWR at midrules| array elements to be a non-zero width from left to right columns.
% Also marks trimming for the L and/or R columns.
%
% \begin{macrocode}
-\NewDocumentCommand{\LWR at docmidrule}{O{\LWR at cmidrulewidth} D(){} >{\SplitArgument{1}{-}}m}%
-{\LWR at subcmidrule{#1}{#2}#3}
+\NewDocumentCommand{\LWR at docmidrule}
+ {O{\LWR at cmidrulewidth} D(){} >{\SplitArgument{1}{-}}m}
+ {\LWR at subcmidrule{#1}{#2}#3}
% \end{macrocode}
% \end{macro}
-% Used to compute margins, tabular trims:
+% \begin{macro}{\LWR at subcdashline} \marg{leftcolumn} \marg{rightcolumn}
+%
+% Marks |LWR at cdashlines| data array elements to be |Y| from
+% left to right columns.
+%
+% |LWR at doingcmidrule| is set to force an empty row at the end of the tabular
+% to create the rule.
+%
% \begin{macrocode}
-\newlength{\LWR at templengthone}%
-\newlength{\LWR at templengthtwo}%
-\newlength{\LWR at templengththree}%
+\newcommand*{\LWR at subcdashline}[2]{%
+\setcounter{LWR at midrulecounter}{#1}%
+\whileboolexpr{%
+ not test {%
+ \ifnumcomp{\value{LWR at midrulecounter}}{>}{#2}%
+ }%
+}%
+{%
+ \LWR at setexparray{LWR at cdashlines}{\arabic{LWR at midrulecounter}}{Y}%
+ \addtocounter{LWR at midrulecounter}{1}%
+}% whiledo
+\booltrue{LWR at doingcmidrule}%
+}
% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\LWR at docdashline} \marg{leftcolumn-rightcolumn}
+%
+% Marks |LWR at cdashlines| data array elements to be |Y| from
+% left to right columns.
+%
+% \begin{macrocode}
+\NewDocumentCommand{\LWR at docdashline}
+ {>{\SplitArgument{1}{-}}m}%
+ {%
+ \LWR at subcdashline#1%
+ }
+% \end{macrocode}
+% \end{macro}
+
+
+
+% Used to compute margins, tabular trims, column offsets:
+% \begin{macrocode}
+\newlength{\LWR at templengthone}
+\newlength{\LWR at templengthtwo}
+\newlength{\LWR at templengththree}
+\newcounter{LWR at tempcountone}
+% \end{macrocode}
+
+
% Used to add a style to a table data cell:
% \begin{macrocode}
\newboolean{LWR at tdhavecellstyle}
@@ -20202,7 +20576,7 @@
\ifdimcomp{\LWR at templengthone}{>}{0pt}%
{%
% \end{macrocode}
-% Print the class without left and right trim letters appended:
+% Print the class with left and right trim letters appended:
% \begin{macrocode}
\LWR at origtilde tdrule#1#2%
% \end{macrocode}
@@ -20301,6 +20675,28 @@
% \end{macro}
+% \begin{macro}{\LWR at addcdashline}
+%
+% Must be placed between \cs{LWR at tdstartstyles} and \cs{LWR at tdendstyles}.
+%
+% \changes{v0.56}{2018/05/04}{\pkg{arydshln}: Added.}
+% \begin{macrocode}
+\newcommand{\LWR at addcdashline}{%
+\edef\LWR at tempone{%
+ \LWR at getexparray{LWR at cdashlines}{\arabic{LWR at tablecolindex}}%
+}%
+\ifdefstring{\LWR at tempone}{Y}{%
+ \LWR at tdaddstyle%
+ border-top: 1pt dashed %
+ \ifdefvoid{\LWR at ruleHTMLcolor}%
+ {black}%
+ {\LWR at origpound\LWR at ruleHTMLcolor}%
+}{}%
+}
+% \end{macrocode}
+% \end{macro}
+
+
% \begin{macro}{\LWR at WPcell} \marg{text-align} \marg{vertical-align}
% \changes{v0.47}{2018/01/26}{Fix: Line wrap at \HTML\ hyphen.}
% \begin{macrocode}
@@ -20368,23 +20764,66 @@
%
% \begin{macro}{\LWR at addtabularhrulecolor} Adds a cell's horizontal rule color style, if needed.
% \changes{v0.48}{2018/02/08}{\pkg{colortbl}: Added.}
+% \changes{v0.56}{2018/04/30}{Adds support for double \cs{hline}s and \cs{midrule}s.}
+% \changes{v0.56}{2018/05/02}{Adds support for \pkg{arydshln} dashed rules.}
% \begin{macrocode}
\newcommand*{\LWR at addtabularhrulecolor}{%
% \end{macrocode}
% If either form of horizontal rule is requested:
% \begin{macrocode}
-\ifboolexpr {
- bool{LWR at doinghline} or
- bool{LWR at doingtbrule}
+\ifboolexpr{%
+ test{\ifnumcomp{\value{LWR at hlines}}{>}{0}} or%
+ test{\ifnumcomp{\value{LWR at hdashedlines}}{>}{0}} or%
+ bool{LWR at doingtbrule}%
}{%
% \end{macrocode}
-% And if there is a custom horizontal color:
+% If there is a no custom color:
% \begin{macrocode}
- \ifdefvoid{\LWR at ruleHTMLcolor}{}%
+ \ifdefvoid{\LWR at ruleHTMLcolor}%
{%
- \LWR at tdaddstyle%
- border-top: 1px solid \LWR at origpound\LWR at ruleHTMLcolor%
- }{}%
+ \ifnumcomp{\value{LWR at hlines}}{>}{1}%
+ {%
+ \LWR at tdaddstyle%
+ border-top: 4px double%
+ }{% else
+ \ifnumcomp{\value{LWR at hdashedlines}}{>}{1}%
+ {%
+ \LWR at tdaddstyle%
+ border-top: 2px dashed%
+ }{% else
+ \ifnumcomp{\value{LWR at hdashedlines}}{=}{1}%
+ {%
+ \LWR at tdaddstyle%
+ border-top: 1px dashed%
+ }{}}}%
+% \end{macrocode}
+% If no color and not doubled or dashed, then add nothing, since
+% a simpler rule is the default.
+% \begin{macrocode}
+ }%
+% \end{macrocode}
+% If there is a custom color:
+% \begin{macrocode}
+ {%
+ \ifnumcomp{\value{LWR at hlines}}{>}{1}%
+ {%
+ \LWR at tdaddstyle%
+ border-top: 4px double \LWR at origpound\LWR at ruleHTMLcolor%
+ }{% else
+ \ifnumcomp{\value{LWR at hdashedlines}}{>}{1}%
+ {%
+ \LWR at tdaddstyle%
+ border-top: 2px dashed \LWR at origpound\LWR at ruleHTMLcolor%
+ }{% else
+ \ifnumcomp{\value{LWR at hdashedlines}}{=}{1}%
+ {%
+ \LWR at tdaddstyle%
+ border-top: 1px dashed \LWR at origpound\LWR at ruleHTMLcolor%
+ }{% else
+ \LWR at tdaddstyle%
+ border-top: 1px solid \LWR at origpound\LWR at ruleHTMLcolor%
+ }}}%
+ }%
}{}%
}
% \end{macrocode}
@@ -20394,6 +20833,8 @@
%
% \begin{macro}{\LWR at addtabularrulecolors} Adds a cell's rule color styles, if needed.
% \changes{v0.48}{2018/02/08}{\pkg{colortbl}: Added.}
+% \changes{v0.56}{2018/04/30}{Adds support for double vertical rules.}
+% \changes{v0.56}{2018/05/05}{Adds support for dashed vertical rules.}
%
% No color is added for the final row of empty cells which finishes each \env{tabular}.
%
@@ -20420,13 +20861,31 @@
% \begin{macrocode}
\ifdefstring{\LWR at tempone}{tvertbarl}{%
\LWR at tdaddstyle%
- border-left: 1px solid \LWR at origpound\LWR at vertruleHTMLcolor%
+ border-left: 1px solid % space
+ \LWR at origpound\LWR at vertruleHTMLcolor%
}{}%
+ \ifdefstring{\LWR at tempone}{tvertbarldouble}{%
+ \LWR at tdaddstyle%
+ border-left: 4px double % space
+ \LWR at origpound\LWR at vertruleHTMLcolor%
+ }{}%
+ \ifdefstring{\LWR at tempone}{tvertbarldash}{%
+ \LWR at tdaddstyle%
+ border-left: 1px dashed % space
+ \LWR at origpound\LWR at vertruleHTMLcolor%
+ }{}%
+ \ifdefstring{\LWR at tempone}{tvertbarldoubledash}{%
+ \LWR at tdaddstyle%
+ border-left: 2px dashed % space
+ \LWR at origpound\LWR at vertruleHTMLcolor%
+ }{}%
}{}%
% \end{macrocode}
% Possibly add a right vertical rule for this cell:
% \begin{macrocode}
- \edef\LWR at tempone{\LWR at getexparray{LWR at colbarspec}{\arabic{LWR at tablecolindex}}}%
+ \edef\LWR at tempone{%
+ \LWR at getexparray{LWR at colbarspec}{\arabic{LWR at tablecolindex}}%
+ }%
\ifdefstring{\LWR at tempone}{tvertbarr}{%
% \end{macrocode}
% Add a custom style if a vertical bar was requested:
@@ -20434,6 +20893,18 @@
\LWR at tdaddstyle%
border-right: 1px solid \LWR at origpound\LWR at vertruleHTMLcolor%
}{}%
+ \ifdefstring{\LWR at tempone}{tvertbarrdouble}{%
+ \LWR at tdaddstyle%
+ border-right: 4px double \LWR at origpound\LWR at vertruleHTMLcolor%
+ }{}%
+ \ifdefstring{\LWR at tempone}{tvertbarrdash}{%
+ \LWR at tdaddstyle%
+ border-right: 1px dashed \LWR at origpound\LWR at vertruleHTMLcolor%
+ }{}%
+ \ifdefstring{\LWR at tempone}{tvertbarrdoubledash}{%
+ \LWR at tdaddstyle%
+ border-right: 2px dashed \LWR at origpound\LWR at vertruleHTMLcolor%
+ }{}%
}%
}
% \end{macrocode}
@@ -20498,8 +20969,11 @@
% Remembers multicolumn vertical rules if found in the column spec.
% \begin{macrocode}
-\newbool{LWR at mcolvertbarl}
-\newbool{LWR at mcolvertbarr}
+\newcounter{LWR at mcolvertbarsl}
+\newcounter{LWR at mcolvertbarsr}
+\newcounter{LWR at mcolvertbarsldash}
+\newcounter{LWR at mcolvertbarsrdash}
+\newboolean{LWR at mcolvertbaronleft}%
% \end{macrocode}
% \begin{macro}{\LWR at printmccoltype} \marg{colspec}
@@ -20526,27 +21000,59 @@
\IfStrEq{\LWR at strresult}{P}{P}{}%
\IfStrEq{\LWR at strresult}{M}{M}{}%
\IfStrEq{\LWR at strresult}{B}{B}{}%
-\IfStrEq{\LWR at strresult}{S}{r}{}%
+% \end{macrocode}
+% \changes{v0.56}{2018/05/10}{Added \pkg{array} \texttt{W} column.}
+% \begin{macrocode}
+\IfStrEq{\LWR at strresult}{w}{w}{}%
+\IfStrEq{\LWR at strresult}{W}{W}{}%
+% \end{macrocode}
+% \begin{macrocode}
+\IfStrEq{\LWR at strresult}{S}{c}{}%
+\IfStrEq{\LWR at strresult}{s}{c}{}%
+% \end{macrocode}
+% \begin{macrocode}
\IfStrEq{\LWR at strresult}{X}{p}{}%
% \end{macrocode}
% \changes{v0.43}{2017/11/07}{Added vertical rules.}
+% \changes{v0.56}{2018/04/30}{Adds support for double vertical rules.}
+% \changes{v0.56}{2018/05/05}{Adds support for dashed vertical rules.}
% \begin{macrocode}
-\IfStrEq{\LWR at strresult}{|}{%
- \ifnumcomp{\value{LWR at tablemulticolspos}}{=}{1}% left edge?
- {\booltrue{LWR at mcolvertbarl}}% left edge
- {\booltrue{LWR at mcolvertbarr}}% not left edge
-}{}%
+\IfStrEq{\LWR at strresult}{|}%
+{%
+ \ifbool{LWR at mcolvertbaronleft}%
+ {\addtocounter{LWR at mcolvertbarsl}{1}}% left edge
+ {\addtocounter{LWR at mcolvertbarsr}{1}}% not left edge
+}%
+{%
+ \IfStrEq{\LWR at strresult}{:}%
+ {%
+ \ifbool{LWR at mcolvertbaronleft}%
+ {\addtocounter{LWR at mcolvertbarsldash}{1}}% left edge
+ {\addtocounter{LWR at mcolvertbarsrdash}{1}}% not left edge
+ }%
+ {%
+ \IfStrEq{\LWR at strresult}{;}%
+ {%
+ \ifbool{LWR at mcolvertbaronleft}%
+ {\addtocounter{LWR at mcolvertbarsldash}{1}}% left edge
+ {\addtocounter{LWR at mcolvertbarsrdash}{1}}% not left edge
+ }%
+ {\setboolean{LWR at mcolvertbaronleft}{false}}%
+ }%
+}%
\LWR at traceinfo{lwr at printmccoltype done}%
}
% \end{macrocode}
% \end{macro}
-% \begin{macro}{\LWR at multicolpartext}
-% Print the data with paragraph tags:
+% \begin{macro}{\LWR at multicolpartext} \marg{num parameters}
+% Print the data with paragraph tags, advance to bypass the given number of parameters.
+% \changes{v0.56}{2018/05/12}{Fix: \cs{multicolumn} parameters.}
% \begin{macrocode}
-\newcommand*{\LWR at multicolpartext}{%
+\newcommand*{\LWR at multicolpartext}[1]{%
\LWR at startpars%
\LWR at multicoltext%
+\addtocounter{LWR at tablemulticolspos}{#1}%
\LWR at stoppars%
}
% \end{macrocode}
@@ -20609,15 +21115,33 @@
\addtocounter{LWR at tablemulticolspos}{3}% skip parameters
\LWR at multicoltext%
}{}%
-\IfStrEq{\LWR at strresult}{p}{\LWR at multicolpartext}{}%
-\IfStrEq{\LWR at strresult}{m}{\LWR at multicolpartext}{}%
-\IfStrEq{\LWR at strresult}{b}{\LWR at multicolpartext}{}%
-\IfStrEq{\LWR at strresult}{P}{\LWR at multicolpartext}{}%
-\IfStrEq{\LWR at strresult}{M}{\LWR at multicolpartext}{}%
-\IfStrEq{\LWR at strresult}{B}{\LWR at multicolpartext}{}%
-\IfStrEq{\LWR at strresult}{S}{\LWR at multicolpartext}{}%
-\IfStrEq{\LWR at strresult}{X}{\LWR at multicolpartext}{}%
+% \end{macrocode}
+% \changes{v0.56}{2018/05/12}{Fix: \cs{multicolumn} parameters.}
+% \begin{macrocode}
+\IfStrEq{\LWR at strresult}{p}{\LWR at multicolpartext{0}}{}%
+\IfStrEq{\LWR at strresult}{m}{\LWR at multicolpartext{0}}{}%
+\IfStrEq{\LWR at strresult}{b}{\LWR at multicolpartext{0}}{}%
+\IfStrEq{\LWR at strresult}{P}{\LWR at multicolpartext{0}}{}%
+\IfStrEq{\LWR at strresult}{M}{\LWR at multicolpartext{0}}{}%
+\IfStrEq{\LWR at strresult}{B}{\LWR at multicolpartext{0}}{}%
+% \end{macrocode}
+% \changes{v0.56}{2018/05/10}{Added \pkg{array} \texttt{W} column.}
+% \begin{macrocode}
+\IfStrEq{\LWR at strresult}{w}{\LWR at multicolpartext{3}}{}%
+\IfStrEq{\LWR at strresult}{W}{\LWR at multicolpartext{3}}{}%
+% \end{macrocode}
+% \begin{macrocode}
+\IfStrEq{\LWR at strresult}{S}{\LWR at multicoltext}{}%
+\IfStrEq{\LWR at strresult}{s}{\LWR at multicoltext}{}%
+% \end{macrocode}
+% \begin{macrocode}
+\IfStrEq{\LWR at strresult}{X}{\LWR at multicolpartext{0}}{}%
\IfStrEq{\LWR at strresult}{|}{\LWR at multicolskip}{}%
+\IfStrEq{\LWR at strresult}{:}{\LWR at multicolskip}{}%
+\IfStrEq{\LWR at strresult}{;}{%
+ \LWR at multicolskip%
+ \addtocounter{LWR at tablemulticolspos}{1}% skip parameter
+}{}%
\IfStrEq{\LWR at strresult}{\detokenize{@}}{\LWR at multicolother{#1}}{}%
\IfStrEq{\LWR at strresult}{\detokenize{!}}{\LWR at multicolother{#1}}{}%
\IfStrEq{\LWR at strresult}{\detokenize{>}}{\LWR at multicolother{#1}}{}%
@@ -20655,8 +21179,9 @@
% \begin{macrocode}
\whileboolexpr{%
not test {%
- \ifnumcomp{\value{LWR at tablemulticolspos}}{>}{\value{LWR at tablemulticolswidth}}%
- }
+ \ifnumcomp{\value{LWR at tablemulticolspos}}{>}%
+ {\value{LWR at tablemulticolswidth}}%
+ }%
}%
{%
% \end{macrocode}
@@ -20677,6 +21202,8 @@
% \subsubsection{Multicolumn factored code}
% \begin{macro}{\LWR at addmulticolvertrulecolor}
+% \changes{v0.56}{2018/04/30}{Adds support for double vertical rules.}
+% \changes{v0.56}{2018/05/05}{Adds support for dashed vertical rules.}
% \begin{macrocode}
\newcommand*{\LWR at addmulticolvertrulecolor}{%
% \end{macrocode}
@@ -20686,17 +21213,41 @@
% \end{macrocode}
% Left side:
% \begin{macrocode}
- \ifbool{LWR at mcolvertbarl}{%
+ \ifnumcomp{\value{LWR at mcolvertbarsl}}{=}{1}{%
\LWR at tdaddstyle%
border-left: 1px solid \LWR at origpound\LWR at vertruleHTMLcolor%
}{}%
+ \ifnumcomp{\value{LWR at mcolvertbarsl}}{>}{1}{%
+ \LWR at tdaddstyle%
+ border-left: 4px double \LWR at origpound\LWR at vertruleHTMLcolor%
+ }{}%
+ \ifnumcomp{\value{LWR at mcolvertbarsldash}}{=}{1}{%
+ \LWR at tdaddstyle%
+ border-left: 1px dashed \LWR at origpound\LWR at vertruleHTMLcolor%
+ }{}%
+ \ifnumcomp{\value{LWR at mcolvertbarsldash}}{>}{1}{%
+ \LWR at tdaddstyle%
+ border-left: 2px dashed \LWR at origpound\LWR at vertruleHTMLcolor%
+ }{}%
% \end{macrocode}
% Right side:
% \begin{macrocode}
- \ifbool{LWR at mcolvertbarr}{%
+ \ifnumcomp{\value{LWR at mcolvertbarsr}}{=}{1}{%
\LWR at tdaddstyle%
border-right: 1px solid \LWR at origpound\LWR at vertruleHTMLcolor%
}{}%
+ \ifnumcomp{\value{LWR at mcolvertbarsr}}{>}{1}{%
+ \LWR at tdaddstyle%
+ border-right: 4px double \LWR at origpound\LWR at vertruleHTMLcolor%
+ }{}%
+ \ifnumcomp{\value{LWR at mcolvertbarsrdash}}{=}{1}{%
+ \LWR at tdaddstyle%
+ border-right: 1px dashed \LWR at origpound\LWR at vertruleHTMLcolor%
+ }{}%
+ \ifnumcomp{\value{LWR at mcolvertbarsrdash}}{>}{1}{%
+ \LWR at tdaddstyle%
+ border-right: 2px dashed \LWR at origpound\LWR at vertruleHTMLcolor%
+ }{}%
}%
}
% \end{macrocode}
@@ -20769,8 +21320,11 @@
% \end{macrocode}
% Print the column type and vertical bars:
% \begin{macrocode}
-\boolfalse{LWR at mcolvertbarl}%
-\boolfalse{LWR at mcolvertbarr}%
+\setcounter{LWR at mcolvertbarsl}{0}%
+\setcounter{LWR at mcolvertbarsr}{0}%
+\setcounter{LWR at mcolvertbarsldash}{0}%
+\setcounter{LWR at mcolvertbarsrdash}{0}%
+\setboolean{LWR at mcolvertbaronleft}{true}%
\LWR at parsemulticolumnalignment{#5}{\LWR at printmccoltype}%
% \end{macrocode}
% If this column has a cmidrule, add ``rule'' to the end of the \HTML\ class tag.
@@ -20785,13 +21339,22 @@
% Also add vertical bar class.
% \changes{v0.41}{2017/10/07}{Added vertical rules.}
% \changes{v0.43}{2017/11/07}{Fix for vertical rules.}
+% \changes{v0.56}{2018/04/30}{Adds support for double vertical rules.}
+% \changes{v0.56}{2018/05/05}{Adds support for dashed vertical rules.}
% \begin{macrocode}
-\ifbool{LWR at mcolvertbarl}{ tvertbarl}{}%
-\ifbool{LWR at mcolvertbarr}{ tvertbarr}{}%
+\ifnumcomp{\value{LWR at mcolvertbarsl}}{=}{1}{ tvertbarl}{}%
+\ifnumcomp{\value{LWR at mcolvertbarsl}}{>}{1}{ tvertbarldouble}{}%
+\ifnumcomp{\value{LWR at mcolvertbarsr}}{=}{1}{ tvertbarr}{}%
+\ifnumcomp{\value{LWR at mcolvertbarsr}}{>}{1}{ tvertbarrdouble}{}%
+\ifnumcomp{\value{LWR at mcolvertbarsldash}}{=}{1}{ tvertbarldash}{}%
+\ifnumcomp{\value{LWR at mcolvertbarsldash}}{>}{1}{ tvertbarldoubledash}{}%
+\ifnumcomp{\value{LWR at mcolvertbarsrdash}}{=}{1}{ tvertbarrdash}{}%
+\ifnumcomp{\value{LWR at mcolvertbarsrdash}}{>}{1}{ tvertbarrdoubledash}{}%
% \end{macrocode}
% Close the class tag's opening quote:
+"% NOT A TYPO
% \begin{macrocode}
-"%
+%
% \end{macrocode}
% \changes{v0.42}{2017/10/26}{If \progcode{FormatWP} add cell alignment.}
% \begin{macrocode}
@@ -20803,6 +21366,7 @@
% \end{macrocode}
% \begin{macrocode}
\LWR at addcmidrulewidth%
+\LWR at addcdashline%
\LWR at addtabularhrulecolor%
\LWR at addmulticolvertrulecolor%
\LWR at addformatwpalignment{#5}%
@@ -20890,7 +21454,9 @@
% \end{macrocode}
% Create the multicolumn tag:
% \begin{macrocode}
-\LWR at domulticolumn{\arabic{LWR at tabletotalcols}}{\arabic{LWR at tabhtmlcoltotal}}{P}%
+\LWR at domulticolumn{\arabic{LWR at tabletotalcols}}%
+ {\arabic{LWR at tabhtmlcoltotal}}%
+ {P}%
{% \LWR at domulticolumn
\IfBooleanTF{#1}% star?
% \end{macrocode}
@@ -21328,58 +21894,97 @@
% \begin{macrocode}
\ifdefequal{\LWR at mynexttoken}{\mcolrowcell}%
{\let\mynext\LWR at donothing}{}%
-%
+% \end{macrocode}
+% \begin{macrocode}
\ifdefequal{\LWR at mynexttoken}{\TabularMacro}%
{\let\mynext\LWR at donothing}{}%
-%
+% \end{macrocode}
+% \begin{macrocode}
\ifdefequal{\LWR at mynexttoken}{\hline}%
{\let\mynext\LWR at donothing}{}%
-%
+% \end{macrocode}
+% \begin{macrocode}
\ifdefequal{\LWR at mynexttoken}{\firsthline}%
{\let\mynext\LWR at donothing}{}%
-%
+% \end{macrocode}
+% \begin{macrocode}
\ifdefequal{\LWR at mynexttoken}{\lasthline}%
{\let\mynext\LWR at donothing}{}%
-%
+% \end{macrocode}
+% \begin{macrocode}
\ifdefequal{\LWR at mynexttoken}{\toprule}%
{\let\mynext\LWR at donothing}{}%
-%
+% \end{macrocode}
+% \begin{macrocode}
\ifdefequal{\LWR at mynexttoken}{\midrule}%
{\let\mynext\LWR at donothing}{}%
-%
+% \end{macrocode}
+% \begin{macrocode}
\ifdefequal{\LWR at mynexttoken}{\cmidrule}%
{\let\mynext\LWR at donothing}{}%
-%
+% \end{macrocode}
+% \changes{v0.56}{2018/05/02}{Fix: \cs{morecmidrules}}
+% \begin{macrocode}
+\ifdefequal{\LWR at mynexttoken}{\morecmidrules}%
+ {\let\mynext\LWR at donothing}{}%
+% \end{macrocode}
+% \begin{macrocode}
\ifdefequal{\LWR at mynexttoken}{\specialrule}%
{\let\mynext\LWR at donothing}{}%
-%
+% \end{macrocode}
+% \begin{macrocode}
\ifdefequal{\LWR at mynexttoken}{\cline}%
{\let\mynext\LWR at donothing}{}%
-%
+% \end{macrocode}
+% \begin{macrocode}
\ifdefequal{\LWR at mynexttoken}{\bottomrule}%
{\let\mynext\LWR at donothing}{}%
-%
+% \end{macrocode}
+% \begin{macrocode}
\ifdefequal{\LWR at mynexttoken}{\rowcolor}%
{\let\mynext\LWR at donothing}{}%
-%
+% \end{macrocode}
+% \begin{macrocode}
\ifdefequal{\LWR at mynexttoken}{\arrayrulecolor}%
{\let\mynext\LWR at donothing}{}%
-%
+% \end{macrocode}
+% \begin{macrocode}
\ifdefequal{\LWR at mynexttoken}{\doublerulesepcolor}%
{\let\mynext\LWR at donothing}{}%
-%
+% \end{macrocode}
+% \begin{macrocode}
\ifdefequal{\LWR at mynexttoken}{\warpprintonly}%
{\let\mynext\LWR at donothing}{}%
-%
+% \end{macrocode}
+% \begin{macrocode}
\ifdefequal{\LWR at mynexttoken}{\warpHTMLonly}%
{\let\mynext\LWR at donothing}{}%
-%
+% \end{macrocode}
+% \begin{macrocode}
\ifdefequal{\LWR at mynexttoken}{\ldelim}%
{\let\mynext\LWR at donothing}{}%
-%
+% \end{macrocode}
+% \begin{macrocode}
\ifdefequal{\LWR at mynexttoken}{\rdelim}%
{\let\mynext\LWR at donothing}{}%
% \end{macrocode}
+% For \pkg{arydshln}:
+% \begin{macrocode}
+\ifdefequal{\LWR at mynexttoken}{\hdashline}%
+ {\let\mynext\LWR at donothing}{}%
+% \end{macrocode}
+% \begin{macrocode}
+\ifdefequal{\LWR at mynexttoken}{\cdashline}%
+ {\let\mynext\LWR at donothing}{}%
+% \end{macrocode}
+% \begin{macrocode}
+\ifdefequal{\LWR at mynexttoken}{\firsthdashline}%
+ {\let\mynext\LWR at donothing}{}%
+% \end{macrocode}
+% \begin{macrocode}
+\ifdefequal{\LWR at mynexttoken}{\lasthdashline}%
+ {\let\mynext\LWR at donothing}{}%
+% \end{macrocode}
% Ignore an empty line between rows:
% \changes{v0.45}{2017/12/06}{Fix: Empty line between rows.}
% \begin{macrocode}
@@ -21386,8 +21991,9 @@
\ifdefequal{\LWR at mynexttoken}{\par}%
{\let\mynext\LWR at donothing}{}%
% \end{macrocode}
-% no action for an \cs{end} token
%
+% No action for an \cs{end} token.
+%
% Add similar to the above for any other non-data tokens
% which might appear in the table.
%
@@ -21452,7 +22058,7 @@
-% \subsection{New \env{tabular} environment}
+% \subsection{HTML \env{tabular} environment}
% \codehtml
% \begin{macrocode}
@@ -21507,7 +22113,7 @@
\newcommand*{\LWR at HTMLhline}[1][]{%
\ifbool{FormatWP}%
{\LWR at docmidrule{1-\arabic{LWR at tabletotalcols}}}%
- {\booltrue{LWR at doinghline}}%
+ {\addtocounter{LWR at hlines}{1}}%
\LWR at getmynexttoken}%
}
{
@@ -21514,7 +22120,7 @@
\newcommand*{\LWR at HTMLhline}{%
\ifbool{FormatWP}%
{\LWR at docmidrule{1-\arabic{LWR at tabletotalcols}}}%
- {\booltrue{LWR at doinghline}}%
+ {\addtocounter{LWR at hlines}{1}}%
\LWR at getmynexttoken}%
}
}% AtBeginDocument
@@ -21577,7 +22183,8 @@
% \end{macrocode}
% Not yet doing any rules:
% \begin{macrocode}
-\global\boolfalse{LWR at doinghline}%
+\setcounter{LWR at hlines}{0}%
+\setcounter{LWR at hdashedlines}{0}%
\global\boolfalse{LWR at doingtbrule}%
\global\boolfalse{LWR at doingcmidrule}%
% \end{macrocode}
@@ -21679,7 +22286,8 @@
{\booltrue{LWR at doingtbrule}}%
}%
\LWR at getmynexttoken}%
-%
+% \end{macrocode}
+% \begin{macrocode}
\DeclareDocumentCommand{\midrule}{o d()}%
{%
\IfValueTF{##1}%
@@ -21687,29 +22295,67 @@
{%
\ifbool{FormatWP}%
{\LWR at docmidrule[##1](){1-\arabic{LWR at tabletotalcols}}}%
- {\booltrue{LWR at doinghline}}%
+ {\addtocounter{LWR at hlines}{1}}%
}%
\LWR at getmynexttoken}%
-%
-\DeclareDocumentCommand{\cmidrule}{O{\LWR at cmidrulewidth} d() m}%
-{\LWR at docmidrule[##1](##2){##3}\LWR at getmynexttoken}%
-%
-\DeclareDocumentCommand{\bottomrule}{o d()}%
- {%
- \IfValueTF{##1}%
+% \end{macrocode}
+% \begin{macrocode}
+\DeclareDocumentCommand{\cmidrule}{O{\LWR at cmidrulewidth} d() m}{%
+ \LWR at docmidrule[##1](##2){##3}%
+ \LWR at getmynexttoken%
+}%
+% \end{macrocode}
+% \begin{macrocode}
+\DeclareDocumentCommand{\bottomrule}{o d()}{%
+ \IfValueTF{##1}%
+ {\LWR at docmidrule[##1](){1-\arabic{LWR at tabletotalcols}}}%
+ {%
+ \ifbool{FormatWP}%
{\LWR at docmidrule[##1](){1-\arabic{LWR at tabletotalcols}}}%
- {%
- \ifbool{FormatWP}%
- {\LWR at docmidrule[##1](){1-\arabic{LWR at tabletotalcols}}}%
- {\booltrue{LWR at doingtbrule}}%
- }%
- \LWR at getmynexttoken}%
-%
+ {\booltrue{LWR at doingtbrule}}%
+ }%
+ \LWR at getmynexttoken%
+}%
+% \end{macrocode}
+% \begin{macrocode}
\DeclareDocumentCommand{\addlinespace}{o}{}%
+% \end{macrocode}
+% \begin{macrocode}
\DeclareDocumentCommand{\morecmidrules}{}{}%
+% \end{macrocode}
+% \begin{macrocode}
\DeclareDocumentCommand{\specialrule}{m m m d()}%
{\LWR at docmidrule[##1](){1-\arabic{LWR at tabletotalcols}}\LWR at getmynexttoken}%
% \end{macrocode}
+% \begin{macrocode}
+\DeclareDocumentCommand{\hdashline}{o}{%
+ \ifbool{FormatWP}%
+ {\LWR at docdashline{1-\arabic{LWR at tabletotalcols}}}%
+ {\addtocounter{LWR at hdashedlines}{1}}%
+ \LWR at getmynexttoken%
+}%
+% \end{macrocode}
+% \begin{macrocode}
+\DeclareDocumentCommand{\cdashline}{m}{%
+ \LWR at docdashline{##1}\LWR at getmynexttoken%
+}%
+% \end{macrocode}
+% \begin{macrocode}
+\DeclareDocumentCommand{\firsthdashline}{o}{%
+ \ifbool{FormatWP}%
+ {\LWR at docdashline{1-\arabic{LWR at tabletotalcols}}}%
+ {\addtocounter{LWR at hdashedlines}{1}}%
+ \LWR at getmynexttoken%
+}%
+% \end{macrocode}
+% \begin{macrocode}
+\DeclareDocumentCommand{\lasthdashline}{o}{%
+ \ifbool{FormatWP}%
+ {\LWR at docdashline{1-\arabic{LWR at tabletotalcols}}}%
+ {\addtocounter{LWR at hdashedlines}{1}}%
+ \LWR at getmynexttoken%
+}%
+% \end{macrocode}
% The following create data cells and will have no more data in this cell,
% so we do not want to look ahead for a possible data cell,
% so do not want to use \cs{LWR at getmynexttoken}.
@@ -23040,30 +23686,17 @@
\IfFileExists{\jobname.#1}{%
\LWR at traceinfo{LWR at myshorttoc: loading}%
% \end{macrocode}
-% Make |@| a regular letter.
+%
% Many of the commands in the file will have |@| characters in them, so |@|
% \watchout
% must be made a regular letter.
-%
-% ^^A *88*
-% ^^A For \prog{pdflatex}, also change to |latin1| encoding.
-% ^^A When reading back a file with accented characters,
-% ^^A \watchout[disabled]
-% ^^A the encoding change seems to be required, rather than leaving it |utf8|.
% \begin{macrocode}
\begingroup%
-% \end{macrocode}
-% ^^A \ifxetexorluatex%
-% ^^A \else
-% ^^A \inputencoding{latin1}% currently disabled
-% ^^A \fi
-% \begin{macrocode}
\makeatletter%
% \end{macrocode}
% Read in the \TOC\ file:
% \begin{macrocode}
\@input{\jobname.#1}%
-% \makeatother
\endgroup%
}%
{}%
@@ -23809,7 +24442,7 @@
\RenewDocumentCommand{\InlineClass}{o m +m}{##3}%
\RenewDocumentEnvironment{BlockClass}{o m}{}{}%
\renewcommand{\BlockClassSingle}[2]{##2}%
-\LetLtxMacro{\hspace}{\LWR at orighspace}%
+\LetLtxMacro\hspace\LWR at orighspace%
% \end{macrocode}
% \changes{v0.48}{2018/02/04}{Fix: Spacing in \SVG\ math, \env{lateximage}, \tikz.}
% \begin{macrocode}
@@ -23832,6 +24465,7 @@
% \end{macrocode}
% \begin{macrocode}
\let\,\LWR at origcomma% disable HTML short unbreakable space
+\let\thinspace\LWR at origthinspace% disable HTML short unbreakable space
\let\textellipsis\LWR at origtextellipsis%
\let\textless\LWR at origtextless%
\let\textgreater\LWR at origtextgreater%
@@ -23893,7 +24527,7 @@
\LetLtxMacro\mbox\LWR at origmbox%
% \end{macrocode}
% \begin{macrocode}
-\let\makebox\LWR at origmakebox%
+\LetLtxMacro\makebox\LWR at origmakebox%
\let\fbox\LWRprint at fbox%
\let\fboxBlock\LWRprint at fbox%
\LetLtxMacro\fminipage\LWRprint at fminipage%
@@ -27802,19 +28436,35 @@
% Prints the text with the current font choices.
%
% \changes{v0.48}{2018/02/02}{Added. Improves font control.}
+% \changes{v0.56}{2018/04/27}{Added \attribute{span.textbf}, etc.}
% \begin{macrocode}
\newcommand*{\LWR at textcurrentfont}[1]{%
-\csuse{text\LWR at f@family}{%
-\csuse{text\LWR at f@series}{%
-\csuse{text\LWR at f@shape}{%
-#1%
-}%
-}%
-}%
+\InlineClass{%
+ text\LWR at f@family\LWR at origtilde{}%
+ text\LWR at f@series\LWR at origtilde{}%
+ text\LWR at f@shape%
+ }%
+ {#1}%
}
% \end{macrocode}
% \end{macro}
+% \begin{environment}{LWR at blocktextcurrentfont}
+%
+% Prints the contents with the current font choices.
+%
+% \changes{v0.56}{2018/05/09}{Added \attribute{div.textbf}, etc.}
+% \begin{macrocode}
+\newenvironment*{LWR at blocktextcurrentfont}{%
+\BlockClass{%
+ text\LWR at f@family\LWR at origtilde{}%
+ text\LWR at f@series\LWR at origtilde{}%
+ text\LWR at f@shape%
+ }%
+}{\endBlockClass}
+% \end{macrocode}
+% \end{environment}
+
% \changes{v0.48}{2018/02/02}{Improved font control.}
% \changes{v0.50}{2018/02/20}{Robustify macros.}
%
@@ -28034,9 +28684,11 @@
% |\,| must be redefined after |\RequirePackage{printlen}|
% \changes{v0.45}{2017/12/29}{Improved: Robust \cs{\,}, \cs{~}, and \cs{textellipsis} commands.}
+% \changes{v0.56}{2018/05/09}{Added \cs{thinspace}.}
% Direct-formatting space commands become \HTML\ entities:
% \begin{macrocode}
\renewrobustcmd*{\,}{\HTMLunicode{202f}} % HTML thin non-breakable space
+\renewrobustcmd*{\thinspace}{\HTMLunicode{202f}} % HTML thin non-breakable space
% \end{macrocode}
% ^^A \renewcommand*{\,}{\HTMLunicode{2009}} % HTML thin wrappable space
% ^^A \renewcommand*{\,}{\HTMLentity{nbsp}} % regular-width non-breakable space
@@ -28309,7 +28961,7 @@
%
% Handles special minipage \& horizontal space interactions.
% \begin{macrocode}
-\LetLtxMacro{\hspace}{\LWR at hspace}
+\LetLtxMacro\hspace\LWR at hspace
% \end{macrocode}
% \end{macro}
@@ -29983,8 +30635,129 @@
%
%
%
+% \iffalse
+%<*arydshln>
+% \fi
%
+% \part{lwarp-arydshln.sty}
+
+% \section{arydshln}
+%
+% \credits{Hiroshi Nakashima}
+%
+% \DescribePackage{arydshln}
+% \pkg{arydshln} heavily patches tabular code, so the
+% actual package is not used.
+% \pkg{arydshln} is emulated for \HTML\ \env{tabular},
+% and reverts to solid rules for \SVG\ math \env{array}
+% and \env{tabular} in a \env{lateximage}.
+%
+% CSS is not able to display a double-dashed border, so
+% a single-dashed rule is displayed as a single-dashed border, and
+% a double-dashed rule is displayed as a thicker single-dashed border.
+%
+% \changes{v0.56}{2018/05/02}{\pkg{arydshln}: Added.}
+%
+% \codehtml
+%
+% \pkg{array} is required to allow \cs{newcolumn} below.
+% \begin{macrocode}
+\RequirePackage{array}
+% \end{macrocode}
+% \begin{macrocode}
+\LWR at ProvidesPackageDrop{arydshln}
+% \end{macrocode}
+%
+% Ignored, but included for source compatibility:
+% \begin{macrocode}
+\newdimen\dashlinedash \dashlinedash4pt %
+\newdimen\dashlinegap \dashlinegap4pt %
+\let\hdashlinewidth\dashlinedash
+\let\hdashlinegap\dashlinegap
+
+\def\ADLnullwide{}
+\def\ADLsomewide{}
+\def\ADLnullwidehline{}
+\def\ADLsomewidehline{}
+
+\def\ADLactivate{}
+\def\ADLinactivate{}
+\newcommand*{\ADLdrawingmode}[1]{}
+\newcommand*{\ADLnoshorthanded}{}
+\newcommand*{\dashgapcolor}[2][]{}
+\newcommand*{\nodashgapcolor}{}
+% \end{macrocode}
+%
+% In a \env{lateximage}, revert to solid vertical rules:
+% \begin{macrocode}
+\appto\LWR at restoreorigformatting{
+\newcolumntype{:}{|}%
+\newcolumntype{;}[1]{|}%
+\LetLtxMacro\hdashline\hline%
+}
+% \end{macrocode}
+%
+%
+% Some of these macros are already defined as temporary placeholders in the
+% \pkg{lwarp} core, so they must be redefined here.
+%
+% The emulated defaults also work for an emulated print mode inside a \env{lateximage}:
+% \begin{macrocode}
+\def\hdashline{
+% \adl at hdashline\adl at ihdashline
+ \adl at hdashline\adl at inactivehdl
+}
+\def\adl at hdashline#1{\noalign{\ifnum0=`}\fi
+% \ifadl at zwhrule \vskip-\arrayrulewidth
+% \else
+% \adl at hline\adl at connect\arrayrulewidth
+ \hrule \@height \arrayrulewidth% lwarp
+% \fi
+ \@ifnextchar[%]
+ {#1}%
+ {#1[%
+% \dashlinedash/\dashlinegap
+ 1pt/1pt
+ ]}}
+% \def\adl at ihdashline[#1/#2]{\ifnum0=`{\fi}%
+% \multispan{\adl at columns}\unskip \adl at hcline\z@[#1/#2]%
+% \noalign{\ifnum0=`}\fi
+% \futurelet\@tempa\adl at xhline}
+\def\adl at inactivehdl[#1/#2]{
+% \ifadl at zwhrule \vskip-\arrayrulewidth \fi
+ \hrule\@height\arrayrulewidth
+ \futurelet\@tempa\adl at xhline}
+\def\adl at xhline{\ifx\@tempa\hline \adl at ixhline\fi
+ \ifx\@tempa\hdashline \adl at ixhline\fi
+ \ifnum0=`{\fi}}
+\def\adl at ixhline{\vskip\doublerulesep \adl at hline\relax\doublerulesep}
+\def\adl at hline#1#2{%
+% \@tempcnta#2
+% \global\advance\adl at totalheight\@tempcnta
+% \xdef\adl at rowsL{\adl at rowsL
+% (#1/\number\@tempcnta);}%
+% \xdef\adl at rowsR{\adl at rowsR
+% (#1/\number\@tempcnta);}
+}
+
+\def\cdashline#1{\noalign{\ifnum0=`}\fi
+ \@ifnextchar[%]
+% {\adl at cdline[#1]}%
+% {\adl at cdline[#1][\dashlinedash/\dashlinegap]}
+ {\adl at inactivecdl[#1]}%
+ {\adl at inactivecdl[#1][\dashlinedash/\dashlinegap]}
+}
+
+\def\adl at inactivecdl[#1-#2][#3]{\ifnum0=`{\fi}\cline{#1-#2}}
+% \end{macrocode}
+
% \iffalse
+%</arydshln>
+% \fi
+%
+%
+%
+% \iffalse
%<*atbegshi>
% \fi
%
@@ -35139,8 +35912,7 @@
%
% Float styles are ignored.
% \begin{macrocode}
-\newcommand{\floatstyle}[1]{%
-}
+\newcommand{\floatstyle}[1]{}
% \end{macrocode}
% \end{noindmacro}
@@ -39373,8 +40145,37 @@
%
%
%
+% \iffalse
+%<*lua-check-hyphen>
+% \fi
%
+% \part{lwarp-lua-check-hyphen.sty}
+%
+% \section{lua-check-hyphen}
+%
+% \DescribePackage{lua-check-hyphen}
+% \pkg{lua-check-hyphen} is ignored.
+%
+% \changes{v0.56}{2018/04/26}{\pkg{lua-check-hyphen}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR at ProvidesPackageDrop{lua-check-hyphen}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand*{\LuaCheckHyphen}[1]{}
+% \end{macrocode}
+%
% \iffalse
+%</lua-check-hyphen>
+% \fi
+%
+%
+%
+%
+% \iffalse
%<*luacolor>
% \fi
%
@@ -39905,7 +40706,7 @@
% \env{mdframed} environment may not work with the \HTML\ versions of the following,
% so restore them to their originals while inside \env{mdframed}:
% \begin{macrocode}
-\LetLtxMacro{\hspace}{\LWR at orighspace}%
+\LetLtxMacro\hspace\LWR at orighspace%
\LetLtxMacro\rule\LWR at origrule%
\LetLtxMacro\makebox\LWR at origmakebox%
\LWR at startpars%
@@ -41067,6 +41868,7 @@
% \begin{macrocode}
\LWR at tdstartstyles%
\LWR at addcmidrulewidth%
+\LWR at addcdashline%
\LWR at addtabularrulecolors%
\LWR at tdendstyles%
}%
@@ -42414,6 +43216,8 @@
% \pkg{paralist} is supported with minor changes.
% \changes{v0.34}{2017/07/27}{\pkg{paralist}: Added.}
+% \changes{v0.56}{2018/05/06}{\pkg{paralist}: Fixes for
+% \env{compactenum}, \env{compactitem}, \env{compactdesc}.}
%
% \codehtml
% \begin{macrocode}
@@ -42422,12 +43226,12 @@
%
% The compact environments are identical to the regular ones:
% \begin{macrocode}
-\AtBeginEnvironment{compactitem}{\LWR at itemizestart}
-\AtBeginEnvironment{compactenum}{\LWR at enumeratestart}
-\AtBeginEnvironment{compactdesc}{\LWR at descriptionstart}
-\AtEndEnvironment{compactitem}{\LWR at listend}
-\AtEndEnvironment{compactenum}{\LWR at listend}
-\AtEndEnvironment{compactdesc}{\LWR at listend}
+\LetLtxMacro\compactitem\itemize
+\LetLtxMacro\compactenum\enumerate
+\LetLtxMacro\compactdesc\description
+\LetLtxMacro\endcompactitem\enditemize
+\LetLtxMacro\endcompactenum\endenumerate
+\LetLtxMacro\endcompactdesc\enddescription
% \end{macrocode}
%
% For the inline environments, revert \cs{item} to its original print-mode version:
@@ -42450,9 +43254,82 @@
%
%
%
+% \iffalse
+%<*parnotes>
+% \fi
%
+% \part{lwarp-parnotes.sty}
%
+% \section{parnotes}
+%
+% \credits{Chelsea Hughes}
+%
+% \DescribePackage{parnotes}
+% \pkg{parnotes} is supported with some patches.
+%
+% \changes{v0.56}{2018/05/08}{\pkg{parnotes}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR at ProvidesPackagePass{parnotes}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\long\def\PN at parnote@real#1#2{%
+ \parnotemark{#1}%
+ % Unless this is the first parnote in \PN at text, add a separator first
+ \unless\ifx\PN at text\@empty\g at addto@macro\PN at text{\parnoteintercmd}\fi
+ % Redefine \@currentlabel to the parnote label, so \label works
+ \g at addto@macro\PN at text{%
+% \phantomsection%
+ \def\@currentlabel{#1}%
+ \def\cref at currentlabel{% lwarp
+ [parnotemark][\arabic{parnotemark}][]\theparnotemark%
+ }%
+ }%
+ \g at addto@macro\PN at text{%
+ \LWR at textcurrentfont{% lwarp
+ \parnotemark{#1}\nolinebreak\thinspace#2%
+ }%
+ }%
+}
+
+\def\PN at parnotes@real{%
+ % We call \par later, so this avoids recursion with \PN at parnotes@auto
+ \PN at inparnotestrue
+ \unless\ifvmode\par\fi
+ % Avoid page breaks between a paragraph and its parnotes
+ \nopagebreak\addvspace{\parnotevskip}%
+ \LWR at forcenewpage% lwarp
+ \begin{BlockClass}{footnotes}% lwarp
+ {\parnotefmt{\PN at text}\par}%
+ \end{BlockClass}% lwarp
+ \global\def\PN at text{}%
+ \addvspace{\parnotevskip}%
+ %
+ % These can be enabled or disabled by package options
+ %
+ \PN at disable@indent
+ \PN at reset@optional
+ \PN at inparnotesfalse
+}
+
+\AtBeginDocument{
+\crefname{parnotemark}{paragraph note}{paragraph notes}
+\Crefname{parnotemark}{Paragraph note}{Paragraph notes}
+}
+% \end{macrocode}
+%
% \iffalse
+%</parnotes>
+% \fi
+%
+%
+%
+%
+%
+% \iffalse
%<*parskip>
% \fi
@@ -42910,8 +43787,55 @@
%
%
%
+% \iffalse
+%<*quoting>
+% \fi
%
+% \part{lwarp-quoting.sty}
+
+% \section{quoting}
+%
+% \credits{Thomas Titz}
+%
+% \DescribePackage{quoting}
+% \pkg{quoting} is patched for use by \pkg{lwarp}.
+%
+% \changes{v0.56}{2018/05/09}{\pkg{quoting}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR at ProvidesPackagePass{quoting}
+% \end{macrocode}
+
+% \begin{macrocode}
+\xpatchcmd{\quoting}{\quo at begintext}
+ {\begin{LWR at blocktextcurrentfont}\quo at begintext}
+ {}
+ {
+ \PackageError{lwarp}
+ {Unable to patch the quoting package}
+ {Please contact the author of lwarp.}
+ }
+\xpatchcmd{\endquoting}{\quo at endtext}
+ {\quo at endtext\end{LWR at blocktextcurrentfont}}
+ {}
+ {
+ \PackageError{lwarp}
+ {Unable to patch the quoting package}
+ {Please contact the author of lwarp.}
+ }
+% \end{macrocode}
+
% \iffalse
+%</quoting>
+% \fi
+%
+%
+%
+%
+%
+% \iffalse
%<*ragged2e>
% \fi
%
@@ -47327,10 +48251,39 @@
%
%
%
+% \iffalse
+%<*tocenter>
+% \fi
%
+% \part{lwarp-tocenter.sty}
%
+% \section{tocenter}
%
+% \DescribePackage{tocenter}
+% \pkg{tocenter} is ignored.
+%
+% \changes{v0.56}{2018/04/26}{\pkg{tocenter}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR at ProvidesPackageDrop{tocenter}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\NewDocumentCommand{\ToCenter}{s o m m}{}
+\NewDocumentCommand{\FromMargins}{s o m m m m}{}
+% \end{macrocode}
+%
% \iffalse
+%</tocenter>
+% \fi
+%
+%
+%
+%
+%
+% \iffalse
%<*tocloft>
% \fi
@@ -48278,7 +49231,7 @@
{%
text-decoration:underline;%
text-decoration-skip: auto;%
- text-decoration-style:dotted%
+ text-decoration-style: dotted%
}%
{dotuline}{#1}%
}
@@ -48333,9 +49286,34 @@
%
%
%
+% \iffalse
+%<*underscore>
+% \fi
%
+% \part{lwarp-underscore.sty}
%
+% \section{underscore}
+%
+% \DescribePackage{underscore}
+% \pkg{underscore} is ignored.
+%
+% \changes{v0.56}{2018/05/09}{\pkg{underscore}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR at ProvidesPackageDrop{underscore}
+% \end{macrocode}
+%
% \iffalse
+%</underscore>
+% \fi
+%
+%
+%
+%
+%
+% \iffalse
%<*upref>
% \fi
%
Modified: trunk/Master/texmf-dist/source/latex/lwarp/lwarp.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/lwarp/lwarp.ins 2018-05-12 21:24:16 UTC (rev 47694)
+++ trunk/Master/texmf-dist/source/latex/lwarp/lwarp.ins 2018-05-12 21:24:56 UTC (rev 47695)
@@ -52,6 +52,7 @@
\file{lwarp-appendix.sty}{\from{lwarp.dtx}{appendix}}
\file{lwarp-arabicfront.sty}{\from{lwarp.dtx}{arabicfront}}
\file{lwarp-array.sty}{\from{lwarp.dtx}{array}}
+\file{lwarp-arydshln.sty}{\from{lwarp.dtx}{arydshln}}
\file{lwarp-atbegshi.sty}{\from{lwarp.dtx}{atbegshi}}
\file{lwarp-authblk.sty}{\from{lwarp.dtx}{authblk}}
\file{lwarp-axodraw2.sty}{\from{lwarp.dtx}{axodraw2}}
@@ -174,6 +175,7 @@
\file{lwarp-ltcaption.sty}{\from{lwarp.dtx}{ltcaption}}
\file{lwarp-ltxgrid.sty}{\from{lwarp.dtx}{ltxgrid}}
\file{lwarp-ltxtable.sty}{\from{lwarp.dtx}{ltxtable}}
+\file{lwarp-lua-check-hyphen.sty}{\from{lwarp.dtx}{lua-check-hyphen}}
\file{lwarp-luacolor.sty}{\from{lwarp.dtx}{luacolor}}
\file{lwarp-luatodonotes.sty}{\from{lwarp.dtx}{luatodonotes}}
\file{lwarp-magaz.sty}{\from{lwarp.dtx}{magaz}}
@@ -212,6 +214,7 @@
\file{lwarp-pagenote.sty}{\from{lwarp.dtx}{pagenote}}
\file{lwarp-pagesel.sty}{\from{lwarp.dtx}{pagesel}}
\file{lwarp-paralist.sty}{\from{lwarp.dtx}{paralist}}
+\file{lwarp-parnotes.sty}{\from{lwarp.dtx}{parnotes}}
\file{lwarp-parskip.sty}{\from{lwarp.dtx}{parskip}}
\file{lwarp-pbox.sty}{\from{lwarp.dtx}{pbox}}
\file{lwarp-pdfrender.sty}{\from{lwarp.dtx}{pdfrender}}
@@ -224,6 +227,7 @@
\file{lwarp-prettyref.sty}{\from{lwarp.dtx}{prettyref}}
\file{lwarp-preview.sty}{\from{lwarp.dtx}{preview}}
\file{lwarp-quotchap.sty}{\from{lwarp.dtx}{quotchap}}
+\file{lwarp-quoting.sty}{\from{lwarp.dtx}{quoting}}
\file{lwarp-ragged2e.sty}{\from{lwarp.dtx}{ragged2e}}
\file{lwarp-realscripts.sty}{\from{lwarp.dtx}{realscripts}}
\file{lwarp-relsize.sty}{\from{lwarp.dtx}{relsize}}
@@ -277,6 +281,7 @@
\file{lwarp-titling.sty}{\from{lwarp.dtx}{titling}}
\file{lwarp-tocbasic.sty}{\from{lwarp.dtx}{tocbasic}}
\file{lwarp-tocbibind.sty}{\from{lwarp.dtx}{tocbibind}}
+\file{lwarp-tocenter.sty}{\from{lwarp.dtx}{tocenter}}
\file{lwarp-tocloft.sty}{\from{lwarp.dtx}{tocloft}}
\file{lwarp-tocstyle.sty}{\from{lwarp.dtx}{tocstyle}}
\file{lwarp-todo.sty}{\from{lwarp.dtx}{todo}}
@@ -286,6 +291,7 @@
\file{lwarp-turnthepage.sty}{\from{lwarp.dtx}{turnthepage}}
\file{lwarp-typearea.sty}{\from{lwarp.dtx}{typearea}}
\file{lwarp-ulem.sty}{\from{lwarp.dtx}{ulem}}
+\file{lwarp-underscore.sty}{\from{lwarp.dtx}{underscore}}
\file{lwarp-upref.sty}{\from{lwarp.dtx}{upref}}
\file{lwarp-url.sty}{\from{lwarp.dtx}{url}}
\file{lwarp-verse.sty}{\from{lwarp.dtx}{verse}}
Added: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-arydshln.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-arydshln.sty (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-arydshln.sty 2018-05-12 21:24:56 UTC (rev 47695)
@@ -0,0 +1,72 @@
+%%
+%% This is file `lwarp-arydshln.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lwarp.dtx (with options: `arydshln')
+%% This is a generated file.
+%% Copyright 2016-2018 Brian Dunn
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+
+\RequirePackage{array}
+\LWR at ProvidesPackageDrop{arydshln}
+\newdimen\dashlinedash \dashlinedash4pt %
+\newdimen\dashlinegap \dashlinegap4pt %
+\let\hdashlinewidth\dashlinedash
+\let\hdashlinegap\dashlinegap
+
+\def\ADLnullwide{}
+\def\ADLsomewide{}
+\def\ADLnullwidehline{}
+\def\ADLsomewidehline{}
+
+\def\ADLactivate{}
+\def\ADLinactivate{}
+\newcommand*{\ADLdrawingmode}[1]{}
+\newcommand*{\ADLnoshorthanded}{}
+\newcommand*{\dashgapcolor}[2][]{}
+\newcommand*{\nodashgapcolor}{}
+\appto\LWR at restoreorigformatting{
+\newcolumntype{:}{|}%
+\newcolumntype{;}[1]{|}%
+\LetLtxMacro\hdashline\hline%
+}
+\def\hdashline{
+ \adl at hdashline\adl at inactivehdl
+}
+\def\adl at hdashline#1{\noalign{\ifnum0=`}\fi
+ \hrule \@height \arrayrulewidth% lwarp
+ \@ifnextchar[%]
+ {#1}%
+ {#1[%
+ 1pt/1pt
+ ]}}
+\def\adl at inactivehdl[#1/#2]{
+ \hrule\@height\arrayrulewidth
+ \futurelet\@tempa\adl at xhline}
+\def\adl at xhline{\ifx\@tempa\hline \adl at ixhline\fi
+ \ifx\@tempa\hdashline \adl at ixhline\fi
+ \ifnum0=`{\fi}}
+\def\adl at ixhline{\vskip\doublerulesep \adl at hline\relax\doublerulesep}
+\def\adl at hline#1#2{%
+}
+
+\def\cdashline#1{\noalign{\ifnum0=`}\fi
+ \@ifnextchar[%]
+ {\adl at inactivecdl[#1]}%
+ {\adl at inactivecdl[#1][\dashlinedash/\dashlinegap]}
+}
+
+\def\adl at inactivecdl[#1-#2][#3]{\ifnum0=`{\fi}\cline{#1-#2}}
+
+\endinput
+%%
+%% End of file `lwarp-arydshln.sty'.
Property changes on: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-arydshln.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-float.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-float.sty 2018-05-12 21:24:16 UTC (rev 47694)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-float.sty 2018-05-12 21:24:56 UTC (rev 47695)
@@ -36,8 +36,7 @@
\SetupFloatingEnvironment{#1}{placement=#2}%
}
-\newcommand{\floatstyle}[1]{%
-}
+\newcommand{\floatstyle}[1]{}
\NewDocumentCommand{\restylefloat}{s m}{%
}
Added: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-lua-check-hyphen.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-lua-check-hyphen.sty (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-lua-check-hyphen.sty 2018-05-12 21:24:56 UTC (rev 47695)
@@ -0,0 +1,22 @@
+%%
+%% This is file `lwarp-lua-check-hyphen.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lwarp.dtx (with options: `lua-check-hyphen')
+%% This is a generated file.
+%% Copyright 2016-2018 Brian Dunn
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+\LWR at ProvidesPackageDrop{lua-check-hyphen}
+\newcommand*{\LuaCheckHyphen}[1]{}
+\endinput
+%%
+%% End of file `lwarp-lua-check-hyphen.sty'.
Property changes on: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-lua-check-hyphen.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-mdframed.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-mdframed.sty 2018-05-12 21:24:16 UTC (rev 47694)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-mdframed.sty 2018-05-12 21:24:56 UTC (rev 47695)
@@ -68,7 +68,7 @@
{box-shadow: none ;}
\LWR at orignewline
"}
-\LetLtxMacro{\hspace}{\LWR at orighspace}%
+\LetLtxMacro\hspace\LWR at orighspace%
\LetLtxMacro\rule\LWR at origrule%
\LetLtxMacro\makebox\LWR at origmakebox%
\LWR at startpars%
Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-multirow.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-multirow.sty 2018-05-12 21:24:16 UTC (rev 47694)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-multirow.sty 2018-05-12 21:24:56 UTC (rev 47695)
@@ -42,6 +42,7 @@
"%
\LWR at tdstartstyles%
\LWR at addcmidrulewidth%
+\LWR at addcdashline%
\LWR at addtabularrulecolors%
\LWR at tdendstyles%
}%
Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-paralist.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-paralist.sty 2018-05-12 21:24:16 UTC (rev 47694)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-paralist.sty 2018-05-12 21:24:56 UTC (rev 47695)
@@ -17,12 +17,12 @@
%% version 2005/12/01 or later.
\LWR at ProvidesPackagePass{paralist}
-\AtBeginEnvironment{compactitem}{\LWR at itemizestart}
-\AtBeginEnvironment{compactenum}{\LWR at enumeratestart}
-\AtBeginEnvironment{compactdesc}{\LWR at descriptionstart}
-\AtEndEnvironment{compactitem}{\LWR at listend}
-\AtEndEnvironment{compactenum}{\LWR at listend}
-\AtEndEnvironment{compactdesc}{\LWR at listend}
+\LetLtxMacro\compactitem\itemize
+\LetLtxMacro\compactenum\enumerate
+\LetLtxMacro\compactdesc\description
+\LetLtxMacro\endcompactitem\enditemize
+\LetLtxMacro\endcompactenum\endenumerate
+\LetLtxMacro\endcompactdesc\enddescription
\AtBeginEnvironment{inparaitem}{\LetLtxMacro\item\LWR at origitem}
\AtBeginEnvironment{inparaenum}{\LetLtxMacro\item\LWR at origitem}
\AtBeginEnvironment{inparadesc}{\LetLtxMacro\item\LWR at origitem}
Added: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-parnotes.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-parnotes.sty (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-parnotes.sty 2018-05-12 21:24:56 UTC (rev 47695)
@@ -0,0 +1,63 @@
+%%
+%% This is file `lwarp-parnotes.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lwarp.dtx (with options: `parnotes')
+%% This is a generated file.
+%% Copyright 2016-2018 Brian Dunn
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+\LWR at ProvidesPackagePass{parnotes}
+\long\def\PN at parnote@real#1#2{%
+ \parnotemark{#1}%
+ % Unless this is the first parnote in \PN at text, add a separator first
+ \unless\ifx\PN at text\@empty\g at addto@macro\PN at text{\parnoteintercmd}\fi
+ % Redefine \@currentlabel to the parnote label, so \label works
+ \g at addto@macro\PN at text{%
+ \def\@currentlabel{#1}%
+ \def\cref at currentlabel{% lwarp
+ [parnotemark][\arabic{parnotemark}][]\theparnotemark%
+ }%
+ }%
+ \g at addto@macro\PN at text{%
+ \LWR at textcurrentfont{% lwarp
+ \parnotemark{#1}\nolinebreak\thinspace#2%
+ }%
+ }%
+}
+
+\def\PN at parnotes@real{%
+ % We call \par later, so this avoids recursion with \PN at parnotes@auto
+ \PN at inparnotestrue
+ \unless\ifvmode\par\fi
+ % Avoid page breaks between a paragraph and its parnotes
+ \nopagebreak\addvspace{\parnotevskip}%
+ \LWR at forcenewpage% lwarp
+ \begin{BlockClass}{footnotes}% lwarp
+ {\parnotefmt{\PN at text}\par}%
+ \end{BlockClass}% lwarp
+ \global\def\PN at text{}%
+ \addvspace{\parnotevskip}%
+ %
+ % These can be enabled or disabled by package options
+ %
+ \PN at disable@indent
+ \PN at reset@optional
+ \PN at inparnotesfalse
+}
+
+\AtBeginDocument{
+\crefname{parnotemark}{paragraph note}{paragraph notes}
+\Crefname{parnotemark}{Paragraph note}{Paragraph notes}
+}
+\endinput
+%%
+%% End of file `lwarp-parnotes.sty'.
Property changes on: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-parnotes.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-quoting.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-quoting.sty (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-quoting.sty 2018-05-12 21:24:56 UTC (rev 47695)
@@ -0,0 +1,40 @@
+%%
+%% This is file `lwarp-quoting.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lwarp.dtx (with options: `quoting')
+%% This is a generated file.
+%% Copyright 2016-2018 Brian Dunn
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+
+\LWR at ProvidesPackagePass{quoting}
+
+\xpatchcmd{\quoting}{\quo at begintext}
+ {\begin{LWR at blocktextcurrentfont}\quo at begintext}
+ {}
+ {
+ \PackageError{lwarp}
+ {Unable to patch the quoting package}
+ {Please contact the author of lwarp.}
+ }
+\xpatchcmd{\endquoting}{\quo at endtext}
+ {\quo at endtext\end{LWR at blocktextcurrentfont}}
+ {}
+ {
+ \PackageError{lwarp}
+ {Unable to patch the quoting package}
+ {Please contact the author of lwarp.}
+ }
+
+\endinput
+%%
+%% End of file `lwarp-quoting.sty'.
Property changes on: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-quoting.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-tocenter.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-tocenter.sty (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-tocenter.sty 2018-05-12 21:24:56 UTC (rev 47695)
@@ -0,0 +1,23 @@
+%%
+%% This is file `lwarp-tocenter.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lwarp.dtx (with options: `tocenter')
+%% This is a generated file.
+%% Copyright 2016-2018 Brian Dunn
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+\LWR at ProvidesPackageDrop{tocenter}
+\NewDocumentCommand{\ToCenter}{s o m m}{}
+\NewDocumentCommand{\FromMargins}{s o m m m m}{}
+\endinput
+%%
+%% End of file `lwarp-tocenter.sty'.
Property changes on: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-tocenter.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-ulem.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-ulem.sty 2018-05-12 21:24:16 UTC (rev 47694)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-ulem.sty 2018-05-12 21:24:56 UTC (rev 47695)
@@ -69,7 +69,7 @@
{%
text-decoration:underline;%
text-decoration-skip: auto;%
- text-decoration-style:dotted%
+ text-decoration-style: dotted%
}%
{dotuline}{#1}%
}
Added: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-underscore.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-underscore.sty (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-underscore.sty 2018-05-12 21:24:56 UTC (rev 47695)
@@ -0,0 +1,21 @@
+%%
+%% This is file `lwarp-underscore.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lwarp.dtx (with options: `underscore')
+%% This is a generated file.
+%% Copyright 2016-2018 Brian Dunn
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+\LWR at ProvidesPackageDrop{underscore}
+\endinput
+%%
+%% End of file `lwarp-underscore.sty'.
Property changes on: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp-underscore.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/lwarp/lwarp.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/lwarp/lwarp.sty 2018-05-12 21:24:16 UTC (rev 47694)
+++ trunk/Master/texmf-dist/tex/latex/lwarp/lwarp.sty 2018-05-12 21:24:56 UTC (rev 47695)
@@ -17,7 +17,7 @@
%% version 2005/12/01 or later.
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
\ProvidesPackage{lwarp}
- [2018/04/26 v0.55 Allows LaTeX to directly produce HTML5 output.]
+ [2018/05/12 v0.56 Allows LaTeX to directly produce HTML5 output.]
@@ -394,6 +394,7 @@
\LWR at loadafter{ltcaption}
\LWR at loadafter{ltxgrid}
\LWR at loadafter{ltxtable}
+\LWR at loadafter{lua-check-hyphen}
\LWR at loadafter{luacolor}
\LWR at loadafter{luatodonotes}
\LWR at loadafter{magaz}
@@ -429,6 +430,7 @@
\LWR at notmemoirloadafter{pagenote}
\LWR at loadafter{pagesel}
\LWR at loadafter{paralist}
+\LWR at loadafter{parnotes}
\LWR at notmemoirloadafter{parskip}
\LWR at loadafter{pbox}
\LWR at loadafter{pdfrender}
@@ -441,6 +443,7 @@
\LWR at loadafter{prettyref}
\LWR at loadafter{preview}
\LWR at loadafter{quotchap}
+\LWR at loadafter{quoting}
\LWR at loadafter{ragged2e}
\LWR at loadafter{realscripts}
\LWR at loadafter{relsize}
@@ -488,6 +491,7 @@
\LWR at loadafter{titletoc}
\LWR at notmemoirloadafter{titling}
\LWR at notmemoirloadafter{tocbibind}
+\LWR at loadafter{tocenter}
\LWR at notmemoirloadafter{tocloft}
\LWR at loadafter{tocstyle}
\LWR at loadafter{todo}
@@ -496,6 +500,7 @@
\LWR at loadafter{trivfloat}
\LWR at loadafter{turnthepage}
\LWR at loadafter{ulem}
+\LWR at loadafter{underscore}
\LWR at loadafter{upref}
\LWR at loadafter{url}
\LWR at loadafter{varioref}% no lwarp package provided
@@ -938,6 +943,7 @@
\LetLtxMacro\LWR at origmakebox\makebox
\chardef\LWR at origpound=`\#
\let\LWR at origcomma\,
+\let\LWR at origthinspace\thinspace
\let\LWR at origtilde~
\let\LWR at origenskip\enskip
\let\LWR at origquad\quad
@@ -1138,6 +1144,7 @@
}
\immediate\write\LWR at quickfile{htmlfilename = "\HTMLFilename"}
\immediate\write\LWR at quickfile{latexmk = "\ifbool{LWR at latexmk}{true}{false}"}
+\immediate\write\LWR at quickfile{shellescape = "\ifshellescape true\else false\fi"}
\immediate\write\LWR at quickfile{xindylanguage = "\LWR at xindyLanguage"}
\immediate\write\LWR at quickfile{xindycodepage = "\LWR at xindyCodepage"}
\immediate\write\LWR at quickfile{xindystyle = "\LWR at xindyStyle"}
@@ -1168,6 +1175,7 @@
}
\immediate\write\LWR at quickfile{htmlfilename = "\HTMLFilename"}
\immediate\write\LWR at quickfile{latexmk = "\ifbool{LWR at latexmk}{true}{false}"}
+\immediate\write\LWR at quickfile{shellescape = "\ifshellescape true\else false\fi"}
\immediate\write\LWR at quickfile{xindylanguage = "\LWR at xindyLanguage"}
\immediate\write\LWR at quickfile{xindycodepage = "\LWR at xindyCodepage"}
\immediate\write\LWR at quickfile{xindystyle = "\LWR at xindyStyle"}
@@ -1237,7 +1245,7 @@
div.hidden, span.hidden { display: none ; }
-kbd {
+kbd, span.texttt {
font-family: "DejaVu Mono", "Bitstream Vera Mono", "Lucida Console",
"Nimbus Mono L", "Liberation Mono", "FreeMono", "Andale Mono",
"Courier New", monospace;
@@ -1246,22 +1254,24 @@
pre { padding: 3pt ; }
-span.strong { font-weight: bold; }
+span.strong, span.textbf, div.strong, div.textbf { font-weight: bold; }
-span.textmd { font-weight: normal; }
+span.textit, div.textit { font-style: italic; }
-span.textsc { font-variant: small-caps; }
+span.textmd, div.textmd { font-weight: normal; }
-span.textsl { font-style: oblique; }
+span.textsc, div.textsc { font-variant: small-caps; }
-span.textup { font-variant: normal; }
+span.textsl, div.textsl { font-style: oblique; }
-span.textrm {
+span.textup, div.textup { font-variant: normal; }
+
+span.textrm, div.textrm {
font-family: "DejaVu Serif", "Bitstream Vera Serif",
"Lucida Bright", Georgia, serif;
}
-span.textsf {
+span.textsf, div.textsf {
font-family: "DejaVu Sans", "Bitstream Vera Sans",
Geneva, Verdana, sans-serif ;
}
@@ -1540,8 +1550,7 @@
.footnotes {
font-size: .85em ;
- margin: 3ex 1em 0ex 1em ;
- padding-bottom: 1ex ;
+ margin: 3ex 2em 0ex 2em ;
border-top: 1px solid silver ;
}
@@ -1583,7 +1592,7 @@
{ margin-bottom: 2ex ; }
section.textbody div.footnotes{
- margin: 3ex 0em 0ex 0em ;
+ margin: 3ex 2em 0ex 2em ;
border-bottom: 2px solid silver ;
}
@@ -2055,8 +2064,15 @@
table td.tdB { text-align: center ; vertical-align: top ; }
table td.tvertbarl { border-left: 1px solid black }
+table td.tvertbarldouble { border-left: 4px double black }
table td.tvertbarr { border-right: 1px solid black }
+table td.tvertbarrdouble { border-right: 4px double black }
+table td.tvertbarldash { border-left: 1px dashed black }
+table td.tvertbarldoubledash { border-left: 2px dashed black }
+table td.tvertbarrdash { border-right: 1px dashed black }
+table td.tvertbarrdoubledash { border-right: 2px dashed black }
+
/* for cmidrules: */
table td.tdrule {
border-top: 1px solid #A0A0A0 ;
@@ -3103,7 +3119,7 @@
-- Print the usage of the lwarpmk command:
-printversion = "v0.55"
+printversion = "v0.56"
function printhelp ()
print ("lwarpmk: Use lwarpmk -h or lwarpmk --help for help.") ;
@@ -3126,6 +3142,7 @@
For use with latexmk or a Makefile:
Converts project_html.pdf to project_html.html and individual HTML files.
Finishes the HTML conversion even if there was a compile error.
+lwarpmk pdftosvg <list of file names>: Converts each PDF file to SVG.
lwarpmk clean [project]: Remove .aux, .toc, .lof/t, .idx, .ind, .log, *_html_inc.*, .gl*
lwarpmk cleanall [project]: Remove auxiliary files and also project.pdf, *.html
lwarpmk cleanlimages: Removes all images from the "lateximages" directory.
@@ -3148,6 +3165,7 @@
homehtmlfilename = "index" (or perhaps the project name)
htmlfilename = "" (or "projectname" - filename prefix)
latexmk = "false" (or "true" to use latexmk to build PDFs)
+shellescape = "false"
xindylanguge = "english" (use a language supported by xindy)
xindycodepage = "utf8" (use a codepage supported by xindy)
xindystyle = "lwarp.xdy" (or a custom file based on lwarp.xdy)
@@ -3154,7 +3172,7 @@
pdftotextenc = "UTF-8" (use an encoding supported by pdftotext)
--
Filenames must contain only letters, numbers, underscore, or dash.
-Values must be in "quotes".
+Values must be in upright "quotes".
]] ) ;
end
@@ -3198,13 +3216,13 @@
local conffile = "lwarpmk.conf"
-- Optional configuration filename:
if ( arg[2] ~= nil ) then conffile = arg[2]..".lwarpmkconf" end
--- Default xindy language:
+-- Additional defaults:
+opsystem = "Unix"
+latexmk = "false"
+shellescape = "false"
xindylanguage = "english"
--- Default xindy codepage:
xindycodepage = "utf8"
--- Default xindystyle:
xindystyle = "lwarp.xdy"
--- Default pdftotext encoding:
pdftotextenc = "UTF-8"
-- Verify the file exists:
if (lfs.attributes(conffile,"mode")==nil) then
@@ -3260,6 +3278,7 @@
elseif ( cvarname == "homehtmlfilename" ) then homehtmlfilename = cvalue
elseif ( cvarname == "htmlfilename" ) then htmlfilename = cvalue
elseif ( cvarname == "latexmk" ) then latexmk = cvalue
+elseif ( cvarname == "shellescape" ) then shellescape = cvalue
elseif ( cvarname == "xindylanguage" ) then xindylanguage = cvalue
elseif ( cvarname == "xindycodepage" ) then xindycodepage = cvalue
elseif ( cvarname == "xindystyle" ) then xindystyle = cvalue
@@ -3353,7 +3372,13 @@
function onetime (fsuffix)
print("lwarpmk: Compiling with " .. latexname .. " " .. sourcename..fsuffix)
-err = os.execute(latexname .. " " .. sourcename..fsuffix)
+local thisshellescape = " "
+if ( shellescape == "true" ) then
+ thisshellescape = " -shell-escape "
+else
+ thisshellescape = " "
+end
+err = os.execute(latexname .. thisshellescape .. sourcename..fsuffix)
if ( err ~= 0 ) then
print ("lwarpmk: ===")
print ("lwarpmk: Compile error.")
@@ -3618,6 +3643,13 @@
-- Use latexmk to compile source and index:
-- fsuffix is "" for print, or "_html" for HTML
function compilelatexmk ( fsuffix )
+-- Maybe select the shell-escape option:
+local thisshellescape = " "
+if ( shellescape == "true" ) then
+ thisshellescape = " -shell-escape "
+else
+ thisshellescape = " "
+end
-- The recorder option is required to detect changes in <project>.tex
-- while we are loading <project>_html.tex.
err=os.execute ( "latexmk -pdf -dvi- -ps- -recorder "
@@ -3629,7 +3661,7 @@
.. " -C " .. xindycodepage
.. " -L " .. xindylanguage .. " /"
.. opquote
- .. " -pdflatex=\"" .. latexname .." %O %S\" "
+ .. " -pdflatex=\"" .. latexname .. thisshellescape .." %O %S\" "
.. sourcename..fsuffix ..".tex" ) ;
if ( err ~= 0 ) then
print ("lwarpmk: ===")
@@ -3637,8 +3669,22 @@
print ("lwarpmk: ===")
os.exit(1)
end
-end
+end -- function
+-- Converts PDF files to SVG files.
+-- The filenames are arg[2] and up.
+-- arg[1] is the command "pdftosvg".
+function convertpdftosvg ()
+for i = 2 , #arg do
+ if (lfs.attributes(arg[i],"mode")==nil) then
+ print ("lwarpmk: File \"" .. arg[i] .. "\" does not exist.")
+ else
+ print ("lwarpmk: Converting \"" .. arg[i] .. "\"")
+ os.execute ( "pdftocairo -svg " .. arg[i] )
+ end -- if
+end -- do
+end --function
+
-- lwarpmk --version :
if (arg[1] == "--version") then
@@ -3843,6 +3889,12 @@
os.execute ( rmname .. " lateximages/*" )
print ("lwarpmk: Done.")
+-- lwarpmk pdftosvg <list of file names>
+-- Convert PDf files to SVG using pdftocairo
+elseif arg[1] == "pdftosvg" then
+convertpdftosvg ()
+print ("lwarpmk: Done.")
+
-- lwarpmk with no argument :
elseif (arg[1] == nil) then
@@ -4517,6 +4569,8 @@
{}%
}
+\def\PN at parnotes@auto{}%
+
\newcommand*{\LWR at openparagraph}
{%
\ifbool{LWR at doingstartpars}%
@@ -4527,6 +4581,7 @@
}% nested par tags?
{}% no nested par tags
{% yes nest par tags
+ \PN at parnotes@auto%
\LWR at htmltagc{\LWR at tagregularparagraph}%
\global\booltrue{LWR at doingapar}%
\let\par\LWR at closeparagraph%
@@ -4557,6 +4612,7 @@
\LWR at orignewline%
\global\boolfalse{LWR at doingapar}%
\global\boolfalse{LWR at minipagethispar}%
+ \PN at parnotes@auto%
}% end of yes nest par tags
}% end of handling pars
{% not handling pars
@@ -6034,9 +6090,9 @@
\LWR at stoppars%
\LWR at setlatestname{#1}%
\LWR at startnewdepth{\LWR at depthlistitem}{\LWR at printclosedescitem}%
-\LetLtxMacro{\hspace}{\LWR at nohspace}%
+\LetLtxMacro\hspace\LWR at nohspace%
\LWR at origitem[]%
-\LetLtxMacro{\hspace}{\LWR at hspace}%
+\LetLtxMacro\hspace\LWR at hspace%
\LWR at htmltag{dt}#1\LWR at htmltag{/dt}%
\LWR at orignewline%
\LWR at htmltag{dd}%
@@ -6101,10 +6157,13 @@
\end{warpHTML}
+\begin{warpHTML}
+\LetLtxMacro\hdashline\hline
+\LetLtxMacro\cdashline\cline
+\LetLtxMacro\firsthdashline\hline
+\LetLtxMacro\lasthdashline\hline
-\begin{warpHTML}
-
\newcommand\LWR at mynexttoken\relax
@@ -6130,9 +6189,10 @@
\newbool{LWR at tabularcelladded}
\boolfalse{LWR at tabularcelladded}
-\newbool{LWR at doinghline}
-\boolfalse{LWR at doinghline}
+\newcounter{LWR at hlines}
+\newcounter{LWR at hdashedlines}
+
\newbool{LWR at doingtbrule}
\boolfalse{LWR at doingtbrule}
@@ -6261,7 +6321,8 @@
not bool {LWR at exitingtabular} or%
bool{LWR at doingtbrule} or%
bool{LWR at doingcmidrule} or%
- bool{LWR at doinghline} or%
+ test{\ifnumcomp{\value{LWR at hlines}}{>}{0}} or%
+ test{\ifnumcomp{\value{LWR at hdashedlines}}{>}{0}} or%
bool{LWR at startedrow}%
}{%
\begingroup%
@@ -6305,7 +6366,8 @@
\@rowc at lors%
\global\booltrue{LWR at intabularmetadata}%
\global\boolfalse{LWR at startedrow}%
-\global\boolfalse{LWR at doinghline}%
+\setcounter{LWR at hlines}{0}%
+\setcounter{LWR at hdashedlines}{0}%
\global\boolfalse{LWR at doingtbrule}%
\global\boolfalse{LWR at doingcmidrule}%
\LWR at clearmidrules%
@@ -6315,6 +6377,16 @@
\LWR at getmynexttoken%
}
+\newcommand*{\LWR at columnspeclookahead}[1]{%
+\setcounter{LWR at tempcountone}{\value{LWR at tablecolspecindex}}%
+\addtocounter{LWR at tempcountone}{#1}%
+\fullexpandarg%
+\StrChar{\LWR at origcolspec}{\arabic{LWR at tempcountone}}[\LWR at strresulttwo]%
+\exploregroups%
+\StrChar{\LWR at strresulttwo}{1}[\LWR at strresulttwo]%
+\noexploregroups%
+}
+
\newcommand*{\LWR at colparameter}{}
\newcommand*{\LWR at parseatcolumn}{%
\LWR at traceinfo{at column}%
@@ -6321,7 +6393,8 @@
\addtocounter{LWR at tablecolspecindex}{1}%
\LWR at traceinfo{about to read the next token:}%
\expandarg%
-\StrChar{\LWR at origcolspec}{\arabic{LWR at tablecolspecindex}}[\LWR at colparameter]
+\StrChar{\LWR at origcolspec}%
+ {\arabic{LWR at tablecolspecindex}}[\LWR at colparameter]
\fullexpandarg%
\LWR at traceinfo{have now read the next token}%
\ifnumcomp{\value{LWR at tabletotalcols}}{=}{0}%
@@ -6333,7 +6406,8 @@
}%
{% not at the left edge:
\LWR at traceinfo{not at the left edge}%
- \LWR at setexparray{LWR at colatspec}{\arabic{LWR at tabletotalcols}}{\LWR at colparameter}%
+ \LWR at setexparray{LWR at colatspec}%
+ {\arabic{LWR at tabletotalcols}}{\LWR at colparameter}%
\LWR at traceinfo{at \arabic{LWR at tabletotalcols}: %
\LWR at getexparray{LWR at colatspec}{\arabic{LWR at tabletotalcols}}}%
}%
@@ -6345,7 +6419,8 @@
\addtocounter{LWR at tablecolspecindex}{1}%
\LWR at traceinfo{about to read the next token:}%
\expandarg%
-\StrChar{\LWR at origcolspec}{\arabic{LWR at tablecolspecindex}}[\LWR at colparameter]
+\StrChar{\LWR at origcolspec}%
+ {\arabic{LWR at tablecolspecindex}}[\LWR at colparameter]
\fullexpandarg%
\LWR at traceinfo{have now read the next token}%
\ifnumcomp{\value{LWR at tabletotalcols}}{=}{0}%
@@ -6355,7 +6430,8 @@
}%
{% not at the left edge:
\LWR at traceinfo{not at the left edge}%
- \LWR at setexparray{LWR at colbangspec}{\arabic{LWR at tabletotalcols}}{\LWR at colparameter}%
+ \LWR at setexparray{LWR at colbangspec}%
+ {\arabic{LWR at tabletotalcols}}{\LWR at colparameter}%
\LWR at traceinfo{bang \arabic{LWR at tabletotalcols}: \LWR at colparameter!}%
}%
\let\LWR at colparameter\relax%
@@ -6364,9 +6440,11 @@
\newcommand*{\LWR at parsebeforecolumn}{%
\addtocounter{LWR at tablecolspecindex}{1}%
\expandarg%
-\StrChar{\LWR at origcolspec}{\arabic{LWR at tablecolspecindex}}[\LWR at colparameter]%
+\StrChar{\LWR at origcolspec}%
+ {\arabic{LWR at tablecolspecindex}}[\LWR at colparameter]%
\fullexpandarg%
-\LWR at setexparray{LWR at colbeforespec}{\arabic{LWR at tabletotalcolsnext}}{\LWR at colparameter}%
+\LWR at setexparray{LWR at colbeforespec}%
+ {\arabic{LWR at tabletotalcolsnext}}{\LWR at colparameter}%
\let\LWR at colparameter\relax%
\booltrue{LWR at validtablecol}%
}
@@ -6373,23 +6451,64 @@
\newcommand*{\LWR at parseaftercolumn}{%
\addtocounter{LWR at tablecolspecindex}{1}%
\expandarg%
-\StrChar{\LWR at origcolspec}{\arabic{LWR at tablecolspecindex}}[\LWR at colparameter]%
+\StrChar{\LWR at origcolspec}%
+ {\arabic{LWR at tablecolspecindex}}[\LWR at colparameter]%
\fullexpandarg%
-\LWR at setexparray{LWR at colafterspec}{\arabic{LWR at tabletotalcols}}{\LWR at colparameter}%
+\LWR at setexparray{LWR at colafterspec}%
+ {\arabic{LWR at tabletotalcols}}{\LWR at colparameter}%
\let\LWR at colparameter\relax%
\booltrue{LWR at validtablecol}%
}
\newcommand*{\LWR at parsebarcolumn}{%
-\LWR at traceinfo{bar column}%
+\LWR at traceinfo{LWR at parsebarcolumn}%
\ifnumcomp{\value{LWR at tabletotalcols}}{=}{0}%
{% left edge of the table:
- \LWR at setexparray{LWR at colbarspec}{leftedge}{tvertbarl}%
+ \edef\LWR at tempone{\LWR at getexparray{LWR at colbarspec}{leftedge}}%
+ \ifdefstring{\LWR at tempone}{tvertbarl}%
+ {\LWR at setexparray{LWR at colbarspec}{leftedge}{tvertbarldouble}}%
+ {\LWR at setexparray{LWR at colbarspec}{leftedge}{tvertbarl}}%
}%
{% not at the left edge:
- \LWR at setexparray{LWR at colbarspec}{\arabic{LWR at tabletotalcols}}{tvertbarr}%
+ \edef\LWR at tempone{%
+ \LWR at getexparray{LWR at colbarspec}{\arabic{LWR at tabletotalcols}}%
+ }%
+ \ifdefstring{\LWR at tempone}{tvertbarr}%
+ {%
+ \LWR at setexparray{LWR at colbarspec}%
+ {\arabic{LWR at tabletotalcols}}{tvertbarrdouble}%
+ }%
+ {%
+ \LWR at setexparray{LWR at colbarspec}%
+ {\arabic{LWR at tabletotalcols}}{tvertbarr}%
+ }%
}%
\booltrue{LWR at validtablecol}%
}
+\newcommand*{\LWR at parsecoloncolumn}{%
+\LWR at traceinfo{LWR at parsecoloncolumn}%
+\ifnumcomp{\value{LWR at tabletotalcols}}{=}{0}%
+{% left edge of the table:
+ \edef\LWR at tempone{\LWR at getexparray{LWR at colbarspec}{leftedge}}%
+ \ifdefstring{\LWR at tempone}{tvertbarldash}%
+ {\LWR at setexparray{LWR at colbarspec}{leftedge}{tvertbarldoubledash}}%
+ {\LWR at setexparray{LWR at colbarspec}{leftedge}{tvertbarldash}}%
+}%
+{% not at the left edge:
+ \edef\LWR at tempone{%
+ \LWR at getexparray{LWR at colbarspec}{\arabic{LWR at tabletotalcols}}%
+ }%
+ \ifdefstring{\LWR at tempone}{tvertbarrdash}%
+ {\LWR at setexparray{LWR at colbarspec}%
+ {\arabic{LWR at tabletotalcols}}{tvertbarrdoubledash}}%
+ {\LWR at setexparray{LWR at colbarspec}%
+ {\arabic{LWR at tabletotalcols}}{tvertbarrdash}}%
+}%
+\booltrue{LWR at validtablecol}%
+}
+\newcommand*{\LWR at parsesemicoloncolumn}{%
+\LWR at parsecoloncolumn%
+\addtocounter{LWR at tablecolspecindex}{1}%
+}
\newcommand*{\LWR at parsenormalcolumn}[1]{%
\appto\LWR at tablecolspec{#1}%
\addtocounter{LWR at tabletotalcols}{1}%
@@ -6408,6 +6527,12 @@
\addtocounter{LWR at tablecolspecindex}{1}%
}
+\newcommand*{\LWR at parsewcolumn}{%
+\LWR at columnspeclookahead{1}%
+\expandafter\LWR at parsenormalcolumn\expandafter{\LWR at strresulttwo}%
+\addtocounter{LWR at tablecolspecindex}{2}%
+}
+
\newcommand*{\LWR at parseDcolumn}[1]{%
\LWR at parsenormalcolumn{#1}%
\addtocounter{LWR at tablecolspecindex}{3}%
@@ -6451,7 +6576,8 @@
\boolfalse{LWR at opttablecol}%
\whileboolexpr{%
not test{%
- \ifnumcomp{\value{LWR at tablecolspecindex}}{>}{\value{LWR at tablecolspecwidth}}%
+ \ifnumcomp{\value{LWR at tablecolspecindex}}{>}%
+ {\value{LWR at tablecolspecwidth}}%
}%
}%
{%
@@ -6471,15 +6597,20 @@
\IfStrEq{\LWR at strresult}{C}{\LWR at parsenormalcolumn{c}}{}%
\IfStrEq{\LWR at strresult}{R}{\LWR at parsenormalcolumn{r}}{}%
\IfStrEq{\LWR at strresult}{J}{\LWR at parsenormalcolumn{l}}{}%
-\IfStrEq{\LWR at strresult}{S}{\LWR at parsenormalcolumn{r}}{}%
+\IfStrEq{\LWR at strresult}{S}{\LWR at parsenormalcolumn{c}}{}%
+\IfStrEq{\LWR at strresult}{s}{\LWR at parsenormalcolumn{c}}{}%
\IfStrEq{\LWR at strresult}{\detokenize{@}}{\LWR at parseatcolumn}{}%
\IfStrEq{\LWR at strresult}{!}{\LWR at parsebangcolumn}{}%
\IfStrEq{\LWR at strresult}{>}{\LWR at parsebeforecolumn}{}%
\IfStrEq{\LWR at strresult}{<}{\LWR at parseaftercolumn}{}%
\IfStrEq{\LWR at strresult}{|}{\LWR at parsebarcolumn}{}%
+\IfStrEq{\LWR at strresult}{:}{\LWR at parsecoloncolumn}{}%
+\IfStrEq{\LWR at strresult}{;}{\LWR at parsesemicoloncolumn}{}%
\IfStrEq{\LWR at strresult}{p}{\LWR at parsepcolumn{p}}{}%
\IfStrEq{\LWR at strresult}{m}{\LWR at parsepcolumn{m}}{}%
\IfStrEq{\LWR at strresult}{b}{\LWR at parsepcolumn{b}}{}%
+\IfStrEq{\LWR at strresult}{w}{\LWR at parsewcolumn}{}%
+\IfStrEq{\LWR at strresult}{W}{\LWR at parsewcolumn}{}%
\IfStrEq{\LWR at strresult}{D}{\LWR at parseDcolumn{c}}{}%
\IfStrEq{\LWR at strresult}{X}{\LWR at parsenormalcolumn{X}}{}%
\IfStrEq{\LWR at strresult}{P}{\LWR at parsepcolumn{P}}{}%
@@ -6493,7 +6624,7 @@
\IfStrEq{\LWR at strresult}{]}{\boolfalse{LWR at opttablecol}}{}%
\addtocounter{LWR at tablecolspecindex}{1}%
}% whiledo
-\LWR at traceinfo{LWR at parsetablecols: done}%
+\LWR at traceinfo{LWR at parsetablecols: Final table column spec: !\LWR at tablecolspec!}%
}%
\@ifundefined{rownum}{\newcount\rownum}{}
@@ -6526,16 +6657,12 @@
{% not started the row
\global\booltrue{LWR at startedrow}%
\global\booltrue{LWR at intabularmetadata}%
- \ifbool{LWR at doinghline}%
+ \ifboolexpr{%
+ test{\ifnumcomp{\value{LWR at hlines}}{>}{0}} or%
+ test{\ifnumcomp{\value{LWR at hdashedlines}}{>}{0}}%
+ }%
{%
- \ifdefvoid{\LWR at ruleHTMLcolor}{%
- \LWR at htmltag{tr class="hline" }%
- }{%
- \LWR at htmltag{%
- tr class="hline" %
- style="border-top: 1px solid \LWR at origpound\LWR at ruleHTMLcolor "%
- }%
- }%
+ \LWR at htmltag{tr class="hline" }%
\LWR at orignewline%
}%
{% not doing hline
@@ -6545,8 +6672,9 @@
\LWR at htmltag{tr class="tbrule"}%
}{%
\LWR at htmltag{%
- tr class="tbrule" %
- style="border-top: 1px solid \LWR at origpound\LWR at ruleHTMLcolor "%
+ tr class="tbrule" % space
+ style="border-top: 1px solid % space
+ \LWR at origpound\LWR at ruleHTMLcolor "%
}%
}%
\LWR at orignewline%
@@ -6582,6 +6710,7 @@
"%
\LWR at tdstartstyles%
\LWR at addcmidrulewidth%
+ \LWR at addcdashline%
\LWR at addtabularrulecolors%
\LWR at tdendstyles%
}%
@@ -6620,7 +6749,8 @@
\ifbool{LWR at exitingtabular}{}%
{% not exiting tabular
\LWR at tabularleftedge%
- \StrChar{\LWR at tablecolspec}{\arabic{LWR at tablecolindex}}[\LWR at strresult]%
+ \StrChar{\LWR at tablecolspec}%
+ {\arabic{LWR at tablecolindex}}[\LWR at strresult]%
\LWR at traceinfo{LWR at tabledatasinglecolumntag: about to print td tag}%
\LWR at htmltag{td class="td%
\LWR at strresult%
@@ -6630,7 +6760,9 @@
"%
\LWR at tdstartstyles%
\LWR at addcmidrulewidth%
- \StrChar{\LWR at tablecolspec}{\arabic{LWR at tablecolindex}}[\LWR at thiscolspec]%
+ \LWR at addcdashline%
+ \StrChar{\LWR at tablecolspec}%
+ {\arabic{LWR at tablecolindex}}[\LWR at thiscolspec]%
\LWR at addformatwpalignment{\LWR at thiscolspec}%
\LWR at addtabularrowcolor%
\LWR at addtabularrulecolors%
@@ -6667,6 +6799,7 @@
+
\newcounter{LWR at midrulecounter}
\newlength{\LWR at heavyrulewidth}
@@ -6686,7 +6819,8 @@
\setcounter{LWR at midrulecounter}{1}%
\whileboolexpr{%
not test{%
- \ifnumcomp{\value{LWR at midrulecounter}}{>}{\value{LWR at tablecolspecwidth}}%
+ \ifnumcomp{\value{LWR at midrulecounter}}{>}%
+ {\value{LWR at tablecolspecwidth}}%
}%
}%
{%
@@ -6694,6 +6828,7 @@
\setlength{\LWR at thiscmidrulewidth}{\LWR at cmidrulewidth}%
\LWR at setexparray{LWR at trimlrules}{\arabic{LWR at midrulecounter}}{}%
\LWR at setexparray{LWR at trimrrules}{\arabic{LWR at midrulecounter}}{}%
+\LWR at setexparray{LWR at cdashlines}{\arabic{LWR at midrulecounter}}{N}%
\addtocounter{LWR at midrulecounter}{1}%
}%
}
@@ -6714,13 +6849,35 @@
\booltrue{LWR at doingcmidrule}%
}
-\NewDocumentCommand{\LWR at docmidrule}{O{\LWR at cmidrulewidth} D(){} >{\SplitArgument{1}{-}}m}%
-{\LWR at subcmidrule{#1}{#2}#3}
+\NewDocumentCommand{\LWR at docmidrule}
+ {O{\LWR at cmidrulewidth} D(){} >{\SplitArgument{1}{-}}m}
+ {\LWR at subcmidrule{#1}{#2}#3}
-\newlength{\LWR at templengthone}%
-\newlength{\LWR at templengthtwo}%
-\newlength{\LWR at templengththree}%
+\newcommand*{\LWR at subcdashline}[2]{%
+\setcounter{LWR at midrulecounter}{#1}%
+\whileboolexpr{%
+ not test {%
+ \ifnumcomp{\value{LWR at midrulecounter}}{>}{#2}%
+ }%
+}%
+{%
+ \LWR at setexparray{LWR at cdashlines}{\arabic{LWR at midrulecounter}}{Y}%
+ \addtocounter{LWR at midrulecounter}{1}%
+}% whiledo
+\booltrue{LWR at doingcmidrule}%
+}
+\NewDocumentCommand{\LWR at docdashline}
+ {>{\SplitArgument{1}{-}}m}%
+ {%
+ \LWR at subcdashline#1%
+ }
+
+\newlength{\LWR at templengthone}
+\newlength{\LWR at templengthtwo}
+\newlength{\LWR at templengththree}
+\newcounter{LWR at tempcountone}
+
\newboolean{LWR at tdhavecellstyle}
\newcommand*{\LWR at tdstartstyles}{\global\boolfalse{LWR at tdhavecellstyle}}
@@ -6790,6 +6947,19 @@
\LWR at addrulewidth{\LWR at thiscmidrulewidth}{\LWR at cmidrulewidth}%
}
+\newcommand{\LWR at addcdashline}{%
+\edef\LWR at tempone{%
+ \LWR at getexparray{LWR at cdashlines}{\arabic{LWR at tablecolindex}}%
+}%
+\ifdefstring{\LWR at tempone}{Y}{%
+ \LWR at tdaddstyle%
+ border-top: 1pt dashed %
+ \ifdefvoid{\LWR at ruleHTMLcolor}%
+ {black}%
+ {\LWR at origpound\LWR at ruleHTMLcolor}%
+}{}%
+}
+
\newcommand*{\LWR at WPcell}[2]{%
\LWR at tdaddstyle%
\LWR at origmbox{text-align:#1}; \LWR at origmbox{vertical-align:#2}%
@@ -6827,15 +6997,49 @@
}
\newcommand*{\LWR at addtabularhrulecolor}{%
-\ifboolexpr {
- bool{LWR at doinghline} or
- bool{LWR at doingtbrule}
+\ifboolexpr{%
+ test{\ifnumcomp{\value{LWR at hlines}}{>}{0}} or%
+ test{\ifnumcomp{\value{LWR at hdashedlines}}{>}{0}} or%
+ bool{LWR at doingtbrule}%
}{%
- \ifdefvoid{\LWR at ruleHTMLcolor}{}%
+ \ifdefvoid{\LWR at ruleHTMLcolor}%
{%
- \LWR at tdaddstyle%
- border-top: 1px solid \LWR at origpound\LWR at ruleHTMLcolor%
- }{}%
+ \ifnumcomp{\value{LWR at hlines}}{>}{1}%
+ {%
+ \LWR at tdaddstyle%
+ border-top: 4px double%
+ }{% else
+ \ifnumcomp{\value{LWR at hdashedlines}}{>}{1}%
+ {%
+ \LWR at tdaddstyle%
+ border-top: 2px dashed%
+ }{% else
+ \ifnumcomp{\value{LWR at hdashedlines}}{=}{1}%
+ {%
+ \LWR at tdaddstyle%
+ border-top: 1px dashed%
+ }{}}}%
+ }%
+ {%
+ \ifnumcomp{\value{LWR at hlines}}{>}{1}%
+ {%
+ \LWR at tdaddstyle%
+ border-top: 4px double \LWR at origpound\LWR at ruleHTMLcolor%
+ }{% else
+ \ifnumcomp{\value{LWR at hdashedlines}}{>}{1}%
+ {%
+ \LWR at tdaddstyle%
+ border-top: 2px dashed \LWR at origpound\LWR at ruleHTMLcolor%
+ }{% else
+ \ifnumcomp{\value{LWR at hdashedlines}}{=}{1}%
+ {%
+ \LWR at tdaddstyle%
+ border-top: 1px dashed \LWR at origpound\LWR at ruleHTMLcolor%
+ }{% else
+ \LWR at tdaddstyle%
+ border-top: 1px solid \LWR at origpound\LWR at ruleHTMLcolor%
+ }}}%
+ }%
}{}%
}
@@ -6846,14 +7050,44 @@
\edef\LWR at tempone{\LWR at getexparray{LWR at colbarspec}{leftedge}}%
\ifdefstring{\LWR at tempone}{tvertbarl}{%
\LWR at tdaddstyle%
- border-left: 1px solid \LWR at origpound\LWR at vertruleHTMLcolor%
+ border-left: 1px solid % space
+ \LWR at origpound\LWR at vertruleHTMLcolor%
}{}%
+ \ifdefstring{\LWR at tempone}{tvertbarldouble}{%
+ \LWR at tdaddstyle%
+ border-left: 4px double % space
+ \LWR at origpound\LWR at vertruleHTMLcolor%
+ }{}%
+ \ifdefstring{\LWR at tempone}{tvertbarldash}{%
+ \LWR at tdaddstyle%
+ border-left: 1px dashed % space
+ \LWR at origpound\LWR at vertruleHTMLcolor%
+ }{}%
+ \ifdefstring{\LWR at tempone}{tvertbarldoubledash}{%
+ \LWR at tdaddstyle%
+ border-left: 2px dashed % space
+ \LWR at origpound\LWR at vertruleHTMLcolor%
+ }{}%
}{}%
- \edef\LWR at tempone{\LWR at getexparray{LWR at colbarspec}{\arabic{LWR at tablecolindex}}}%
+ \edef\LWR at tempone{%
+ \LWR at getexparray{LWR at colbarspec}{\arabic{LWR at tablecolindex}}%
+ }%
\ifdefstring{\LWR at tempone}{tvertbarr}{%
\LWR at tdaddstyle%
border-right: 1px solid \LWR at origpound\LWR at vertruleHTMLcolor%
}{}%
+ \ifdefstring{\LWR at tempone}{tvertbarrdouble}{%
+ \LWR at tdaddstyle%
+ border-right: 4px double \LWR at origpound\LWR at vertruleHTMLcolor%
+ }{}%
+ \ifdefstring{\LWR at tempone}{tvertbarrdash}{%
+ \LWR at tdaddstyle%
+ border-right: 1px dashed \LWR at origpound\LWR at vertruleHTMLcolor%
+ }{}%
+ \ifdefstring{\LWR at tempone}{tvertbarrdoubledash}{%
+ \LWR at tdaddstyle%
+ border-right: 2px dashed \LWR at origpound\LWR at vertruleHTMLcolor%
+ }{}%
}%
}
@@ -6889,8 +7123,11 @@
\newcounter{LWR at tablemulticolswidth}
\newcounter{LWR at tablemulticolspos}
-\newbool{LWR at mcolvertbarl}
-\newbool{LWR at mcolvertbarr}
+\newcounter{LWR at mcolvertbarsl}
+\newcounter{LWR at mcolvertbarsr}
+\newcounter{LWR at mcolvertbarsldash}
+\newcounter{LWR at mcolvertbarsrdash}
+\newboolean{LWR at mcolvertbaronleft}%
\newcommand*{\LWR at printmccoltype}[1]{%
\LWR at traceinfo{lwr at printmccoltype -#1-}%
@@ -6904,19 +7141,41 @@
\IfStrEq{\LWR at strresult}{P}{P}{}%
\IfStrEq{\LWR at strresult}{M}{M}{}%
\IfStrEq{\LWR at strresult}{B}{B}{}%
-\IfStrEq{\LWR at strresult}{S}{r}{}%
+\IfStrEq{\LWR at strresult}{w}{w}{}%
+\IfStrEq{\LWR at strresult}{W}{W}{}%
+\IfStrEq{\LWR at strresult}{S}{c}{}%
+\IfStrEq{\LWR at strresult}{s}{c}{}%
\IfStrEq{\LWR at strresult}{X}{p}{}%
-\IfStrEq{\LWR at strresult}{|}{%
- \ifnumcomp{\value{LWR at tablemulticolspos}}{=}{1}% left edge?
- {\booltrue{LWR at mcolvertbarl}}% left edge
- {\booltrue{LWR at mcolvertbarr}}% not left edge
-}{}%
+\IfStrEq{\LWR at strresult}{|}%
+{%
+ \ifbool{LWR at mcolvertbaronleft}%
+ {\addtocounter{LWR at mcolvertbarsl}{1}}% left edge
+ {\addtocounter{LWR at mcolvertbarsr}{1}}% not left edge
+}%
+{%
+ \IfStrEq{\LWR at strresult}{:}%
+ {%
+ \ifbool{LWR at mcolvertbaronleft}%
+ {\addtocounter{LWR at mcolvertbarsldash}{1}}% left edge
+ {\addtocounter{LWR at mcolvertbarsrdash}{1}}% not left edge
+ }%
+ {%
+ \IfStrEq{\LWR at strresult}{;}%
+ {%
+ \ifbool{LWR at mcolvertbaronleft}%
+ {\addtocounter{LWR at mcolvertbarsldash}{1}}% left edge
+ {\addtocounter{LWR at mcolvertbarsrdash}{1}}% not left edge
+ }%
+ {\setboolean{LWR at mcolvertbaronleft}{false}}%
+ }%
+}%
\LWR at traceinfo{lwr at printmccoltype done}%
}
-\newcommand*{\LWR at multicolpartext}{%
+\newcommand*{\LWR at multicolpartext}[1]{%
\LWR at startpars%
\LWR at multicoltext%
+\addtocounter{LWR at tablemulticolspos}{#1}%
\LWR at stoppars%
}
@@ -6942,15 +7201,23 @@
\addtocounter{LWR at tablemulticolspos}{3}% skip parameters
\LWR at multicoltext%
}{}%
-\IfStrEq{\LWR at strresult}{p}{\LWR at multicolpartext}{}%
-\IfStrEq{\LWR at strresult}{m}{\LWR at multicolpartext}{}%
-\IfStrEq{\LWR at strresult}{b}{\LWR at multicolpartext}{}%
-\IfStrEq{\LWR at strresult}{P}{\LWR at multicolpartext}{}%
-\IfStrEq{\LWR at strresult}{M}{\LWR at multicolpartext}{}%
-\IfStrEq{\LWR at strresult}{B}{\LWR at multicolpartext}{}%
-\IfStrEq{\LWR at strresult}{S}{\LWR at multicolpartext}{}%
-\IfStrEq{\LWR at strresult}{X}{\LWR at multicolpartext}{}%
+\IfStrEq{\LWR at strresult}{p}{\LWR at multicolpartext{0}}{}%
+\IfStrEq{\LWR at strresult}{m}{\LWR at multicolpartext{0}}{}%
+\IfStrEq{\LWR at strresult}{b}{\LWR at multicolpartext{0}}{}%
+\IfStrEq{\LWR at strresult}{P}{\LWR at multicolpartext{0}}{}%
+\IfStrEq{\LWR at strresult}{M}{\LWR at multicolpartext{0}}{}%
+\IfStrEq{\LWR at strresult}{B}{\LWR at multicolpartext{0}}{}%
+\IfStrEq{\LWR at strresult}{w}{\LWR at multicolpartext{3}}{}%
+\IfStrEq{\LWR at strresult}{W}{\LWR at multicolpartext{3}}{}%
+\IfStrEq{\LWR at strresult}{S}{\LWR at multicoltext}{}%
+\IfStrEq{\LWR at strresult}{s}{\LWR at multicoltext}{}%
+\IfStrEq{\LWR at strresult}{X}{\LWR at multicolpartext{0}}{}%
\IfStrEq{\LWR at strresult}{|}{\LWR at multicolskip}{}%
+\IfStrEq{\LWR at strresult}{:}{\LWR at multicolskip}{}%
+\IfStrEq{\LWR at strresult}{;}{%
+ \LWR at multicolskip%
+ \addtocounter{LWR at tablemulticolspos}{1}% skip parameter
+}{}%
\IfStrEq{\LWR at strresult}{\detokenize{@}}{\LWR at multicolother{#1}}{}%
\IfStrEq{\LWR at strresult}{\detokenize{!}}{\LWR at multicolother{#1}}{}%
\IfStrEq{\LWR at strresult}{\detokenize{>}}{\LWR at multicolother{#1}}{}%
@@ -6965,8 +7232,9 @@
\setcounter{LWR at tablemulticolswidth}{\LWR at strresult}%
\whileboolexpr{%
not test {%
- \ifnumcomp{\value{LWR at tablemulticolspos}}{>}{\value{LWR at tablemulticolswidth}}%
- }
+ \ifnumcomp{\value{LWR at tablemulticolspos}}{>}%
+ {\value{LWR at tablemulticolswidth}}%
+ }%
}%
{%
#2{#1}%
@@ -6977,14 +7245,38 @@
\newcommand*{\LWR at addmulticolvertrulecolor}{%
\ifbool{LWR at tabularmutemods}{}{%
- \ifbool{LWR at mcolvertbarl}{%
+ \ifnumcomp{\value{LWR at mcolvertbarsl}}{=}{1}{%
\LWR at tdaddstyle%
border-left: 1px solid \LWR at origpound\LWR at vertruleHTMLcolor%
}{}%
- \ifbool{LWR at mcolvertbarr}{%
+ \ifnumcomp{\value{LWR at mcolvertbarsl}}{>}{1}{%
\LWR at tdaddstyle%
+ border-left: 4px double \LWR at origpound\LWR at vertruleHTMLcolor%
+ }{}%
+ \ifnumcomp{\value{LWR at mcolvertbarsldash}}{=}{1}{%
+ \LWR at tdaddstyle%
+ border-left: 1px dashed \LWR at origpound\LWR at vertruleHTMLcolor%
+ }{}%
+ \ifnumcomp{\value{LWR at mcolvertbarsldash}}{>}{1}{%
+ \LWR at tdaddstyle%
+ border-left: 2px dashed \LWR at origpound\LWR at vertruleHTMLcolor%
+ }{}%
+ \ifnumcomp{\value{LWR at mcolvertbarsr}}{=}{1}{%
+ \LWR at tdaddstyle%
border-right: 1px solid \LWR at origpound\LWR at vertruleHTMLcolor%
}{}%
+ \ifnumcomp{\value{LWR at mcolvertbarsr}}{>}{1}{%
+ \LWR at tdaddstyle%
+ border-right: 4px double \LWR at origpound\LWR at vertruleHTMLcolor%
+ }{}%
+ \ifnumcomp{\value{LWR at mcolvertbarsrdash}}{=}{1}{%
+ \LWR at tdaddstyle%
+ border-right: 1px dashed \LWR at origpound\LWR at vertruleHTMLcolor%
+ }{}%
+ \ifnumcomp{\value{LWR at mcolvertbarsrdash}}{>}{1}{%
+ \LWR at tdaddstyle%
+ border-right: 2px dashed \LWR at origpound\LWR at vertruleHTMLcolor%
+ }{}%
}%
}
@@ -7011,18 +7303,28 @@
}% vpos?
}% rows?
class="td%
-\boolfalse{LWR at mcolvertbarl}%
-\boolfalse{LWR at mcolvertbarr}%
+\setcounter{LWR at mcolvertbarsl}{0}%
+\setcounter{LWR at mcolvertbarsr}{0}%
+\setcounter{LWR at mcolvertbarsldash}{0}%
+\setcounter{LWR at mcolvertbarsrdash}{0}%
+\setboolean{LWR at mcolvertbaronleft}{true}%
\LWR at parsemulticolumnalignment{#5}{\LWR at printmccoltype}%
\LWR at subaddcmidruletrim%
{\LWR at getexparray{LWR at trimlrules}{\arabic{LWR at tablecolindex}}}%
{\LWR at getexparray{LWR at trimrrules}{\arabic{LWR at lastmulticolumn}}}%
-\ifbool{LWR at mcolvertbarl}{ tvertbarl}{}%
-\ifbool{LWR at mcolvertbarr}{ tvertbarr}{}%
-"%
+\ifnumcomp{\value{LWR at mcolvertbarsl}}{=}{1}{ tvertbarl}{}%
+\ifnumcomp{\value{LWR at mcolvertbarsl}}{>}{1}{ tvertbarldouble}{}%
+\ifnumcomp{\value{LWR at mcolvertbarsr}}{=}{1}{ tvertbarr}{}%
+\ifnumcomp{\value{LWR at mcolvertbarsr}}{>}{1}{ tvertbarrdouble}{}%
+\ifnumcomp{\value{LWR at mcolvertbarsldash}}{=}{1}{ tvertbarldash}{}%
+\ifnumcomp{\value{LWR at mcolvertbarsldash}}{>}{1}{ tvertbarldoubledash}{}%
+\ifnumcomp{\value{LWR at mcolvertbarsrdash}}{=}{1}{ tvertbarrdash}{}%
+\ifnumcomp{\value{LWR at mcolvertbarsrdash}}{>}{1}{ tvertbarrdoubledash}{}%
+"% NOT A TYPO
\LWR at tdstartstyles%
\LWR at addtabularrowcolor%
\LWR at addcmidrulewidth%
+\LWR at addcdashline%
\LWR at addtabularhrulecolor%
\LWR at addmulticolvertrulecolor%
\LWR at addformatwpalignment{#5}%
@@ -7054,7 +7356,9 @@
}% optional given
{\LWR at setlatestname{#3}}% no optional
\LWR at tabularhtmlcolumns{1}{\arabic{LWR at tabletotalcols}}
-\LWR at domulticolumn{\arabic{LWR at tabletotalcols}}{\arabic{LWR at tabhtmlcoltotal}}{P}%
+\LWR at domulticolumn{\arabic{LWR at tabletotalcols}}%
+ {\arabic{LWR at tabhtmlcoltotal}}%
+ {P}%
{% \LWR at domulticolumn
\IfBooleanTF{#1}% star?
{% yes star
@@ -7243,6 +7547,8 @@
{\let\mynext\LWR at donothing}{}%
\ifdefequal{\LWR at mynexttoken}{\cmidrule}%
{\let\mynext\LWR at donothing}{}%
+\ifdefequal{\LWR at mynexttoken}{\morecmidrules}%
+ {\let\mynext\LWR at donothing}{}%
\ifdefequal{\LWR at mynexttoken}{\specialrule}%
{\let\mynext\LWR at donothing}{}%
\ifdefequal{\LWR at mynexttoken}{\cline}%
@@ -7263,6 +7569,14 @@
{\let\mynext\LWR at donothing}{}%
\ifdefequal{\LWR at mynexttoken}{\rdelim}%
{\let\mynext\LWR at donothing}{}%
+\ifdefequal{\LWR at mynexttoken}{\hdashline}%
+ {\let\mynext\LWR at donothing}{}%
+\ifdefequal{\LWR at mynexttoken}{\cdashline}%
+ {\let\mynext\LWR at donothing}{}%
+\ifdefequal{\LWR at mynexttoken}{\firsthdashline}%
+ {\let\mynext\LWR at donothing}{}%
+\ifdefequal{\LWR at mynexttoken}{\lasthdashline}%
+ {\let\mynext\LWR at donothing}{}%
\ifdefequal{\LWR at mynexttoken}{\par}%
{\let\mynext\LWR at donothing}{}%
\LWR at traceinfo{LWR at tabledatacolumntag: about to do mynext}%
@@ -7311,7 +7625,7 @@
\newcommand*{\LWR at HTMLhline}[1][]{%
\ifbool{FormatWP}%
{\LWR at docmidrule{1-\arabic{LWR at tabletotalcols}}}%
- {\booltrue{LWR at doinghline}}%
+ {\addtocounter{LWR at hlines}{1}}%
\LWR at getmynexttoken}%
}
{
@@ -7318,7 +7632,7 @@
\newcommand*{\LWR at HTMLhline}{%
\ifbool{FormatWP}%
{\LWR at docmidrule{1-\arabic{LWR at tabletotalcols}}}%
- {\booltrue{LWR at doinghline}}%
+ {\addtocounter{LWR at hlines}{1}}%
\LWR at getmynexttoken}%
}
}% AtBeginDocument
@@ -7347,7 +7661,8 @@
\LWR at traceinfo{LWR at tabular started}%
\addtocounter{LWR at tabulardepth}{1}%
\global\boolfalse{LWR at startedrow}%
-\global\boolfalse{LWR at doinghline}%
+\setcounter{LWR at hlines}{0}%
+\setcounter{LWR at hdashedlines}{0}%
\global\boolfalse{LWR at doingtbrule}%
\global\boolfalse{LWR at doingcmidrule}%
\LWR at nullifyNoAutoSpacing%
@@ -7395,25 +7710,48 @@
{%
\ifbool{FormatWP}%
{\LWR at docmidrule[##1](){1-\arabic{LWR at tabletotalcols}}}%
- {\booltrue{LWR at doinghline}}%
+ {\addtocounter{LWR at hlines}{1}}%
}%
\LWR at getmynexttoken}%
-\DeclareDocumentCommand{\cmidrule}{O{\LWR at cmidrulewidth} d() m}%
-{\LWR at docmidrule[##1](##2){##3}\LWR at getmynexttoken}%
-\DeclareDocumentCommand{\bottomrule}{o d()}%
- {%
- \IfValueTF{##1}%
+\DeclareDocumentCommand{\cmidrule}{O{\LWR at cmidrulewidth} d() m}{%
+ \LWR at docmidrule[##1](##2){##3}%
+ \LWR at getmynexttoken%
+}%
+\DeclareDocumentCommand{\bottomrule}{o d()}{%
+ \IfValueTF{##1}%
+ {\LWR at docmidrule[##1](){1-\arabic{LWR at tabletotalcols}}}%
+ {%
+ \ifbool{FormatWP}%
{\LWR at docmidrule[##1](){1-\arabic{LWR at tabletotalcols}}}%
- {%
- \ifbool{FormatWP}%
- {\LWR at docmidrule[##1](){1-\arabic{LWR at tabletotalcols}}}%
- {\booltrue{LWR at doingtbrule}}%
- }%
- \LWR at getmynexttoken}%
+ {\booltrue{LWR at doingtbrule}}%
+ }%
+ \LWR at getmynexttoken%
+}%
\DeclareDocumentCommand{\addlinespace}{o}{}%
\DeclareDocumentCommand{\morecmidrules}{}{}%
\DeclareDocumentCommand{\specialrule}{m m m d()}%
{\LWR at docmidrule[##1](){1-\arabic{LWR at tabletotalcols}}\LWR at getmynexttoken}%
+\DeclareDocumentCommand{\hdashline}{o}{%
+ \ifbool{FormatWP}%
+ {\LWR at docdashline{1-\arabic{LWR at tabletotalcols}}}%
+ {\addtocounter{LWR at hdashedlines}{1}}%
+ \LWR at getmynexttoken%
+}%
+\DeclareDocumentCommand{\cdashline}{m}{%
+ \LWR at docdashline{##1}\LWR at getmynexttoken%
+}%
+\DeclareDocumentCommand{\firsthdashline}{o}{%
+ \ifbool{FormatWP}%
+ {\LWR at docdashline{1-\arabic{LWR at tabletotalcols}}}%
+ {\addtocounter{LWR at hdashedlines}{1}}%
+ \LWR at getmynexttoken%
+}%
+\DeclareDocumentCommand{\lasthdashline}{o}{%
+ \ifbool{FormatWP}%
+ {\LWR at docdashline{1-\arabic{LWR at tabletotalcols}}}%
+ {\addtocounter{LWR at hdashedlines}{1}}%
+ \LWR at getmynexttoken%
+}%
\renewcommand{\multicolumn}{\LWR at htmlmulticolumn}%
\renewcommand*{\mrowcell}{%
\LWR at maybenewtablerow%
@@ -8250,7 +8588,7 @@
\RenewDocumentCommand{\InlineClass}{o m +m}{##3}%
\RenewDocumentEnvironment{BlockClass}{o m}{}{}%
\renewcommand{\BlockClassSingle}[2]{##2}%
-\LetLtxMacro{\hspace}{\LWR at orighspace}%
+\LetLtxMacro\hspace\LWR at orighspace%
\LetLtxMacro\hfill\LWR at orighfill%
\LetLtxMacro\hfil\LWR at orighfil%
\LetLtxMacro\rule\LWR at origrule%
@@ -8265,6 +8603,7 @@
\let\raggedleft\LWR at origraggedleft%
\let\centering\LWR at origcentering%
\let\,\LWR at origcomma% disable HTML short unbreakable space
+\let\thinspace\LWR at origthinspace% disable HTML short unbreakable space
\let\textellipsis\LWR at origtextellipsis%
\let\textless\LWR at origtextless%
\let\textgreater\LWR at origtextgreater%
@@ -8321,7 +8660,7 @@
\LetLtxMacro\resizebox\LWR at origresizebox%
\let\framebox\LWR at origframebox%
\LetLtxMacro\mbox\LWR at origmbox%
-\let\makebox\LWR at origmakebox%
+\LetLtxMacro\makebox\LWR at origmakebox%
\let\fbox\LWRprint at fbox%
\let\fboxBlock\LWRprint at fbox%
\LetLtxMacro\fminipage\LWRprint at fminipage%
@@ -10145,15 +10484,22 @@
\newcommand*{\LWR at f@shape}{up}
\newcommand*{\LWR at textcurrentfont}[1]{%
-\csuse{text\LWR at f@family}{%
-\csuse{text\LWR at f@series}{%
-\csuse{text\LWR at f@shape}{%
-#1%
-}%
-}%
-}%
+\InlineClass{%
+ text\LWR at f@family\LWR at origtilde{}%
+ text\LWR at f@series\LWR at origtilde{}%
+ text\LWR at f@shape%
+ }%
+ {#1}%
}
+\newenvironment*{LWR at blocktextcurrentfont}{%
+\BlockClass{%
+ text\LWR at f@family\LWR at origtilde{}%
+ text\LWR at f@series\LWR at origtilde{}%
+ text\LWR at f@shape%
+ }%
+}{\endBlockClass}
+
\renewrobustcmd*{\mdseries}{\renewcommand*{\LWR at f@series}{md}}
\renewrobustcmd*{\bfseries}{\renewcommand*{\LWR at f@series}{bf}}
@@ -10224,6 +10570,7 @@
\renewrobustcmd*{\,}{\HTMLunicode{202f}} % HTML thin non-breakable space
+\renewrobustcmd*{\thinspace}{\HTMLunicode{202f}} % HTML thin non-breakable space
\renewrobustcmd*{~}{\HTMLentity{nbsp}}
@@ -10321,7 +10668,7 @@
}
\NewDocumentCommand{\LWR at nohspace}{s m}{}
-\LetLtxMacro{\hspace}{\LWR at hspace}
+\LetLtxMacro\hspace\LWR at hspace
\NewDocumentCommand{\LWR at vspace}{s m}{}
\LetLtxMacro\vspace\LWR at vspace
More information about the tex-live-commits
mailing list