From a7ecf3589db1dd3722fda599c2ac8e80ac17b6ad Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 13 Jul 2017 23:05:35 +0000 Subject: lwarp (11jul17) git-svn-id: svn://tug.org/texlive/trunk@44781 c570f23f-e606-0410-a88d-b1316a301751 --- .../texk/texlive/linked_scripts/lwarp/lwarpmk.lua | 2 +- Master/texmf-dist/doc/latex/lwarp/README.txt | 2 +- Master/texmf-dist/doc/latex/lwarp/lwarp.pdf | Bin 1484432 -> 1500385 bytes Master/texmf-dist/scripts/lwarp/lwarpmk.lua | 2 +- Master/texmf-dist/source/latex/lwarp/lwarp.dtx | 916 ++++++++++++++------- Master/texmf-dist/tex/latex/lwarp/lwarp-alltt.sty | 4 +- .../texmf-dist/tex/latex/lwarp/lwarp-fancyhdr.sty | 12 +- .../texmf-dist/tex/latex/lwarp/lwarp-ltcaption.sty | 1 - Master/texmf-dist/tex/latex/lwarp/lwarp-verse.sty | 4 +- Master/texmf-dist/tex/latex/lwarp/lwarp.sty | 247 ++++-- 10 files changed, 828 insertions(+), 362 deletions(-) diff --git a/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua b/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua index 83cfd06edd9..5c6f7576aaf 100755 --- a/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua +++ b/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua @@ -4,7 +4,7 @@ -- Print the usage of the lwarpmk command: -printversion = "v0.32" +printversion = "v0.33" function printhelp () print ("lwarpmk: Use lwarpmk -h or lwarpmk --help for help.") ; diff --git a/Master/texmf-dist/doc/latex/lwarp/README.txt b/Master/texmf-dist/doc/latex/lwarp/README.txt index 22db4ca6457..645dd1c553d 100644 --- a/Master/texmf-dist/doc/latex/lwarp/README.txt +++ b/Master/texmf-dist/doc/latex/lwarp/README.txt @@ -1,5 +1,5 @@ -LaTeX lwarp package v0.32 README.txt +LaTeX lwarp package v0.33 README.txt Files included are: diff --git a/Master/texmf-dist/doc/latex/lwarp/lwarp.pdf b/Master/texmf-dist/doc/latex/lwarp/lwarp.pdf index 52671ae8d0d..b3f8bf8ebd6 100644 Binary files a/Master/texmf-dist/doc/latex/lwarp/lwarp.pdf and b/Master/texmf-dist/doc/latex/lwarp/lwarp.pdf differ diff --git a/Master/texmf-dist/scripts/lwarp/lwarpmk.lua b/Master/texmf-dist/scripts/lwarp/lwarpmk.lua index 83cfd06edd9..5c6f7576aaf 100755 --- a/Master/texmf-dist/scripts/lwarp/lwarpmk.lua +++ b/Master/texmf-dist/scripts/lwarp/lwarpmk.lua @@ -4,7 +4,7 @@ -- Print the usage of the lwarpmk command: -printversion = "v0.32" +printversion = "v0.33" function printhelp () print ("lwarpmk: Use lwarpmk -h or lwarpmk --help for help.") ; diff --git a/Master/texmf-dist/source/latex/lwarp/lwarp.dtx b/Master/texmf-dist/source/latex/lwarp/lwarp.dtx index a956f0a45f7..f21ed1054b1 100644 --- a/Master/texmf-dist/source/latex/lwarp/lwarp.dtx +++ b/Master/texmf-dist/source/latex/lwarp/lwarp.dtx @@ -16,7 +16,7 @@ % \iffalse %\NeedsTeXFormat{LaTeX2e}[1999/12/01] %\ProvidesPackage{lwarp} -% [2017/06/09 v0.32 Allows LaTeX to directly produce HTML5 output.] +% [2017/07/10 v0.33 Allows LaTeX to directly produce HTML5 output.] % %<*driver> \documentclass{ltxdoc} @@ -390,7 +390,12 @@ by setting \cs{LateximageFontSizeName} to a font size name --- \emph{without the \newcommand{\limitsmath}{% -Math may be rendered as \SVG\ graphics or using the \textsc{MathJax} JavaScript display engine. + +\limitsntheoremnumbering + +Math may be rendered +\margintag{Math rendering} +as \SVG\ graphics or using the \textsc{MathJax} JavaScript display engine. \index{JavaScript>MathJax} For \SVG\ math, @@ -505,8 +510,15 @@ This conversion is not total. Font control is via \CSS, and the custom \LaTeX\ font settings are ignored. -\pkg{ntheorem} has a bug with equation numbering in AMS environments -\watchout[Equation numbering] +\limitsntheoremnumbering +} + +\newcommand{\limitsntheoremnumbering}{% +\pkg{ntheorem} has a bug with equation numbering in \AmS\ environments% +\watchout[Equation numbering]% +\index{equation>miss-numbered}% +\index{split>miss-numbered}% +\index{AMSmath>split miss-numbered} when the option \texttt{thref} is used. \pkg{lwarp} does not share this bug, so equations with \cs{split}, etc, are numbered correctly with \pkg{lwarp}'s \HTML\ output, but not with the print output. @@ -569,6 +581,31 @@ unlike \LaTeX{}, so expect some ugly results for scaling and rotating. } +\newcommand{\limitssvgimages}{% +When a math expression, \texttt{picture}, or \tikz\ environment is added or +\watchout[Adding/removing] +removed, the \SVG\ images must be re-created with \texttt{lwarpmk limages} +to maintain the proper image file sequence numbers. + +If \HTML\ appears where an \SVG\ image should be,\watchout[\HTML\ instead of images]% +\index{math>showing as HTML}% +\index{images>showing as HTML}% +\index{SVG>images showing as HTML}% +\index{HTML>in place of SVG images} +recompile the document one more +time to get the page numbers back in sync, then remake the images one more time. + +Expressing math as \SVG\ images has the advantage of representing +the math exactly as \LaTeX\ would, but has the disadvantage of requiring +an individual file for each math expression. +\watchout[Lots of files!] +There is no attempt at +reusing the same file each time the same expression occurs, so each +time \texttt{\$x\$} is used, for example, yet another file is created. +For a document with a large amount of math, +see \cref{sec:tutorialmathjax} to use MathJax instead. +} + \newcommand{\limitsxcolor}{% Color definitions, models, and mixing are fully supported \margintag{support} @@ -587,6 +624,17 @@ Use \CSS\ or \cs{textcolor} where possible. \newcommand{\limitstabular}{% \begin{itemize} +\item When defining environments or macros which include \env{tabular} plus + \margintag{misplaced alignment alignment tab character \&} + \index{alignment tab character \&, misplaced} + \index{misplaced alignment tab character \&} + instances of the \texttt{\&} character, it may be + necessary to make \texttt{\&} active before the environment or macro is defined, + then restore \texttt{\&} to its default catcode after, using the following commands: \\ + \hspace*{.375in} \cs{StartDefiningTabulars} \\ + \hspace*{.375in} \\ + \hspace*{.375in} \cs{EndDefiningTabulars} + \item Vertical rules are not yet supported. \margintag{column types} @@ -629,6 +677,12 @@ Use \CSS\ or \cs{textcolor} where possible. due to \CSS\ limitations. \margintag{\cs{cmidrule} width, trim} +\item \cs{cmidrule} borders are generated by the individual cells + \margintag{\cs{cmidrule} and \cs{multicolumn}} + on the following row, + and so do not necessarily work correctly when the following row + has \cs{multicolumn} cells below \cs{cmidrule} borders. + \item For \pkg{longtable}, place headings and footings which \margintag{\env{longtable} headings} do not apply to \HTML\ inside \cs{warpprintonly\{\}}. @@ -972,7 +1026,7 @@ This boolean may be tested by the user for later use. %<*package> % \fi % -% \CheckSum{10994} +% \CheckSum{0} % % \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 @@ -1043,6 +1097,8 @@ This boolean may be tested by the user for later use. % \changes{v0.30}{2017/04/29}{\ 2017/04/29} % \changes{v0.31}{2017/05/15}{\ 2017/05/15} % \changes{v0.32}{2017/06/09}{\ 2016/06/09} +% \changes{v0.33}{2017/07/10}{\ 2017/07/10} + @@ -1176,6 +1232,23 @@ This boolean may be tested by the user for later use. % For a detailed list of changes, see the Change History on page \pageref{sec:changehistory}. % % \begin{description} +% \item[v0.33:] \ +% \begin{itemize} +% \item Tabular |@| and |!| columns now have their own \HTML\ columns. +% \item |&| catcode changes are localized, perhaps causing errors +% about the tab alignment character |&|, +% so any definitions of macros or environments +% which themselves contain \env{tabular} and |&| must be enclosed within \cs{StartDefiningTabulars} +% and \cs{EndDefiningTabulars}. See \cref{sec:localizingampersand}. +% This change is not required for the routine use of tables, +% but only when a table is defined inside another macro or environment, +% and while also using the |&| character inside the definition. +% This may include the use inside conditional expressions. +% \item Several math environments were incorrectly placed inline. +% Also, for \pkg{amsmath} with \SVG\ math, the |fleqn| option has been removed, +% resulting in improved spacing for aligned equations. +% \item Bug fixes; see the changelog. +% \end{itemize} % \item[v0.32:] Bug fixes; no source changes needed: % \begin{itemize} % \item |lwarpmk| has been adjusted to work with the latest |luatex|. @@ -1187,6 +1260,7 @@ This boolean may be tested by the user for later use. % \item Improved compatibility with \pkg{keyfloat}, % including the new \env{keywrap} environment. % \end{itemize} +% \needspace{2\baselineskip} % \item[v0.30:] \ % \begin{itemize} % \item \pkg{lwarp-newproject} has been removed, and its functions @@ -1298,142 +1372,144 @@ This boolean may be tested by the user for later use. % |lwarpmk| is modified to add |printglosssary| and |htmlglossary| actions. % \end{itemize} % -% \item[v0.27:] \ -% \begin{itemize} -% \item Improved documentation for MacOS install. -% \item Fix for \pkg{microtype} with \XeLaTeX\ and \LuaLaTeX. -% \item Fix for table footnote paragraph tags. -% \item Adds \pkg{lettrine}, \pkg{ulem}, and \pkg{soul}. -% \end{itemize} -% \needspace{2\baselineskip} -% \item[v0.26:] \ -% \begin{itemize} -% \item Improved installation instructions for MiK\TeX\ regarding generating -% the |lwarpmk| executable. -% \item Footnotes are now supported by \LaTeX\ boxes instead of pagenotes. -% \pkg{pagenote} now works as per the print version. -% \pkg{footnote}, \pkg{footnotehyper}, \pkg{footmisc}, \pkg{endnotes}, -% \pkg{marginnote}, and \pkg{sidenotes} are also supported. -% \item \LaTeX\ labels now are used to track the page numbers of |latexiamge|s. -% This allows the correct inclusion of |lateximage|s in footnotes, pagenotes, and endnotes. -% \item \pkg{cutwin} and \pkg{floatflt} are also supported. -% \end{itemize} -% \needspace{2\baselineskip} -% \item[v0.25:] \ -% \begin{itemize} -% \item Fix: Allows \pkg{graphicx} and \pkg{graphicsx} before \pkg{lwarp} because -% \XeLaTeX\ and \LuaLaTeX\ use \pkg{xunicode} which uses \pkg{graphics}. -% \item Package support for \pkg{framed}, several theorem packages, and ellipses. -% \end{itemize} -% \needspace{2\baselineskip} -% \item[v0.24:] \ -% \begin{itemize} -% \item \pkg{tikz}'s |babel| library is load automatically as needed. -% \item \pkg{subfig} has been added, along with |lofdepth| and |lotdepth|. -% \item \env{picture} and \env{tikzpicture} now may be inline. -% \end{itemize} -% \needspace{2\baselineskip} -% \item[v0.22:] \ -% \begin{itemize} -% \item Support has been added for tabular column types |D|, |!|, and |X|. -% Unknown column types are converted to |l|. -% \item Additional packages are supported, including \pkg{abstract}, -% \pkg{dcolumn}, \pkg{tabularx}, and \pkg{varioref}. -% \end{itemize} -% \item[v0.21:] \ -% \begin{itemize} -% \item Documentation for installing on Windows has been updated and improved. -% \item For Windows compatibility, the |lateximages| shell script -% has been replaced with a |lateximages.txt| file, which is parsed -% by |lwarpmk| to generate lateximages. -% This does not require any changes in the user's code. -% \item Windows |lwarpmk again| now functions. -% \item For improved error handling, \pkg{lwarp} now verifies the -% order in which packages are loaded, and signals an error for misplaced packages. -% \pkg{inputenc}, \pkg{fontenc}, \pkg{newunicode}, and \pkg{fontspec} -% must be loaded before \pkg{lwarp}, and the other packages which -% \pkg{lwarp} knows about must be loaded after. -% \item \pkg{lwarp} no longer requires a \cs{title} be assigned. -% \end{itemize} -% \item[v0.20:] \ -% \begin{itemize} -% \item The |makefile| and related infrastructure -% has been replaced by the |lwarpmk| utility. -% This provides increased portability, reduced dependencies, -% and much simpler installation and setup. -% \item The |lwarp-newproject| package is now used to locally create -% support files. -% \item The print and \HTML\ versions of a document may co-exist with their -% own sets of auxiliary files. -% \item Package handling is now controlled by a modular system which -% looks for and loads an |lwarp-| version if available. -% \item High-level source compatibility is provided for all supported -% packages, almost totally eliminating the need -% for |warpprint| and |warpHTML| environments. -% \item A large number of additional packages are supported. -% \item A new tutorial is included in the documentation, and -% many obsolete sections have been removed. -% \item \cs{NewHTMLdescription} sets the \HTML\ meta description tag for each file. -% See \cref{sec:htmldescription}. (v0.30 changes this to \cs{HTMLDescription}.) -% \item \cs{HTMLFilename} may now be empty, allowing filenames without a prefix. -% Lwarp no longer automatically appends a |-| character. -% \watchout -% For existing projects, add a |-| to the end of \cs{HTMLFilename}. -% \item \cs{HomeHTMLFilename} and \cs{HTMLFilename} no longer use -% escaped underscore\watchout\ -% characters. Underscores may be used in filenames as-is. -% (Version 0.30 changes these to package options |HomeHTMLFilename| and -% |HTMLFilename|.) -% \item \pkg{lwarp} now tries to auto-detect the operating system, -% and \cs{warpOSwindows} is only needed if the auto-detection -% fails to detect Windows. (As of v0.30, \cs{warpOSwindows} has been converted to -% the |OSWindows| option.) -% \item Tabular column types |@|, |>|, and |<| are now supported. -% \item |BlockClass| and \cs{InlineClass} add an optional style. -% \item The |sidebar| and |example| environments have been moved to the -% test suite, and are no longer included in \pkg{lwarp}. -% \end{itemize} -% \item[v0.19:] \ -% \begin{itemize} -% \item \textsc{MathJax} now may be used to display math via the |mathjax| option. -% See \cref{sec:loading,sec:limitsmath}. -% To use MathJax with a pre-existing project, -% \watchout -% copy or link the file |lwarp_mathjax.txt| to the project's directory. -% \item \cs{rule} added, supporting width, height, raise, \cs{textcolor}. -% \item \cs{LateximageFontSizeName} provides user-adjustable font size for math -% and \env{lateximage}s. -% \item \cs{minipagefullwidth} requests that the next minipage be -% full-width in \HTML, but still the assigned width in print. -% \item \env{minipage} improved side-by-side rendering. -% \item CSS class |tablenotes| is provided for table note items. -% \item \cs{warpprintonly} replaces \cs{rowprintedonly}, -% and \cs{warpHTMLonly} is added. These behave like the \env{warpprint} -% \watchout -% and \env{warpHTML} environments, and are generally useful, so they replace -% the previously table-specific syntax. -% \item \pkg{cleveref} is loaded \cs{AtEndPreamble} for improved reliability. -% See \cref{sec:cleveref}. -% \item \cs{xfracHTMLfontsize} controls \pkg{xfrac} font size in \HTML. -% \item \tikz\ improved catcode handling. -% \end{itemize} -% \item[v0.18:] \ -% \begin{itemize} -% \item The \pkg{verse} package and the verse-related commands from -% the \pkg{memoir} package are now supported. -% \item Responsive web design has been improved for the side\TOC. -% \item \cs{includegraphics} now maintains relative sized for em, ex, and \%. -% \end{itemize} -% \item[v0.17:] \ -% \begin{itemize} -% \item \pkg{mdframed} package is supported. -% \end{itemize} -% \item[v0.16:] \ -% \begin{itemize} -% \item Font and input encoding are now controlled by the user, and -% \pkg{lwarp} is loaded after fonts have been selected. -% \item Support for \XeLaTeX{} and \LuaLaTeX. See \cref{sec:fonts}. -% \end{itemize} +% ^^A \needspace{2\baselineskip} +% ^^A \item[v0.27:] \ +% ^^A \begin{itemize} +% ^^A \item Improved documentation for MacOS install. +% ^^A \item Fix for \pkg{microtype} with \XeLaTeX\ and \LuaLaTeX. +% ^^A \item Fix for table footnote paragraph tags. +% ^^A \item Adds \pkg{lettrine}, \pkg{ulem}, and \pkg{soul}. +% ^^A \end{itemize} +% ^^A \needspace{2\baselineskip} +% ^^A \item[v0.26:] \ +% ^^A \begin{itemize} +% ^^A \item Improved installation instructions for MiK\TeX\ regarding generating +% ^^A the |lwarpmk| executable. +% ^^A \item Footnotes are now supported by \LaTeX\ boxes instead of pagenotes. +% ^^A \pkg{pagenote} now works as per the print version. +% ^^A \pkg{footnote}, \pkg{footnotehyper}, \pkg{footmisc}, \pkg{endnotes}, +% ^^A \pkg{marginnote}, and \pkg{sidenotes} are also supported. +% ^^A \item \LaTeX\ labels now are used to track the page numbers of |latexiamge|s. +% ^^A This allows the correct inclusion of |lateximage|s in footnotes, pagenotes, and endnotes. +% ^^A \item \pkg{cutwin} and \pkg{floatflt} are also supported. +% ^^A \end{itemize} +% ^^A \needspace{2\baselineskip} +% ^^A \item[v0.25:] \ +% ^^A \begin{itemize} +% ^^A \item Fix: Allows \pkg{graphicx} and \pkg{graphicsx} before \pkg{lwarp} because +% ^^A \XeLaTeX\ and \LuaLaTeX\ use \pkg{xunicode} which uses \pkg{graphics}. +% ^^A \item Package support for \pkg{framed}, several theorem packages, and ellipses. +% ^^A \end{itemize} +% ^^A \needspace{2\baselineskip} +% ^^A \item[v0.24:] \ +% ^^A \begin{itemize} +% ^^A \item \pkg{tikz}'s |babel| library is load automatically as needed. +% ^^A \item \pkg{subfig} has been added, along with |lofdepth| and |lotdepth|. +% ^^A \item \env{picture} and \env{tikzpicture} now may be inline. +% ^^A \end{itemize} +% ^^A \needspace{2\baselineskip} +% ^^A \item[v0.22:] \ +% ^^A \begin{itemize} +% ^^A \item Support has been added for tabular column types |D|, |!|, and |X|. +% ^^A Unknown column types are converted to |l|. +% ^^A \item Additional packages are supported, including \pkg{abstract}, +% ^^A \pkg{dcolumn}, \pkg{tabularx}, and \pkg{varioref}. +% ^^A \end{itemize} +% ^^A \item[v0.21:] \ +% ^^A \begin{itemize} +% ^^A \item Documentation for installing on Windows has been updated and improved. +% ^^A \item For Windows compatibility, the |lateximages| shell script +% ^^A has been replaced with a |lateximages.txt| file, which is parsed +% ^^A by |lwarpmk| to generate lateximages. +% ^^A This does not require any changes in the user's code. +% ^^A \item Windows |lwarpmk again| now functions. +% ^^A \item For improved error handling, \pkg{lwarp} now verifies the +% ^^A order in which packages are loaded, and signals an error for misplaced packages. +% ^^A \pkg{inputenc}, \pkg{fontenc}, \pkg{newunicode}, and \pkg{fontspec} +% ^^A must be loaded before \pkg{lwarp}, and the other packages which +% ^^A \pkg{lwarp} knows about must be loaded after. +% ^^A \item \pkg{lwarp} no longer requires a \cs{title} be assigned. +% ^^A \end{itemize} +% ^^A \item[v0.20:] \ +% ^^A \begin{itemize} +% ^^A \item The |makefile| and related infrastructure +% ^^A has been replaced by the |lwarpmk| utility. +% ^^A This provides increased portability, reduced dependencies, +% ^^A and much simpler installation and setup. +% ^^A \item The |lwarp-newproject| package is now used to locally create +% ^^A support files. +% ^^A \item The print and \HTML\ versions of a document may co-exist with their +% ^^A own sets of auxiliary files. +% ^^A \item Package handling is now controlled by a modular system which +% ^^A looks for and loads an |lwarp-| version if available. +% ^^A \item High-level source compatibility is provided for all supported +% ^^A packages, almost totally eliminating the need +% ^^A for |warpprint| and |warpHTML| environments. +% ^^A \item A large number of additional packages are supported. +% ^^A \item A new tutorial is included in the documentation, and +% ^^A many obsolete sections have been removed. +% ^^A \item \cs{NewHTMLdescription} sets the \HTML\ meta description tag for each file. +% ^^A See \cref{sec:htmldescription}. (v0.30 changes this to \cs{HTMLDescription}.) +% ^^A \item \cs{HTMLFilename} may now be empty, allowing filenames without a prefix. +% ^^A Lwarp no longer automatically appends a |-| character. +% ^^A \watchout +% ^^A For existing projects, add a |-| to the end of \cs{HTMLFilename}. +% ^^A \item \cs{HomeHTMLFilename} and \cs{HTMLFilename} no longer use +% ^^A escaped underscore\watchout\ +% ^^A characters. Underscores may be used in filenames as-is. +% ^^A (Version 0.30 changes these to package options |HomeHTMLFilename| and +% ^^A |HTMLFilename|.) +% ^^A \item \pkg{lwarp} now tries to auto-detect the operating system, +% ^^A and \cs{warpOSwindows} is only needed if the auto-detection +% ^^A fails to detect Windows. (As of v0.30, \cs{warpOSwindows} has been converted to +% ^^A the |OSWindows| option.) +% ^^A \item Tabular column types |@|, |>|, and |<| are now supported. +% ^^A \item |BlockClass| and \cs{InlineClass} add an optional style. +% ^^A \item The |sidebar| and |example| environments have been moved to the +% ^^A test suite, and are no longer included in \pkg{lwarp}. +% ^^A \end{itemize} +% ^^A \needspace{2\baselineskip} +% ^^A \item[v0.19:] \ +% ^^A \begin{itemize} +% ^^A \item \textsc{MathJax} now may be used to display math via the |mathjax| option. +% ^^A See \cref{sec:loading,sec:limitsmath}. +% ^^A To use MathJax with a pre-existing project, +% ^^A \watchout +% ^^A copy or link the file |lwarp_mathjax.txt| to the project's directory. +% ^^A \item \cs{rule} added, supporting width, height, raise, \cs{textcolor}. +% ^^A \item \cs{LateximageFontSizeName} provides user-adjustable font size for math +% ^^A and \env{lateximage}s. +% ^^A \item \cs{minipagefullwidth} requests that the next minipage be +% ^^A full-width in \HTML, but still the assigned width in print. +% ^^A \item \env{minipage} improved side-by-side rendering. +% ^^A \item CSS class |tablenotes| is provided for table note items. +% ^^A \item \cs{warpprintonly} replaces \cs{rowprintedonly}, +% ^^A and \cs{warpHTMLonly} is added. These behave like the \env{warpprint} +% ^^A \watchout +% ^^A and \env{warpHTML} environments, and are generally useful, so they replace +% ^^A the previously table-specific syntax. +% ^^A \item \pkg{cleveref} is loaded \cs{AtEndPreamble} for improved reliability. +% ^^A See \cref{sec:cleveref}. +% ^^A \item \cs{xfracHTMLfontsize} controls \pkg{xfrac} font size in \HTML. +% ^^A \item \tikz\ improved catcode handling. +% ^^A \end{itemize} +% ^^A \item[v0.18:] \ +% ^^A \begin{itemize} +% ^^A \item The \pkg{verse} package and the verse-related commands from +% ^^A the \pkg{memoir} package are now supported. +% ^^A \item Responsive web design has been improved for the side\TOC. +% ^^A \item \cs{includegraphics} now maintains relative sized for em, ex, and \%. +% ^^A \end{itemize} +% ^^A \item[v0.17:] \ +% ^^A \begin{itemize} +% ^^A \item \pkg{mdframed} package is supported. +% ^^A \end{itemize} +% ^^A \item[v0.16:] \ +% ^^A \begin{itemize} +% ^^A \item Font and input encoding are now controlled by the user, and +% ^^A \pkg{lwarp} is loaded after fonts have been selected. +% ^^A \item Support for \XeLaTeX{} and \LuaLaTeX. See \cref{sec:fonts}. +% ^^A \end{itemize} % \end{description} % % \clearpage @@ -2532,20 +2608,7 @@ This boolean may be tested by the user for later use. % \item Copy/paste a math expression into a text editor to see the \LaTeX\ source. % \end{enumerate} % -% When a math expression, |picture|, or \tikz\ environment is added or -% \watchout[Adding/removing] -% removed, the \SVG\ images must be re-created with |lwarpmk limages| -% to maintain the proper image file sequence numbers. -% -% Expressing math as \SVG\ images has the advantage of representing -% the math exactly as \LaTeX\ would, but has the disadvantage of requiring -% an individual file for each math expression. -% \watchout[Lots of files!] -% There is no attempt at -% reusing the same file each time the same expression occurs, so each -% time \$x\$ is used, for example, yet another file is created. -% For a document with a large amount of math, -% see \cref{sec:tutorialmathjax} to use MathJax instead. +% \limitssvgimages % % \clearpage % @@ -4135,6 +4198,8 @@ This boolean may be tested by the user for later use. % \item |lwarpmk limages| to refresh the |lateximage| images. % \end{itemize} % +% \item[SVG images:] \limitssvgimages +% % \item [``Leaders not followed by proper glue'':] This can be caused by % a missing |l@| or |l@| definition. % See \pkg{lwarp}'s definitions for examples. @@ -4809,12 +4874,18 @@ after lwarp.} % \begin{macro}{\LWR@loadbefore} \marg{packagename} \quad % Error if this package is after \pkg{lwarp}. % +% \changes{v0.33}{2017/07/06}{Fix: No \cs{PackageError} if already loaded.} +% % \begin{macrocode} \newcommand*{\LWR@loadbefore}[1]{% +\@ifpackageloaded{#1} +{} +{ \PackageError{lwarp} {Package #1 must be loaded before lwarp} {Move \detokenize{\usepackage}{#1} before \detokenize{\usepackage}{lwarp}.} } +} % \end{macrocode} % \end{macro} @@ -5373,9 +5444,10 @@ top=1in,bottom=1in,% % so the options |leqno| and |fleqn| are passed beforehand to be % picked up both here and by \pkg{newtxmath} if it is used. % \changes{v0.16}{2016/04/11}{Fix: newtxmath compatibility.} +% \changes{v0.33}{2016/06/21}{\protect\pkg{amsmath}: Removed \protect\texttt{fleqn} option.} % % \begin{macrocode} -\PassOptionsToPackage{leqno,fleqn}{amsmath} +\PassOptionsToPackage{leqno}{amsmath} \RequirePackage{amsmath} % \end{macrocode} @@ -6701,6 +6773,8 @@ td {padding: 1ex .5em 1ex .5em ;} table td.tdl { text-align: left ; vertical-align: middle ; } table td.tdc { text-align: center ; vertical-align: middle ; } +table td.tdat { text-align: center ; vertical-align: middle ; padding: 0px ; margin: 0px ; } +table td.tdbang { text-align: center ; vertical-align: middle ; } table td.tdr { text-align: right ; vertical-align: middle ; } table td.tdp { text-align: left ; vertical-align: bottom ; } table td.tdm { text-align: left ; vertical-align: middle ; } @@ -6712,6 +6786,10 @@ table td.tdlrule { text-align: left ; border-top: 1px solid silver ; vertical-align: middle ; } /* for cmidrule */ table td.tdcrule { text-align: center ; border-top: 1px solid silver ; vertical-align: middle ; } +table td.tdatrule { text-align: center ; border-top: 1px solid silver ; + vertical-align: middle ; padding: 0px ; margin: 0px ; } +table td.tdbangrule { text-align: center ; border-top: 1px solid silver ; + vertical-align: middle ; } /* for cmidrule */ table td.tdrrule { text-align: right ; border-top: 1px solid silver ; vertical-align: middle ; } table td.tdprule { text-align: left ; border-top: 1px solid silver ; @@ -7845,7 +7923,7 @@ src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX- -- Print the usage of the lwarpmk command: -printversion = "v0.32" +printversion = "v0.33" function printhelp () print ("lwarpmk: Use lwarpmk -h or lwarpmk --help for help.") ; @@ -8566,7 +8644,7 @@ end -- not --version % % To assign an empty value: % \begin{sourcedisplay} -% |\LWR@setexparray{name}{index}{\relax}| +% |\LWR@setexparray{name}{index}{}| % \end{sourcedisplay} % % \changes{v0.20}{2017/01/07}{Added single-expansion data arrays.} @@ -8580,7 +8658,9 @@ end -- not --version % \begin{macro}{\LWR@setexparray} \marg{name} \marg{index} \marg{contents} % \begin{macrocode} \NewDocumentCommand{\LWR@setexparray}{m m m}{% -\expandafter\edef\csname #1#2\endcsname{\expandonce#3}% +\ifthenelse{\isempty{#3}}% +{\csdef{#1#2}{}} +{\expandafter\edef\csname #1#2\endcsname{\expandonce#3}}% } % \end{macrocode} % \end{macro} @@ -9848,8 +9928,10 @@ end -- not --version % % \changes{v0.28}{2017/04/06}{Added \cs{HTMLauthor}. (Renamed in v0.30.)} % \changes{v0.30}{2017/04/28}{Renamed from \cs{HTMLauthor}.} +% \changes{v0.33}{2017/06/18}{Fix: Provides empty default author if none given.} % % \begin{macrocode} +\providecommand{\theauthor}{} \newcommand{\theHTMLAuthor}{\theauthor} \newcommand{\HTMLAuthor}[1]{\renewcommand{\theHTMLAuthor}{#1}} @@ -10743,6 +10825,7 @@ end -- not --version \LWR@traceinfo{chapter #3}% \LWR@epubprintpendingfootnotes% \LWR@stoppars% + \LWR@startnewdepth{\LWR@depthchapter}{\LWR@printclosechapter}% \LWR@traceinfo{chapter: about to LWR@section}% @@ -11160,11 +11243,6 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% \fvset{frame=none}% % \end{macrocode} % -% The ampersand is redefined active, and acts depending -% on whether it is inside a tabular. -% \begin{macrocode} -\catcode`\&=\active -% \end{macrocode} % Allow \HTML\ paragraphs to begin: % \begin{macrocode} \LWR@startpars @@ -12275,9 +12353,9 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% \AfterEndPreamble{ \AtBeginEnvironment{verbatim}{% \LWR@forcenewpage -\LWR@atbeginverbatim{verbatim}\unskip\vspace*{-\baselineskip}% +\LWR@atbeginverbatim{verbatim}\unskip\LWR@origvspace*{-\baselineskip}% } -\AfterEndEnvironment{verbatim}{\unskip\vspace*{-\baselineskip}\LWR@afterendverbatim} +\AfterEndEnvironment{verbatim}{\unskip\LWR@origvspace*{-\baselineskip}\LWR@afterendverbatim} } % \end{macrocode} % \end{environment} @@ -12599,7 +12677,7 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% \AfterEndEnvironment{BVerbatim} { -\leavevmode\par\vspace{-\baselineskip} +\leavevmode\par\LWR@origvspace{-\baselineskip} \LWR@afterendverbatim } % \end{macrocode} @@ -12611,12 +12689,12 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% % ^^A \AtBeginEnvironment{LVerbatim} % ^^A { % ^^A \LWR@atbeginverbatim{lverbatim} -% ^^A \unskip\vspace{-\baselineskip} +% ^^A \unskip\LWR@origvspace{-\baselineskip} % ^^A } % ^^A \AfterEndEnvironment{LVerbatim} % ^^A { -% ^^A \unskip\vspace{-\baselineskip} +% ^^A \unskip\LWR@origvspace{-\baselineskip} % ^^A \LWR@afterendverbatim % ^^A } % ^^A \end{macrocode} @@ -12636,7 +12714,7 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% % ^^A % ^^A \renewcommand*{\UseVerbatim}[1]{% % ^^A \LWR@atbeginverbatim{bverbatim}% -% ^^A \unskip\vspace{-\baselineskip}% +% ^^A \unskip\LWR@origvspace{-\baselineskip}% % ^^A \LWR@origUseVerbatim{#1}% % ^^A \unskip% % ^^A \LWR@afterendverbatim% @@ -12889,6 +12967,9 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% % % \changes{v0.20}{2017/01/07}{Added @, \protect\textless, \protect\textgreater\ columns.} % \changes{v0.20}{2017/01/17}{Tabular: \cs{unskip} extra spaces.} +% \changes{v0.33}{2017/06/20}{New handling of \protect\texttt{\&} to localize catcode changes.} +% \changes{v0.33}{2017/07/10}{Add: Tabular at and bang columns now have their +% own HTML columns.} % % \subsection{Token lookahead} @@ -12971,6 +13052,14 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% % \end{macrocode} +% \DescribeBoolean{LWR@skipatbang} +% True if just finished a \cs{multicolumn} so should not print the trailing +% |@| or |!| columns. +% \begin{macrocode} +\newbool{LWR@skipatbang} +% \end{macrocode} + + % \DescribeBoolean{LWR@intabularmetadata} % True if are in a tabular but not in a data cell. % Used to prevent extra \HTML\ breaks if not inside table data. @@ -12981,7 +13070,7 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% -% \subsection{Handling \& and !} +% \subsection{Handling \&, @, and !} % % \begin{minipage}{\linewidth} % For technical discussion regarding problems redefining |\&|, See: \\ @@ -13005,17 +13094,28 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% % \begin{macrocode} \unskip% \LWR@getexparray{LWR@colafterspec}{\theLWR@tablecolspos}% -\LWR@getexparray{LWR@colatspec}{\theLWR@tablecolspos}% -\LWR@getexparray{LWR@colbangspec}{\theLWR@tablecolspos}% +% % \LWR@getexparray{LWR@colatspec}{\theLWR@tablecolspos}% +% \LWR@printatbang{at}{\theLWR@tablecolspos}% +% % \LWR@getexparray{LWR@colbangspec}{\theLWR@tablecolspos}% +% \LWR@printatbang{bang}{\theLWR@tablecolspos}% % \end{macrocode} % Close paragraphs: % \begin{macrocode} \ifbool{LWR@tableparcell}{\LWR@stoppars}{}% \global\boolfalse{LWR@tableparcell}% % \end{macrocode} -% Close the table data cell: +% Close the table data cell. +% Skip the |@| and |!| cells if are closing a multicolumn cell. % \begin{macrocode} -\unskip\LWR@htmltag{/td}\LWR@orignewline% +\leavevmode\unskip\LWR@htmltag{/td}\LWR@orignewline% +\ifbool{LWR@skipatbang}% +{\boolfalse{LWR@skipatbang}}% +{% +% \LWR@getexparray{LWR@colatspec}{\theLWR@tablecolspos}% +\LWR@printatbang{at}{\theLWR@tablecolspos}% +% \LWR@getexparray{LWR@colbangspec}{\theLWR@tablecolspos}% +\LWR@printatbang{bang}{\theLWR@tablecolspos}% +}% not skipping at or bang }% not skipping mrowcell }% not exiting tabular \global\boolfalse{LWR@skippingmrowcell}% @@ -13033,12 +13133,66 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% % When not used inside a \env{tabular}, |&| performs its original % function as recorded here ( with catcode 4 ). % \begin{macrocode} -\def\LWR@origampmacro{&} +\let\LWR@origampmacro& % \end{macrocode} -% See below for why the group is used. + % \begin{macrocode} -\begingroup +\end{warpHTML} % \end{macrocode} +% +% +% +% \subsubsection{Localizing \& catcodes} +% \label{sec:localizingampersand} +% +% \codeall +% \begin{macrocode} +\begin{warpall} +% \end{macrocode} +% +% Place \cs{StartDefiningTabulars} and +% \cs{EndDefiningTabulars}\margintag{misplaced alignment tab character \&} +% \index{alignment tab character \&, misplaced} +% \index{misplaced alignment tab character \&} +% before and after defining macros or environments which include +% the tabular \texttt{\&} character in their definitions. +% +% The catcode of \texttt{\&} must be changed before the definitions begin, +% and must be restored afterwards. Doing so avoids the error\\ +% \hspace*{.5in}\texttt{misplaced alignment tab character \&} +% +% \begin{macro}{\StartDefiningTabulars} Place before defining something with |&| in it. +% \changes{v0.33}{2017/06/20}{Add: Avoids error: \protect\texttt{misplaced alignment tab character \&}.} +% \begin{macrocode} +\newcommand{\StartDefiningTabulars}{% +\warpHTMLonly{\catcode`\&=\active}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\EndDefiningTabulars} Place after defining something with |&| in it. +% \begin{macrocode} +\newcommand{\EndDefiningTabulars}{% +\warpHTMLonly{\catcode`\&=4}% +} +% \end{macrocode} +% \end{macro} + +% \begin{macrocode} +\end{warpall} +% \end{macrocode} +% +% +% \subsubsection{Handling \&} +% +% +% \codehtml +% \begin{macrocode} +\begin{warpHTML} +% \end{macrocode} +% +% + % % \changes{v0.15}{2016/03/31}{Ampersand (\&): Fixed handling when passed as an argument.} % @@ -13048,11 +13202,9 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% % in which case it performs special processing for \HTML\ conversion. % If not, it behaves normally. % -% The |\catcode| allows the |&| character to be redefined. % \begin{macrocode} -\catcode`\&=\active - -\gdef&{% +\newcommand*{\LWR@tabularampersand}{% +\LWR@traceinfo{LWR@tabularampersand}% \ifthenelse{\cnttest{\value{LWR@tabulardepth}}{>}{0}}% {% % \end{macrocode} @@ -13074,15 +13226,16 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% % \begin{macrocode} {\LWR@origampmacro}% } -\endgroup % \end{macrocode} -% Outside the group, |&| is left its original catcode for now. +% |&| is left with its original catcode for now. % % \pkg{tikz} package seems to require |&| be left alone until after -% \pkg{tikz} has been loaded. +% \pkg{tikz} has been loaded. Also, \pkg{cleveref} uses the ampersand in +% one of its options. % -% \cs{LWR@lwarpStart} finally makes |&| active at the beginning of the -% \HTML\ conversion. +% |&| is made active inside a \env{tabular}. +% +% |&| is left alone when in math alignments. % \end{macro} % @@ -13136,10 +13289,12 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% % \end{macrocode} % \begin{macro}{\LWR@tablecolspec} Holds the parsed column specification, -% of total width |LWR@tabletotalcols|. +% of total width |LWR@tabletotalcols|, not counting |@| and |!| columns. +% +% Will contain a string such as |llrrccpc|, exactly one letter per \LaTeX\ table column, +% without |@|, |!|, |>|, |<|, or the vertical pipe. % -% Will contain a string such as |llrrccpc|, exactly one letter per column, -% without |@|, |>|, |<|, or the vertical pipe. +% This is indexed by the counter |LWR@tabletotalcols|. % \begin{macrocode} \newcommand*{\LWR@tablecolspec}{} % \end{macrocode} @@ -13160,9 +13315,12 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% % \DescribeCounter{LWR@tablecolswidth} -% Holds the width of the table specification. +% Holds the width of the table columns specification. % -% (This is not the total \# columns.) +% This is the number of tokens, including one for each |@| etc. column, and also +% one each for the parameters of |p|, |@|, etc. columns, and three for each |D| column. +% +% (This is not the total \# of \LaTeX\ columns in the table.) % \begin{macrocode} \newcounter{LWR@tablecolswidth} % \end{macrocode} @@ -13170,12 +13328,13 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% % \DescribeCounter{LWR@tablecolspos} % Where are currently looking into the table column specification. +% Index starts at 1. % \begin{macrocode} \newcounter{LWR@tablecolspos} % \end{macrocode} % \DescribeCounter{LWR@tabletotalcols} -% Holds the final number of table columns. +% Holds the final number of table columns, not counting |@| and |!| columns. % \begin{macrocode} \newcounter{LWR@tabletotalcols} % \end{macrocode} @@ -13203,10 +13362,18 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% % \subsection{Parsing @, >, <, ! columns} % +% +% Holds the parsed argument for |@|, |>|, |<|, or |!| columns: +% \begin{macrocode} +\newcommand*{\LWR@colparameter}{} +% \end{macrocode} +% % \begin{macro}{\LWR@parseatcolumn} % % Handles |@{text}| columns. % +% \changes{v0.33}{2017/07/07}{Fix: Column alignment with leftmost \protect\texttt{@}.} +% % \begin{macrocode} \newcommand*{\LWR@parseatcolumn}{% % \end{macrocode} @@ -13219,7 +13386,7 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% % \begin{macrocode} \LWR@traceinfo{about to read the next token:}% \expandarg% -\StrChar{\LWR@origcolspec}{\theLWR@tablecolspos}[\LWR@strresult] +\StrChar{\LWR@origcolspec}{\theLWR@tablecolspos}[\LWR@colparameter] \fullexpandarg% % \end{macrocode} % Store the result into a data array, expanding once out of \cs{LWR@strresult}: @@ -13228,22 +13395,25 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% \ifthenelse{\cnttest{\value{LWR@tabletotalcols}}=0} {% left edge of the table: \LWR@traceinfo{at the left edge}% -\LWR@setexparray{LWR@colatspec}{leftedge}{\LWR@strresult}% +\LWR@setexparray{LWR@colatspec}{leftedge}{\LWR@colparameter}% +\LWR@traceinfo{at the left edge: % + \LWR@getexparray{LWR@colatspec}{leftedge}}% }% {% not at the left edge: \LWR@traceinfo{not at the left edge}% -\LWR@setexparray{LWR@colatspec}{\theLWR@tabletotalcols}{\LWR@strresult}% +\LWR@setexparray{LWR@colatspec}{\theLWR@tabletotalcols}{\LWR@colparameter}% \LWR@traceinfo{at \theLWR@tabletotalcols: % - \LWR@getexparray{LWR@colatspec}{\theLWR@tabletotalcols})!}% -\let\LWR@strresult\relax% -\booltrue{LWR@validtablecol}% + \LWR@getexparray{LWR@colatspec}{\theLWR@tabletotalcols}}% }% +\let\LWR@colparameter\relax% +\booltrue{LWR@validtablecol}% } % \end{macrocode} % \end{macro} % % % \begin{macro}{\LWR@parsebangcolumn} +% Handles |!{text}| columns. % % \changes{v0.22}{2017/02/28}{Added tabular \texttt{!!} column.} % @@ -13259,7 +13429,7 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% % \begin{macrocode} \LWR@traceinfo{about to read the next token:}% \expandarg% -\StrChar{\LWR@origcolspec}{\theLWR@tablecolspos}[\LWR@strresult] +\StrChar{\LWR@origcolspec}{\theLWR@tablecolspos}[\LWR@colparameter] \fullexpandarg% % \end{macrocode} % Store the result into a data array, expanding once out of \cs{LWR@strresult}: @@ -13268,14 +13438,14 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% \ifthenelse{\cnttest{\value{LWR@tabletotalcols}}=0} {% left edge of the table: \LWR@traceinfo{at the left edge}% -\LWR@setexparray{LWR@colbangspec}{leftedge}{\LWR@strresult}% +\LWR@setexparray{LWR@colbangspec}{leftedge}{\LWR@colparameter}% }% {% not at the left edge: \LWR@traceinfo{not at the left edge}% -\LWR@setexparray{LWR@colbangspec}{\theLWR@tabletotalcols}{\LWR@strresult}% -\LWR@traceinfo{bang \theLWR@tabletotalcols: \LWR@colbangspec(\theLWR@tabletotalcols)!}% +\LWR@setexparray{LWR@colbangspec}{\theLWR@tabletotalcols}{\LWR@colparameter}% +\LWR@traceinfo{bang \theLWR@tabletotalcols: \LWR@colparameter!}% }% -\let\LWR@strresult\relax% +\let\LWR@colparameter\relax% \booltrue{LWR@validtablecol}% } % \end{macrocode} @@ -13297,13 +13467,13 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% % Read the next token, expanding once into \cs{LWR@strresult}: % \begin{macrocode} \expandarg% -\StrChar{\LWR@origcolspec}{\theLWR@tablecolspos}[\LWR@strresult]% +\StrChar{\LWR@origcolspec}{\theLWR@tablecolspos}[\LWR@colparameter]% \fullexpandarg% % \end{macrocode} % Store the result into a data array, expanding once out of \cs{LWR@strresult}: % \begin{macrocode} -\LWR@setexparray{LWR@colbeforespec}{\theLWR@tabletotalcolsnext}{\LWR@strresult}% -\let\LWR@strresult\relax% +\LWR@setexparray{LWR@colbeforespec}{\theLWR@tabletotalcolsnext}{\LWR@colparameter}% +\let\LWR@colparameter\relax% \booltrue{LWR@validtablecol}% } % \end{macrocode} @@ -13322,15 +13492,15 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% % \end{macrocode} % Read the next token, expanding once into \cs{LWR@strresult}: % \begin{macrocode} -% \StrChar{#1}{\theLWR@tablecolspos}[\LWR@strresult] +% \StrChar{#1}{\theLWR@tablecolspos}[\LWR@colparameter] \expandarg% -\StrChar{\LWR@origcolspec}{\theLWR@tablecolspos}[\LWR@strresult]% +\StrChar{\LWR@origcolspec}{\theLWR@tablecolspos}[\LWR@colparameter]% \fullexpandarg% % \end{macrocode} % Store the result into a data array, expanding once out of \cs{LWR@strresult}: % \begin{macrocode} -\LWR@setexparray{LWR@colafterspec}{\theLWR@tabletotalcols}{\LWR@strresult}% -\let\LWR@strresult\relax% +\LWR@setexparray{LWR@colafterspec}{\theLWR@tabletotalcols}{\LWR@colparameter}% +\let\LWR@colparameter\relax% \booltrue{LWR@validtablecol}% } % \end{macrocode} @@ -13359,10 +13529,11 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% \appto\LWR@tablecolspec{#1}% \addtocounter{LWR@tabletotalcols}{1}% \addtocounter{LWR@tabletotalcolsnext}{1}% -\LWR@setexparray{LWR@colatspec}{\theLWR@tabletotalcolsnext}{\relax}% -\LWR@setexparray{LWR@colbangspec}{\theLWR@tabletotalcolsnext}{\relax}% -\LWR@setexparray{LWR@colbeforespec}{\theLWR@tabletotalcolsnext}{\relax}% -\LWR@setexparray{LWR@colafterspec}{\theLWR@tabletotalcolsnext}{\relax}% +\LWR@traceinfo{normal column \theLWR@tabletotalcols: #1}% +\LWR@setexparray{LWR@colatspec}{\theLWR@tabletotalcolsnext}{}% +\LWR@setexparray{LWR@colbangspec}{\theLWR@tabletotalcolsnext}{}% +\LWR@setexparray{LWR@colbeforespec}{\theLWR@tabletotalcolsnext}{}% +\LWR@setexparray{LWR@colafterspec}{\theLWR@tabletotalcolsnext}{}% \booltrue{LWR@validtablecol}% } % \end{macrocode} @@ -13376,11 +13547,11 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% % \begin{macrocode} \newcommand*{\LWR@parsepcolumn}[1]{% % \end{macrocode} -% Converts to the given column type. +% Converts to the given column type: % \begin{macrocode} \LWR@parsenormalcolumn{#1}% % \end{macrocode} -% skips the following width +% Skips the following width token: % \begin{macrocode} \addtocounter{LWR@tablecolspos}{1}% } @@ -13519,20 +13690,20 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% % \begin{macrocode} \setcounter{LWR@tabletotalcols}{0}% \setcounter{LWR@tabletotalcolsnext}{1}% -\LWR@setexparray{LWR@colatspec}{leftedge}{\relax}% -\LWR@setexparray{LWR@colatspec}{1}{\relax}% -\LWR@setexparray{LWR@colatspec}{2}{\relax}% -\LWR@setexparray{LWR@colatspec}{3}{\relax}% -\LWR@setexparray{LWR@colbangspec}{leftedge}{\relax}% -\LWR@setexparray{LWR@colbangspec}{1}{\relax}% -\LWR@setexparray{LWR@colbangspec}{2}{\relax}% -\LWR@setexparray{LWR@colbangspec}{3}{\relax}% -\LWR@setexparray{LWR@colbeforespec}{1}{\relax}% -\LWR@setexparray{LWR@colbeforespec}{2}{\relax}% -\LWR@setexparray{LWR@colbeforespec}{3}{\relax}% -\LWR@setexparray{LWR@colafterspec}{1}{\relax}% -\LWR@setexparray{LWR@colafterspec}{2}{\relax}% -\LWR@setexparray{LWR@colafterspec}{3}{\relax}% +\LWR@setexparray{LWR@colatspec}{leftedge}{}% +\LWR@setexparray{LWR@colatspec}{1}{}% +\LWR@setexparray{LWR@colatspec}{2}{}% +\LWR@setexparray{LWR@colatspec}{3}{}% +\LWR@setexparray{LWR@colbangspec}{leftedge}{}% +\LWR@setexparray{LWR@colbangspec}{1}{}% +\LWR@setexparray{LWR@colbangspec}{2}{}% +\LWR@setexparray{LWR@colbangspec}{3}{}% +\LWR@setexparray{LWR@colbeforespec}{1}{}% +\LWR@setexparray{LWR@colbeforespec}{2}{}% +\LWR@setexparray{LWR@colbeforespec}{3}{}% +\LWR@setexparray{LWR@colafterspec}{1}{}% +\LWR@setexparray{LWR@colafterspec}{2}{}% +\LWR@setexparray{LWR@colafterspec}{3}{}% % \end{macrocode} % Starting at the first column specification: % \begin{macrocode} @@ -13556,6 +13727,7 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% % \begin{macrocode} \noexpandarg% \StrChar{#1}{\theLWR@tablecolspos}[\LWR@strresult]% +\LWR@traceinfo{position \arabic{LWR@tablecolspos}: \LWR@strresult}% \fullexpandarg% % \end{macrocode} % Not yet found a valid column type @@ -13601,9 +13773,10 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% \IfStrEq{\LWR@strresult}{M}{\LWR@parsepcolumn{M}}{}% \IfStrEq{\LWR@strresult}{B}{\LWR@parsepcolumn{B}}{}% % \end{macrocode} -% If this column was an invalid column type, convert it to a |p| column: +% If this column was an invalid column type, convert it to an |l| column: % \begin{macrocode} \ifbool{LWR@validtablecol}{}{% +\LWR@traceinfo{invalid column type: \LWR@strresult}% \LWR@parsenormalcolumn{l}% }% \addtocounter{LWR@tablecolspos}{1}% @@ -13647,21 +13820,58 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% % \end{macro} +% \subsection{Printing at or bang tags} + +% \begin{macro}{\LWR@printatbang} \marg{at -or- bang} \marg{index} +% \begin{macrocode} +\newcommand*{\LWR@printatbang}[2]{% +\edef\LWR@atbangspec{\LWR@getexparray{LWR@col#1spec}{#2}} +\LWR@traceinfo{atbang: !\LWR@atbangspec!} +\ifdefempty{\LWR@atbangspec}% +% \ifthenelse{\isempty{\LWR@atbangspec}}% +{}% +{% +\LWR@htmltag{td class="td#1% +\ifthenelse{\equal{\LWR@getexparray{LWR@midrules}{\theLWR@tablecolspos}}{Y}}{rule}{}% +"}% +\LWR@atbangspec% +\LWR@htmltag{/td}\LWR@orignewline% +}% +}% +% \end{macrocode} +% \end{macro} + % \subsection{Data opening tag} % \begin{macro}{\LWR@tabledatasinglecolumntag} % Print a table data opening tag with style for alignment +% +% \changes{v0.33}{2017/06/22}{Fix: Macros in tabular could cause extra data cell.} +% % \begin{macrocode} \newcommand*{\LWR@tabledatasinglecolumntag}% {% \LWR@maybenewtablerow% % \end{macrocode} +% Don't start a new paragraph tag if have already started one: +% \begin{macrocode} +\ifbool{LWR@intabularmetadata}{% +% \end{macrocode} % If have found the end of tabular command, do not create the next data cell: % \begin{macrocode} \ifbool{LWR@exitingtabular}{}% {% not exiting tabular % \end{macrocode} +% Print the |@| and |!| contents before first column: +% \begin{macrocode} +\ifthenelse{\cnttest{\value{LWR@tablecolspos}}=1}% +{% +\LWR@printatbang{at}{leftedge}% +\LWR@printatbang{bang}{leftedge}% +}% left edge +{}% not left edge +% \end{macrocode} % Fetch the current column's alignment character into |\LWR@strresult|: % \begin{macrocode} \StrChar{\LWR@tablecolspec}{\theLWR@tablecolspos}[\LWR@strresult]% @@ -13696,18 +13906,12 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% }% allow pars {}% no pars % \end{macrocode} -% Print the |@| and |!| contents before first column, -% and then the |>| contents: +% Print the |>| contents: % \begin{macrocode} -\ifthenelse{\cnttest{\value{LWR@tablecolspos}}=1}% -{% -\LWR@getexparray{LWR@colatspec}{leftedge}% -\LWR@getexparray{LWR@colbangspec}{leftedge}% -}% left edge -{}% not left edge \LWR@getexparray{LWR@colbeforespec}{\theLWR@tablecolspos}% \global\boolfalse{LWR@intabularmetadata}% }% not exiting tabular +}{}% in tabular metadata }% % \end{macrocode} % \end{macro} @@ -13738,7 +13942,7 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% \cnttest{\value{LWR@midrulecounter}}{<=}{\value{LWR@tablecolswidth}}% }% {% -\LWR@setexparray{LWR@midrules}{\theLWR@midrulecounter}{\relax}% +\LWR@setexparray{LWR@midrules}{\theLWR@midrulecounter}{}% \addtocounter{LWR@midrulecounter}{1}% }% } @@ -13746,7 +13950,7 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% % \end{macro} -% \begin{macro}{\LWR@subcmidrule} \oarg{width} \marg{trim} \marg{leftcolumn} \marg{rightcolumn} +% \begin{macro}{\LWR@subcmidrule} \marg{width} \marg{trim} \marg{leftcolumn} \marg{rightcolumn} % % Marks |LWR@midrules| data array elements to be ``Y'' from left to right columns. % \begin{macrocode} @@ -13782,13 +13986,17 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% % \begin{macrocode} \newcounter{LWR@tablemulticolswidth} +% \end{macrocode} +% +% Indexes into the multicolumn specification: +% \begin{macrocode} \newcounter{LWR@tablemulticolspos} % \end{macrocode} % \begin{macro}{\LWR@printmccoltype} \marg{colspec} -% Print any valid column type found. Does not print |@|, |>|, or |<| columns +% Print any valid column type found. Does not print |@|, |!|, |>|, or |<| columns % or their associated tokens. % % This is printed as part of the table data tag's |class|. @@ -13830,7 +14038,7 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% % \end{macro} % \begin{macro}{\LWR@multicolother} \marg{colspec} -% For |@|, |>|, |<|, print the next token without paragraph tags: +% For |@|, |!|, |>|, |<|, print the next token without paragraph tags: % \begin{macrocode} \newcommand*{\LWR@multicolother}[1]{% \addtocounter{LWR@tablemulticolspos}{1}% @@ -13948,13 +14156,18 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% % \end{macro} + % \subsubsection{High-level multicolumn interface} -% \begin{macro}{\LWR@domulticolumn} \marg{1: numcols} \marg{2: colspec} \marg{3: text} -% + % \begin{macrocode} \newcommand{\LWR@multicoltext}{} +% \end{macrocode} + +% \begin{macro}{\LWR@domulticolumn} \marg{1: numcols} \marg{2: colspec} \marg{3: text} +% +% \begin{macrocode} \NewDocumentCommand{\LWR@domulticolumn}{m m +m}{% \LWR@traceinfo{lwr@domulticolumn -#1- -#2-}% % \end{macrocode} @@ -14030,12 +14243,16 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% }% optional given {\LWR@setlatestname{#3}}% no optional % \end{macrocode} -% create a multicolumn across all the columns +% Create a multicolumn across all the columns: +% +% Figure out how many extra \HTML\ columns to add for |@| and |!| columns +% found between the first and the last column: +% \begin{macrocode} +\LWR@tabularhtmlcolumns{1}{\theLWR@tabletotalcols} +% \end{macrocode} +% Create the multicolumn tag: % \begin{macrocode} -\LWR@domulticolumn{\theLWR@tabletotalcols}{P}{% \LWR@domulticolumn -% \IfBooleanTF{#1}% star? -% {\IfValueTF{#2}{\LWR@origcaption*[#2]{#3}}{\LWR@origcaption*{#3}}} -% {\IfValueTF{#2}{\LWR@origcaption[#2]{#3}}{\LWR@origcaption{#3}}} +\LWR@domulticolumn{\theLWR@tabhtmlcoltotal}{P}{% \LWR@domulticolumn \IfBooleanTF{#1}% star? % \end{macrocode} % Star version, show a caption but do not make a LOT entry: @@ -14108,6 +14325,10 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% }% end of yes TOC entry }% end of TOC entry not empty }% end of no star +% \end{macrocode} +% Skip any trailing |@| or |!| columns for this cell: +% \begin{macrocode} +\booltrue{LWR@skipatbang}% }% end of \LWR@domulticolumn \addtocounter{LWR@tablecolspos}{\theLWR@tabletotalcols} @@ -14119,6 +14340,79 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% +% \subsubsection{Counting HTML tabular columns} + +% The \LaTeX\ specification for a table includes a number of columns separated +% by the |&| character. These columns differ in content from line to line. +% Additional virtual columns may be specified by the special |@| and |!| columns. +% These columns are identical from line to line, but may be skipped during a +% multicolumn cell. +% +% For \HTML\ output, |@| and |!| columns are placed into their own tabular columns. +% Thus, a \LaTeX\ \cs{multicolumn} command may span several additional |@| and |!| +% columns in \HTML\ output. These additional columns must be added to the total +% number of columns spanned by an \HTML\ multi-column data cell. + +% \begin{macrocode} +\newcounter{LWR@tabhtmlcolindex} +\newcounter{LWR@tabhtmlcolend} +\newcounter{LWR@tabhtmlcoltotal} +% \end{macrocode} + +% \begin{macro}{\LWR@tabularhtmlcolumns} +% \marg{starting \LaTeX\ column} \marg{number \LaTeX\ columns} +% +% Compute the total number of \HTML\ columns being spanned, considering the +% starting \LaTeX\ table column and the number of \LaTeX\ tabular columns being +% spanned. Any |@| and |!| columns within this span are included in the total count. +% The resulting number of \HTML\ columns is returned in the counter |LWR@tabhtmlcoltotal|. +% \begin{macrocode} +\newcommand*{\LWR@tabularhtmlcolumns}[2]{% +% \end{macrocode} +% Count the starting index, compute ending index, +% and begin with the count being the \LaTeX\ span, to which additional |@| and |!| +% columns may be added: +% \begin{macrocode} +\setcounter{LWR@tabhtmlcolindex}{#1}% +\setcounter{LWR@tabhtmlcoltotal}{#2}% +\setcounter{LWR@tabhtmlcolend}{#1}% +\addtocounter{LWR@tabhtmlcolend}{#2}% +% \end{macrocode} +% Walk across the \LaTeX\ columns looking for |@| and |!| columns: +% \begin{macrocode} +\whiledo{\value{LWR@tabhtmlcolindex}<\value{LWR@tabhtmlcolend}}{% +% \end{macrocode} +% Temporarily define a macro equal to the |@| specification for this column: +% \begin{macrocode} +\edef\LWR@atbangspec{\LWR@getexparray{LWR@colatspec}{\theLWR@tabhtmlcolindex}}% +% \end{macrocode} +% If the |@| specification is not empty, add to the count: +% \begin{macrocode} +\ifdefempty{\LWR@atbangspec}{}{\addtocounter{LWR@tabhtmlcoltotal}{1}}% +% \end{macrocode} +% Likewise for the |!| columns: +% \begin{macrocode} +\edef\LWR@atbangspec{\LWR@getexparray{LWR@colbangspec}{\theLWR@tabhtmlcolindex}}% +\ifdefempty{\LWR@atbangspec}{}{\addtocounter{LWR@tabhtmlcoltotal}{1}}% +% \end{macrocode} +% Move to the next \LaTeX\ column: +% \begin{macrocode} +\addtocounter{LWR@tabhtmlcolindex}{1}% +}% +% \end{macrocode} +% If at the left-most column, also skip the leftmost |@| and |!| cells: +% \begin{macrocode} +\ifthenelse{\value{LWR@tablecolspos}=1}{% +\edef\LWR@atbangspec{\LWR@getexparray{LWR@colatspec}{leftedge}}% +\ifdefempty{\LWR@atbangspec}{}{\addtocounter{LWR@tabhtmlcoltotal}{1}}% +\edef\LWR@atbangspec{\LWR@getexparray{LWR@colbangspec}{leftedge}}% +\ifdefempty{\LWR@atbangspec}{}{\addtocounter{LWR@tabhtmlcoltotal}{1}}% +}{}% +} +% \end{macrocode} +% \end{macro} + + % \subsubsection{\textbackslash{}tabledatamulticolumntag} @@ -14126,9 +14420,23 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% % \begin{macrocode} \NewDocumentCommand{\LWR@tabledatamulticolumntag}{m m +m}% {% -\LWR@domulticolumn{#1}{#2}{#3}% +% \end{macrocode} +% Figure out how many extra \HTML\ columns to add for |@| and |!| columns: +% \begin{macrocode} +\LWR@tabularhtmlcolumns{\theLWR@tablecolspos}{#1} +% \end{macrocode} +% Create the multicolumn tag: +% \begin{macrocode} +\LWR@domulticolumn{\theLWR@tabhtmlcoltotal}{#2}{#3}% +% \end{macrocode} +% Move to the next \LaTeX\ column: +% \begin{macrocode} \addtocounter{LWR@tablecolspos}{#1}% \addtocounter{LWR@tablecolspos}{-1}% +% \end{macrocode} +% Skip any trailing |@| or |!| columns for this cell: +% \begin{macrocode} +\booltrue{LWR@skipatbang}% } % \end{macrocode} % \end{macro} @@ -14223,8 +14531,7 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% {\let\mynext\LWR@donothing}{}% % \ifthenelse{\isequivalentto{\LWR@mynexttoken}{\toprule}}% -{% -\let\mynext\LWR@donothing}{}% +{\let\mynext\LWR@donothing}{}% % \ifthenelse{\isequivalentto{\LWR@mynexttoken}{\midrule}}% {\let\mynext\LWR@donothing}{}% @@ -14290,10 +14597,11 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% % The new tabular environment will be |\let| in |\LWR@LwarpStart|, % since \pkg{siunitx} might redefine tabular in the user's document. % \begin{macrocode} +\StartDefiningTabulars + \newenvironment*{LWR@tabular}[2][] {% -\LWR@traceinfo{tabular started}% -\begingroup% +\LWR@traceinfo{LWR@tabular started}% \addtocounter{LWR@tabulardepth}{1}% % \end{macrocode} % Not yet started a table row: @@ -14345,12 +14653,17 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% % to see if the next token might create a new data cell: % \begin{macrocode} \renewcommand*{\hline}{\LWR@domidrule\LWR@getmynexttoken}% + \newcommand*{\midrule}{\LWR@domidrule\LWR@getmynexttoken}% + \NewDocumentCommand{\cmidrule}{o d() m}% {\LWR@docmidrule[##1](##2){##3}\LWR@getmynexttoken}% + \RenewDocumentCommand{\cline}{m}% {\LWR@docmidrule{##1}\LWR@getmynexttoken}% + \newcommand*{\toprule}{\LWR@dotbrule\LWR@getmynexttoken}% + \newcommand*{\bottomrule}{\LWR@dotbrule\LWR@getmynexttoken}% % \end{macrocode} % The following create data cells and will have no more data in this cell, @@ -14366,6 +14679,12 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% % \begin{macrocode} \global\boolfalse{LWR@tableparcell}% \global\boolfalse{LWR@skippingmrowcell}% +\global\boolfalse{LWR@skipatbang}% +% \end{macrocode} +% Set |&| for its special meaning inside the tabular: +% \begin{macrocode} +\StartDefiningTabulars% +\protected\gdef&{\LWR@tabularampersand}% % \end{macrocode} % Look ahead for a possible table data cell: % \begin{macrocode} @@ -14375,15 +14694,26 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% % Ending the environment: % \begin{macrocode} {% +\LWR@traceinfo{LWR@tabular ending}% \LWR@closetabledatacell% \LWR@htmlblocktag{/tr}% \LWR@htmlblocktag{/table}% \global\boolfalse{LWR@intabularmetadata}% % \end{macrocode} +% +% Unnest one level of tabular: % \begin{macrocode} \addtocounter{LWR@tabulardepth}{-1}% -\endgroup% +% \end{macrocode} +% +% Restore |&| to its usual meaning: +% \begin{macrocode} +\protected\gdef&{\LWR@origampmacro}% +\EndDefiningTabulars% +\LWR@traceinfo{LWR@tabular finished ending}% } + +\EndDefiningTabulars % \end{macrocode} % \end{environment} @@ -15240,7 +15570,7 @@ class="#3"\LWR@orignewline}#2\LWR@htmltag{/a}% % \end{macrocode} % Subcaptions were being over-written by the closing \HTML\ tag: % \begin{macrocode} -\vspace*{\baselineskip}% +\LWR@origvspace*{\baselineskip}% % \end{macrocode} % Closing tag: % \begin{macrocode} @@ -16403,8 +16733,10 @@ class="#3"\LWR@orignewline}#2\LWR@htmltag{/a}% % \subsubsection{Environment patches} +% % \changes{v0.19}{2016/05/25}{MathJax support added.} - +% \changes{v0.33}{2017/06/20}{Fix: Incorrectly-inline math environments.} +% % The following \pkg{amsmath} environments already collect their contents % in \cs{@envbody} for further processing. % @@ -16421,6 +16753,7 @@ class="#3"\LWR@orignewline}#2\LWR@htmltag{/a}% % \begin{environment}{multline} % \begin{macrocode} \BeforeBeginEnvironment{multline}{ + \ifbool{mathjax} { \LWR@syncmathjax @@ -16450,6 +16783,7 @@ class="#3"\LWR@orignewline}#2\LWR@htmltag{/a}% % \begin{environment}{multline*} % \begin{macrocode} \BeforeBeginEnvironment{multline*}{ + \ifbool{mathjax} { \LWR@syncmathjax @@ -16480,6 +16814,7 @@ class="#3"\LWR@orignewline}#2\LWR@htmltag{/a}% % \begin{environment}{gather} % \begin{macrocode} \BeforeBeginEnvironment{gather}{ + \ifbool{mathjax} { \LWR@syncmathjax @@ -16507,6 +16842,7 @@ class="#3"\LWR@orignewline}#2\LWR@htmltag{/a}% % \begin{environment}{gather*} % \begin{macrocode} \BeforeBeginEnvironment{gather*}{ + \ifbool{mathjax} { \LWR@syncmathjax @@ -16535,6 +16871,7 @@ class="#3"\LWR@orignewline}#2\LWR@htmltag{/a}% % \begin{environment}{align} % \begin{macrocode} \BeforeBeginEnvironment{align}{ + \ifbool{mathjax} { \LWR@syncmathjax @@ -16563,6 +16900,7 @@ class="#3"\LWR@orignewline}#2\LWR@htmltag{/a}% % \begin{environment}{align*} % \begin{macrocode} \BeforeBeginEnvironment{align*}{ + \ifbool{mathjax} { \LWR@syncmathjax @@ -16591,6 +16929,7 @@ class="#3"\LWR@orignewline}#2\LWR@htmltag{/a}% % \begin{environment}{flalign} % \begin{macrocode} \BeforeBeginEnvironment{flalign}{ + \ifbool{mathjax} { \LWR@syncmathjax @@ -16619,6 +16958,7 @@ class="#3"\LWR@orignewline}#2\LWR@htmltag{/a}% % \begin{environment}{flalign*} % \begin{macrocode} \BeforeBeginEnvironment{flalign*}{ + \ifbool{mathjax} { \LWR@syncmathjax @@ -17660,7 +18000,7 @@ img src="\thisgraphicspath\LWR@strresult\LWR@imageextension" \LWR@orignewline -% \section{Cleverref} +% \section{Cleveref} % \label{sec:cleveref} % \DescribePackage{cleveref} @@ -17688,16 +18028,17 @@ img src="\thisgraphicspath\LWR@strresult\LWR@imageextension" \LWR@orignewline % \begin{macrocode} \begin{warpHTML} % \end{macrocode} - -% \changes{v0.19}{2016/06/06}{cleveref: Loaded \cs{AtEndPreamble}.} - - - % % \cs{AtEndPreable} forces \pkg{cleveref} to be loaded last: % % \changes{v0.19}{2016/06/06}{cleveref: Loaded \cs{AtEndPreamble}.} +% \changes{v0.33}{2017/06/18}{cleveref: Fix: Loaded \cs{AtEndPreamble}.} % +% \begin{macrocode} +\AtEndPreamble{ +\RequirePackage{cleveref} +} +% \end{macrocode} % % % \changes{v0.20}{2017/01/05}{\pkg{cleveref} and referencing patches: Applied \cs{AfterEndPreamble}.} @@ -18075,7 +18416,7 @@ img src="\thisgraphicspath\LWR@strresult\LWR@imageextension" \LWR@orignewline \LWR@endminipage% The following empty line is required: \LWR@htmldivclassend{minipage}% -\vspace{1\baselineskip}% required for subcaption +\LWR@origvspace{1\baselineskip}% required for subcaption \addtocounter{LWR@minipagedepth}{-1}% \LWR@startpars% % \end{macrocode} @@ -18392,6 +18733,7 @@ img src="\thisgraphicspath\LWR@strresult\LWR@imageextension" \LWR@orignewline \let\LWR@origquad\quad \let\LWR@origqquad\qquad \let\LWR@orighspace\hspace +\let\LWR@origvspace\vspace \let\LWR@origrule\rule \let\LWR@origmedskip\medskip % \end{macrocode} @@ -18630,6 +18972,23 @@ span style="width:\printlength{\LWR@tempwidth}; display:inline-block;"% % \end{macro} +% \begin{macro}{\LWR@vspace} * \marg{length} Nullified vspace. +% +% \changes{v0.33}{2017/06/21}{Add: \cs{vspace} nullified.} +% +% \begin{macrocode} +\NewDocumentCommand{\LWR@vspace}{s m}{} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\vspace} * \marg{length} Nullified. +% \begin{macrocode} +\let\vspace\LWR@vspace +% \end{macrocode} +% \end{macro} + + % \begin{macro}{\linebreak} \oarg{num} \qquad % Inserts an \HTML\ |br| tag. % \begin{macrocode} @@ -19228,9 +19587,9 @@ span style="width:\rndprintlength{\ALG@thistlm}; display:inline-block;"% \AfterEndPreamble{ \AtBeginEnvironment{alltt}{% \LWR@forcenewpage -\LWR@atbeginverbatim{alltt}\unskip\vspace*{-\baselineskip}% +\LWR@atbeginverbatim{alltt}\unskip\LWR@origvspace*{-\baselineskip}% } -\AfterEndEnvironment{alltt}{\unskip\vspace*{-\baselineskip}\LWR@afterendverbatim} +\AfterEndEnvironment{alltt}{\unskip\LWR@origvspace*{-\baselineskip}\LWR@afterendverbatim} } % \end{macrocode} @@ -20014,6 +20373,7 @@ span style="width:\rndprintlength{\ALG@thistlm}; display:inline-block;"% % \pkg{fancyhdr} is nullified. % % \changes{v0.20}{2017/01/11}{\pkg{fancyhdr}: Added.} +% \changes{v0.33}{2017/06/18}{\pkg{fancyhdr}: Fix: Optional args for \cs{lhead}, etc.} % % \codehtml % @@ -20027,12 +20387,12 @@ span style="width:\rndprintlength{\ALG@thistlm}; display:inline-block;"% \newcommand*{\fancyfoot}[2][]{} \newcommand*{\fancyhf}[2][]{} \newcommand*{\fancypagestyle}[2]{} -\newcommand*{\lhead}[1]{} -\newcommand*{\chead}[1]{} -\newcommand*{\rhead}[1]{} -\newcommand*{\lfoot}[1]{} -\newcommand*{\cfoot}[1]{} -\newcommand*{\rfoot}[1]{} +\newcommand*{\lhead}[2][]{} +\newcommand*{\chead}[2][]{} +\newcommand*{\rhead}[2][]{} +\newcommand*{\lfoot}[2][]{} +\newcommand*{\cfoot}[2][]{} +\newcommand*{\rfoot}[2][]{} \newcommand*{\headrulewidth}{} \newcommand*{\footrulewidth}{} \newcommand*{\fancyheadoffset}[2][]{} @@ -22227,8 +22587,8 @@ span style="width:\rndprintlength{\ALG@thistlm}; display:inline-block;"% \newlength{\LTcapright} \newcommand*{\LTcapmarginsfalse}{} % \end{macrocode} - - +% +% % \iffalse % % \fi @@ -26266,14 +26626,14 @@ solid }{} \LWR@forcenewpage \LWR@atbeginverbatim{verse} -\unskip\vspace{-\baselineskip} +\unskip\LWR@origvspace{-\baselineskip} } % \end{macrocode} % After the end of the \env{verse} environment, which places the |pre| tag at the % regular left margin: % \begin{macrocode} \AfterEndEnvironment{verse}{ -\unskip\vspace{-\baselineskip} +\unskip\LWR@origvspace{-\baselineskip} \LWR@afterendverbatim } % \end{macrocode} diff --git a/Master/texmf-dist/tex/latex/lwarp/lwarp-alltt.sty b/Master/texmf-dist/tex/latex/lwarp/lwarp-alltt.sty index 6dea9a9a53c..a0cd928d430 100644 --- a/Master/texmf-dist/tex/latex/lwarp/lwarp-alltt.sty +++ b/Master/texmf-dist/tex/latex/lwarp/lwarp-alltt.sty @@ -21,9 +21,9 @@ \AfterEndPreamble{ \AtBeginEnvironment{alltt}{% \LWR@forcenewpage -\LWR@atbeginverbatim{alltt}\unskip\vspace*{-\baselineskip}% +\LWR@atbeginverbatim{alltt}\unskip\LWR@origvspace*{-\baselineskip}% } -\AfterEndEnvironment{alltt}{\unskip\vspace*{-\baselineskip}\LWR@afterendverbatim} +\AfterEndEnvironment{alltt}{\unskip\LWR@origvspace*{-\baselineskip}\LWR@afterendverbatim} } \endinput diff --git a/Master/texmf-dist/tex/latex/lwarp/lwarp-fancyhdr.sty b/Master/texmf-dist/tex/latex/lwarp/lwarp-fancyhdr.sty index 87ddbe03c4e..48933536a65 100644 --- a/Master/texmf-dist/tex/latex/lwarp/lwarp-fancyhdr.sty +++ b/Master/texmf-dist/tex/latex/lwarp/lwarp-fancyhdr.sty @@ -23,12 +23,12 @@ \newcommand*{\fancyfoot}[2][]{} \newcommand*{\fancyhf}[2][]{} \newcommand*{\fancypagestyle}[2]{} -\newcommand*{\lhead}[1]{} -\newcommand*{\chead}[1]{} -\newcommand*{\rhead}[1]{} -\newcommand*{\lfoot}[1]{} -\newcommand*{\cfoot}[1]{} -\newcommand*{\rfoot}[1]{} +\newcommand*{\lhead}[2][]{} +\newcommand*{\chead}[2][]{} +\newcommand*{\rhead}[2][]{} +\newcommand*{\lfoot}[2][]{} +\newcommand*{\cfoot}[2][]{} +\newcommand*{\rfoot}[2][]{} \newcommand*{\headrulewidth}{} \newcommand*{\footrulewidth}{} \newcommand*{\fancyheadoffset}[2][]{} diff --git a/Master/texmf-dist/tex/latex/lwarp/lwarp-ltcaption.sty b/Master/texmf-dist/tex/latex/lwarp/lwarp-ltcaption.sty index 24d8a2c0f25..01fbf6add9a 100644 --- a/Master/texmf-dist/tex/latex/lwarp/lwarp-ltcaption.sty +++ b/Master/texmf-dist/tex/latex/lwarp/lwarp-ltcaption.sty @@ -25,7 +25,6 @@ \newlength{\LTcapleft} \newlength{\LTcapright} \newcommand*{\LTcapmarginsfalse}{} - \endinput %% %% End of file `lwarp-ltcaption.sty'. diff --git a/Master/texmf-dist/tex/latex/lwarp/lwarp-verse.sty b/Master/texmf-dist/tex/latex/lwarp/lwarp-verse.sty index b739f34b90b..e2e20c7ccee 100644 --- a/Master/texmf-dist/tex/latex/lwarp/lwarp-verse.sty +++ b/Master/texmf-dist/tex/latex/lwarp/lwarp-verse.sty @@ -26,10 +26,10 @@ }{} \LWR@forcenewpage \LWR@atbeginverbatim{verse} -\unskip\vspace{-\baselineskip} +\unskip\LWR@origvspace{-\baselineskip} } \AfterEndEnvironment{verse}{ -\unskip\vspace{-\baselineskip} +\unskip\LWR@origvspace{-\baselineskip} \LWR@afterendverbatim } \ifdef{\poemtitle}{ diff --git a/Master/texmf-dist/tex/latex/lwarp/lwarp.sty b/Master/texmf-dist/tex/latex/lwarp/lwarp.sty index bad047aecbf..e50befca6dd 100644 --- a/Master/texmf-dist/tex/latex/lwarp/lwarp.sty +++ b/Master/texmf-dist/tex/latex/lwarp/lwarp.sty @@ -17,7 +17,7 @@ %% version 2005/12/01 or later. \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesPackage{lwarp} - [2017/06/09 v0.32 Allows LaTeX to directly produce HTML5 output.] + [2017/07/10 v0.33 Allows LaTeX to directly produce HTML5 output.] @@ -161,10 +161,14 @@ after lwarp.} } \newcommand*{\LWR@loadbefore}[1]{% +\@ifpackageloaded{#1} +{} +{ \PackageError{lwarp} {Package #1 must be loaded before lwarp} {Move \detokenize{\usepackage}{#1} before \detokenize{\usepackage}{lwarp}.} } +} \newcommand*{\LWR@loadnever}[2]{% \PackageError{lwarp} @@ -361,7 +365,7 @@ top=1in,bottom=1in,% \RequirePackage{zref} -\PassOptionsToPackage{leqno,fleqn}{amsmath} +\PassOptionsToPackage{leqno}{amsmath} \RequirePackage{amsmath} \RequirePackage{environ} @@ -1304,6 +1308,8 @@ td {padding: 1ex .5em 1ex .5em ;} table td.tdl { text-align: left ; vertical-align: middle ; } table td.tdc { text-align: center ; vertical-align: middle ; } +table td.tdat { text-align: center ; vertical-align: middle ; padding: 0px ; margin: 0px ; } +table td.tdbang { text-align: center ; vertical-align: middle ; } table td.tdr { text-align: right ; vertical-align: middle ; } table td.tdp { text-align: left ; vertical-align: bottom ; } table td.tdm { text-align: left ; vertical-align: middle ; } @@ -1315,6 +1321,10 @@ table td.tdlrule { text-align: left ; border-top: 1px solid silver ; vertical-align: middle ; } /* for cmidrule */ table td.tdcrule { text-align: center ; border-top: 1px solid silver ; vertical-align: middle ; } +table td.tdatrule { text-align: center ; border-top: 1px solid silver ; + vertical-align: middle ; padding: 0px ; margin: 0px ; } +table td.tdbangrule { text-align: center ; border-top: 1px solid silver ; + vertical-align: middle ; } /* for cmidrule */ table td.tdrrule { text-align: right ; border-top: 1px solid silver ; vertical-align: middle ; } table td.tdprule { text-align: left ; border-top: 1px solid silver ; @@ -2287,7 +2297,7 @@ src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX- -- Print the usage of the lwarpmk command: -printversion = "v0.32" +printversion = "v0.33" function printhelp () print ("lwarpmk: Use lwarpmk -h or lwarpmk --help for help.") ; @@ -2903,7 +2913,9 @@ end -- not --version \begin{warpHTML} \NewDocumentCommand{\LWR@setexparray}{m m m}{% -\expandafter\edef\csname #1#2\endcsname{\expandonce#3}% +\ifthenelse{\isempty{#3}}% +{\csdef{#1#2}{}} +{\expandafter\edef\csname #1#2\endcsname{\expandonce#3}}% } \newcommand*{\LWR@getexparray}[2]{\csuse{#1#2}} @@ -3438,6 +3450,7 @@ end -- not --version \begin{warpall} +\providecommand{\theauthor}{} \newcommand{\theHTMLAuthor}{\theauthor} \newcommand{\HTMLAuthor}[1]{\renewcommand{\theHTMLAuthor}{#1}} @@ -3831,6 +3844,7 @@ end -- not --version \LWR@traceinfo{chapter #3}% \LWR@epubprintpendingfootnotes% \LWR@stoppars% + \LWR@startnewdepth{\LWR@depthchapter}{\LWR@printclosechapter}% \LWR@traceinfo{chapter: about to LWR@section}% @@ -4020,7 +4034,6 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% \thanksmarkseries{fnsymbol} \fi \fvset{frame=none}% -\catcode`\&=\active \LWR@startpars } @@ -4486,9 +4499,9 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% \AfterEndPreamble{ \AtBeginEnvironment{verbatim}{% \LWR@forcenewpage -\LWR@atbeginverbatim{verbatim}\unskip\vspace*{-\baselineskip}% +\LWR@atbeginverbatim{verbatim}\unskip\LWR@origvspace*{-\baselineskip}% } -\AfterEndEnvironment{verbatim}{\unskip\vspace*{-\baselineskip}\LWR@afterendverbatim} +\AfterEndEnvironment{verbatim}{\unskip\LWR@origvspace*{-\baselineskip}\LWR@afterendverbatim} } \end{warpHTML} @@ -4669,7 +4682,7 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% \AfterEndEnvironment{BVerbatim} { -\leavevmode\par\vspace{-\baselineskip} +\leavevmode\par\LWR@origvspace{-\baselineskip} \LWR@afterendverbatim } @@ -4832,6 +4845,8 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% \newbool{LWR@skippingmrowcell} +\newbool{LWR@skipatbang} + \newbool{LWR@intabularmetadata} \boolfalse{LWR@intabularmetadata} @@ -4844,11 +4859,15 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% {% not skippingmrowcell \unskip% \LWR@getexparray{LWR@colafterspec}{\theLWR@tablecolspos}% -\LWR@getexparray{LWR@colatspec}{\theLWR@tablecolspos}% -\LWR@getexparray{LWR@colbangspec}{\theLWR@tablecolspos}% \ifbool{LWR@tableparcell}{\LWR@stoppars}{}% \global\boolfalse{LWR@tableparcell}% -\unskip\LWR@htmltag{/td}\LWR@orignewline% +\leavevmode\unskip\LWR@htmltag{/td}\LWR@orignewline% +\ifbool{LWR@skipatbang}% +{\boolfalse{LWR@skipatbang}}% +{% +\LWR@printatbang{at}{\theLWR@tablecolspos}% +\LWR@printatbang{bang}{\theLWR@tablecolspos}% +}% not skipping at or bang }% not skipping mrowcell }% not exiting tabular \global\boolfalse{LWR@skippingmrowcell}% @@ -4857,11 +4876,22 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% \newcounter{LWR@tabulardepth} \setcounter{LWR@tabulardepth}{0} -\def\LWR@origampmacro{&} -\begingroup -\catcode`\&=\active +\let\LWR@origampmacro& + +\end{warpHTML} +\begin{warpall} +\newcommand{\StartDefiningTabulars}{% +\warpHTMLonly{\catcode`\&=\active}% +} +\newcommand{\EndDefiningTabulars}{% +\warpHTMLonly{\catcode`\&=4}% +} + +\end{warpall} +\begin{warpHTML} -\gdef&{% +\newcommand*{\LWR@tabularampersand}{% +\LWR@traceinfo{LWR@tabularampersand}% \ifthenelse{\cnttest{\value{LWR@tabulardepth}}{>}{0}}% {% \unskip% @@ -4871,7 +4901,6 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% }% {\LWR@origampmacro}% } -\endgroup \NewDocumentCommand{\LWR@tabularendofline}{s o} @@ -4909,65 +4938,68 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% \newcounter{LWR@tabletotalcolsnext} +\newcommand*{\LWR@colparameter}{} \newcommand*{\LWR@parseatcolumn}{% \LWR@traceinfo{at column}% \addtocounter{LWR@tablecolspos}{1}% \LWR@traceinfo{about to read the next token:}% \expandarg% -\StrChar{\LWR@origcolspec}{\theLWR@tablecolspos}[\LWR@strresult] +\StrChar{\LWR@origcolspec}{\theLWR@tablecolspos}[\LWR@colparameter] \fullexpandarg% \LWR@traceinfo{have now read the next token}% \ifthenelse{\cnttest{\value{LWR@tabletotalcols}}=0} {% left edge of the table: \LWR@traceinfo{at the left edge}% -\LWR@setexparray{LWR@colatspec}{leftedge}{\LWR@strresult}% +\LWR@setexparray{LWR@colatspec}{leftedge}{\LWR@colparameter}% +\LWR@traceinfo{at the left edge: % + \LWR@getexparray{LWR@colatspec}{leftedge}}% }% {% not at the left edge: \LWR@traceinfo{not at the left edge}% -\LWR@setexparray{LWR@colatspec}{\theLWR@tabletotalcols}{\LWR@strresult}% +\LWR@setexparray{LWR@colatspec}{\theLWR@tabletotalcols}{\LWR@colparameter}% \LWR@traceinfo{at \theLWR@tabletotalcols: % - \LWR@getexparray{LWR@colatspec}{\theLWR@tabletotalcols})!}% -\let\LWR@strresult\relax% -\booltrue{LWR@validtablecol}% + \LWR@getexparray{LWR@colatspec}{\theLWR@tabletotalcols}}% }% +\let\LWR@colparameter\relax% +\booltrue{LWR@validtablecol}% } \newcommand*{\LWR@parsebangcolumn}{% \LWR@traceinfo{bang column}% \addtocounter{LWR@tablecolspos}{1}% \LWR@traceinfo{about to read the next token:}% \expandarg% -\StrChar{\LWR@origcolspec}{\theLWR@tablecolspos}[\LWR@strresult] +\StrChar{\LWR@origcolspec}{\theLWR@tablecolspos}[\LWR@colparameter] \fullexpandarg% \LWR@traceinfo{have now read the next token}% \ifthenelse{\cnttest{\value{LWR@tabletotalcols}}=0} {% left edge of the table: \LWR@traceinfo{at the left edge}% -\LWR@setexparray{LWR@colbangspec}{leftedge}{\LWR@strresult}% +\LWR@setexparray{LWR@colbangspec}{leftedge}{\LWR@colparameter}% }% {% not at the left edge: \LWR@traceinfo{not at the left edge}% -\LWR@setexparray{LWR@colbangspec}{\theLWR@tabletotalcols}{\LWR@strresult}% -\LWR@traceinfo{bang \theLWR@tabletotalcols: \LWR@colbangspec(\theLWR@tabletotalcols)!}% +\LWR@setexparray{LWR@colbangspec}{\theLWR@tabletotalcols}{\LWR@colparameter}% +\LWR@traceinfo{bang \theLWR@tabletotalcols: \LWR@colparameter!}% }% -\let\LWR@strresult\relax% +\let\LWR@colparameter\relax% \booltrue{LWR@validtablecol}% } \newcommand*{\LWR@parsebeforecolumn}{% \addtocounter{LWR@tablecolspos}{1}% \expandarg% -\StrChar{\LWR@origcolspec}{\theLWR@tablecolspos}[\LWR@strresult]% +\StrChar{\LWR@origcolspec}{\theLWR@tablecolspos}[\LWR@colparameter]% \fullexpandarg% -\LWR@setexparray{LWR@colbeforespec}{\theLWR@tabletotalcolsnext}{\LWR@strresult}% -\let\LWR@strresult\relax% +\LWR@setexparray{LWR@colbeforespec}{\theLWR@tabletotalcolsnext}{\LWR@colparameter}% +\let\LWR@colparameter\relax% \booltrue{LWR@validtablecol}% } \newcommand*{\LWR@parseaftercolumn}{% \addtocounter{LWR@tablecolspos}{1}% \expandarg% -\StrChar{\LWR@origcolspec}{\theLWR@tablecolspos}[\LWR@strresult]% +\StrChar{\LWR@origcolspec}{\theLWR@tablecolspos}[\LWR@colparameter]% \fullexpandarg% -\LWR@setexparray{LWR@colafterspec}{\theLWR@tabletotalcols}{\LWR@strresult}% -\let\LWR@strresult\relax% +\LWR@setexparray{LWR@colafterspec}{\theLWR@tabletotalcols}{\LWR@colparameter}% +\let\LWR@colparameter\relax% \booltrue{LWR@validtablecol}% } \newcommand*{\LWR@parseskipcolumn}{% @@ -4977,10 +5009,11 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% \appto\LWR@tablecolspec{#1}% \addtocounter{LWR@tabletotalcols}{1}% \addtocounter{LWR@tabletotalcolsnext}{1}% -\LWR@setexparray{LWR@colatspec}{\theLWR@tabletotalcolsnext}{\relax}% -\LWR@setexparray{LWR@colbangspec}{\theLWR@tabletotalcolsnext}{\relax}% -\LWR@setexparray{LWR@colbeforespec}{\theLWR@tabletotalcolsnext}{\relax}% -\LWR@setexparray{LWR@colafterspec}{\theLWR@tabletotalcolsnext}{\relax}% +\LWR@traceinfo{normal column \theLWR@tabletotalcols: #1}% +\LWR@setexparray{LWR@colatspec}{\theLWR@tabletotalcolsnext}{}% +\LWR@setexparray{LWR@colbangspec}{\theLWR@tabletotalcolsnext}{}% +\LWR@setexparray{LWR@colbeforespec}{\theLWR@tabletotalcolsnext}{}% +\LWR@setexparray{LWR@colafterspec}{\theLWR@tabletotalcolsnext}{}% \booltrue{LWR@validtablecol}% } @@ -5002,20 +5035,20 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% \renewcommand*{\LWR@tablecolspec}{}% \setcounter{LWR@tabletotalcols}{0}% \setcounter{LWR@tabletotalcolsnext}{1}% -\LWR@setexparray{LWR@colatspec}{leftedge}{\relax}% -\LWR@setexparray{LWR@colatspec}{1}{\relax}% -\LWR@setexparray{LWR@colatspec}{2}{\relax}% -\LWR@setexparray{LWR@colatspec}{3}{\relax}% -\LWR@setexparray{LWR@colbangspec}{leftedge}{\relax}% -\LWR@setexparray{LWR@colbangspec}{1}{\relax}% -\LWR@setexparray{LWR@colbangspec}{2}{\relax}% -\LWR@setexparray{LWR@colbangspec}{3}{\relax}% -\LWR@setexparray{LWR@colbeforespec}{1}{\relax}% -\LWR@setexparray{LWR@colbeforespec}{2}{\relax}% -\LWR@setexparray{LWR@colbeforespec}{3}{\relax}% -\LWR@setexparray{LWR@colafterspec}{1}{\relax}% -\LWR@setexparray{LWR@colafterspec}{2}{\relax}% -\LWR@setexparray{LWR@colafterspec}{3}{\relax}% +\LWR@setexparray{LWR@colatspec}{leftedge}{}% +\LWR@setexparray{LWR@colatspec}{1}{}% +\LWR@setexparray{LWR@colatspec}{2}{}% +\LWR@setexparray{LWR@colatspec}{3}{}% +\LWR@setexparray{LWR@colbangspec}{leftedge}{}% +\LWR@setexparray{LWR@colbangspec}{1}{}% +\LWR@setexparray{LWR@colbangspec}{2}{}% +\LWR@setexparray{LWR@colbangspec}{3}{}% +\LWR@setexparray{LWR@colbeforespec}{1}{}% +\LWR@setexparray{LWR@colbeforespec}{2}{}% +\LWR@setexparray{LWR@colbeforespec}{3}{}% +\LWR@setexparray{LWR@colafterspec}{1}{}% +\LWR@setexparray{LWR@colafterspec}{2}{}% +\LWR@setexparray{LWR@colafterspec}{3}{}% \setcounter{LWR@tablecolspos}{1}% \LWR@traceinfo{about to StrLen}% \noexpandarg% @@ -5026,6 +5059,7 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% \whiledo{\not\value{LWR@tablecolspos}>\value{LWR@tablecolswidth}}{% \noexpandarg% \StrChar{#1}{\theLWR@tablecolspos}[\LWR@strresult]% +\LWR@traceinfo{position \arabic{LWR@tablecolspos}: \LWR@strresult}% \fullexpandarg% \boolfalse{LWR@validtablecol}% \IfStrEq{\LWR@strresult}{l}{\LWR@parsenormalcolumn{l}}{}% @@ -5050,6 +5084,7 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% \IfStrEq{\LWR@strresult}{M}{\LWR@parsepcolumn{M}}{}% \IfStrEq{\LWR@strresult}{B}{\LWR@parsepcolumn{B}}{}% \ifbool{LWR@validtablecol}{}{% +\LWR@traceinfo{invalid column type: \LWR@strresult}% \LWR@parsenormalcolumn{l}% }% \addtocounter{LWR@tablecolspos}{1}% @@ -5075,11 +5110,33 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% } +\newcommand*{\LWR@printatbang}[2]{% +\edef\LWR@atbangspec{\LWR@getexparray{LWR@col#1spec}{#2}} +\LWR@traceinfo{atbang: !\LWR@atbangspec!} +\ifdefempty{\LWR@atbangspec}% +{}% +{% +\LWR@htmltag{td class="td#1% +\ifthenelse{\equal{\LWR@getexparray{LWR@midrules}{\theLWR@tablecolspos}}{Y}}{rule}{}% +"}% +\LWR@atbangspec% +\LWR@htmltag{/td}\LWR@orignewline% +}% +}% + + \newcommand*{\LWR@tabledatasinglecolumntag}% {% \LWR@maybenewtablerow% +\ifbool{LWR@intabularmetadata}{% \ifbool{LWR@exitingtabular}{}% {% not exiting tabular +\ifthenelse{\cnttest{\value{LWR@tablecolspos}}=1}% +{% +\LWR@printatbang{at}{leftedge}% +\LWR@printatbang{bang}{leftedge}% +}% left edge +{}% not left edge \StrChar{\LWR@tablecolspec}{\theLWR@tablecolspos}[\LWR@strresult]% \LWR@htmltag{td class="td% \LWR@strresult% @@ -5099,15 +5156,10 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% \global\booltrue{LWR@tableparcell}% }% allow pars {}% no pars -\ifthenelse{\cnttest{\value{LWR@tablecolspos}}=1}% -{% -\LWR@getexparray{LWR@colatspec}{leftedge}% -\LWR@getexparray{LWR@colbangspec}{leftedge}% -}% left edge -{}% not left edge \LWR@getexparray{LWR@colbeforespec}{\theLWR@tablecolspos}% \global\boolfalse{LWR@intabularmetadata}% }% not exiting tabular +}{}% in tabular metadata }% @@ -5120,7 +5172,7 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% \cnttest{\value{LWR@midrulecounter}}{<=}{\value{LWR@tablecolswidth}}% }% {% -\LWR@setexparray{LWR@midrules}{\theLWR@midrulecounter}{\relax}% +\LWR@setexparray{LWR@midrules}{\theLWR@midrulecounter}{}% \addtocounter{LWR@midrulecounter}{1}% }% } @@ -5249,7 +5301,8 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% {\LWR@setlatestname{#2}}% given and non-empty }% optional given {\LWR@setlatestname{#3}}% no optional -\LWR@domulticolumn{\theLWR@tabletotalcols}{P}{% \LWR@domulticolumn +\LWR@tabularhtmlcolumns{1}{\theLWR@tabletotalcols} +\LWR@domulticolumn{\theLWR@tabhtmlcoltotal}{P}{% \LWR@domulticolumn \IfBooleanTF{#1}% star? {% yes star \LWR@htmlblocktag{figcaption}% @@ -5296,6 +5349,7 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% }% end of yes TOC entry }% end of TOC entry not empty }% end of no star +\booltrue{LWR@skipatbang}% }% end of \LWR@domulticolumn \addtocounter{LWR@tablecolspos}{\theLWR@tabletotalcols} @@ -5304,11 +5358,39 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% } + +\newcounter{LWR@tabhtmlcolindex} +\newcounter{LWR@tabhtmlcolend} +\newcounter{LWR@tabhtmlcoltotal} + +\newcommand*{\LWR@tabularhtmlcolumns}[2]{% +\setcounter{LWR@tabhtmlcolindex}{#1}% +\setcounter{LWR@tabhtmlcoltotal}{#2}% +\setcounter{LWR@tabhtmlcolend}{#1}% +\addtocounter{LWR@tabhtmlcolend}{#2}% +\whiledo{\value{LWR@tabhtmlcolindex}<\value{LWR@tabhtmlcolend}}{% +\edef\LWR@atbangspec{\LWR@getexparray{LWR@colatspec}{\theLWR@tabhtmlcolindex}}% +\ifdefempty{\LWR@atbangspec}{}{\addtocounter{LWR@tabhtmlcoltotal}{1}}% +\edef\LWR@atbangspec{\LWR@getexparray{LWR@colbangspec}{\theLWR@tabhtmlcolindex}}% +\ifdefempty{\LWR@atbangspec}{}{\addtocounter{LWR@tabhtmlcoltotal}{1}}% +\addtocounter{LWR@tabhtmlcolindex}{1}% +}% +\ifthenelse{\value{LWR@tablecolspos}=1}{% +\edef\LWR@atbangspec{\LWR@getexparray{LWR@colatspec}{leftedge}}% +\ifdefempty{\LWR@atbangspec}{}{\addtocounter{LWR@tabhtmlcoltotal}{1}}% +\edef\LWR@atbangspec{\LWR@getexparray{LWR@colbangspec}{leftedge}}% +\ifdefempty{\LWR@atbangspec}{}{\addtocounter{LWR@tabhtmlcoltotal}{1}}% +}{}% +} + + \NewDocumentCommand{\LWR@tabledatamulticolumntag}{m m +m}% {% -\LWR@domulticolumn{#1}{#2}{#3}% +\LWR@tabularhtmlcolumns{\theLWR@tablecolspos}{#1} +\LWR@domulticolumn{\theLWR@tabhtmlcoltotal}{#2}{#3}% \addtocounter{LWR@tablecolspos}{#1}% \addtocounter{LWR@tablecolspos}{-1}% +\booltrue{LWR@skipatbang}% } @@ -5347,8 +5429,7 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% \ifthenelse{\isequivalentto{\LWR@mynexttoken}{\hline}}% {\let\mynext\LWR@donothing}{}% \ifthenelse{\isequivalentto{\LWR@mynexttoken}{\toprule}}% -{% -\let\mynext\LWR@donothing}{}% +{\let\mynext\LWR@donothing}{}% \ifthenelse{\isequivalentto{\LWR@mynexttoken}{\midrule}}% {\let\mynext\LWR@donothing}{}% \ifthenelse{\isequivalentto{\LWR@mynexttoken}{\cmidrule}}% @@ -5375,10 +5456,11 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% \begin{warpHTML} +\StartDefiningTabulars + \newenvironment*{LWR@tabular}[2][] {% -\LWR@traceinfo{tabular started}% -\begingroup% +\LWR@traceinfo{LWR@tabular started}% \addtocounter{LWR@tabulardepth}{1}% \global\boolfalse{LWR@startedrow}% \global\boolfalse{LWR@doinghline}% @@ -5393,12 +5475,17 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% \LWR@clearmidrules% \let\\\LWR@tabularendofline% \renewcommand*{\hline}{\LWR@domidrule\LWR@getmynexttoken}% + \newcommand*{\midrule}{\LWR@domidrule\LWR@getmynexttoken}% + \NewDocumentCommand{\cmidrule}{o d() m}% {\LWR@docmidrule[##1](##2){##3}\LWR@getmynexttoken}% + \RenewDocumentCommand{\cline}{m}% {\LWR@docmidrule{##1}\LWR@getmynexttoken}% + \newcommand*{\toprule}{\LWR@dotbrule\LWR@getmynexttoken}% + \newcommand*{\bottomrule}{\LWR@dotbrule\LWR@getmynexttoken}% \let\multicolumn\LWR@tabledatamulticolumntag% \let\multirow\LWR@tabledatamultirowtag% @@ -5406,17 +5493,25 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% \let\caption\LWR@longtabledatacaptiontag% \global\boolfalse{LWR@tableparcell}% \global\boolfalse{LWR@skippingmrowcell}% +\global\boolfalse{LWR@skipatbang}% +\StartDefiningTabulars% +\protected\gdef&{\LWR@tabularampersand}% \LWR@getmynexttoken% }% {% +\LWR@traceinfo{LWR@tabular ending}% \LWR@closetabledatacell% \LWR@htmlblocktag{/tr}% \LWR@htmlblocktag{/table}% \global\boolfalse{LWR@intabularmetadata}% \addtocounter{LWR@tabulardepth}{-1}% -\endgroup% +\protected\gdef&{\LWR@origampmacro}% +\EndDefiningTabulars% +\LWR@traceinfo{LWR@tabular finished ending}% } +\EndDefiningTabulars + \end{warpHTML} @@ -5706,7 +5801,7 @@ class="#3"\LWR@orignewline}#2\LWR@htmltag{/a}% \newcommand{\LWR@caption@end} {% \LWR@origcaption@end% -\vspace*{\baselineskip}% +\LWR@origvspace*{\baselineskip}% \LWR@htmlblocktag{/figcaption}% \endgroup% \LWR@traceinfo{LWR@caption@end: done}% @@ -6178,8 +6273,8 @@ class="#3"\LWR@orignewline}#2\LWR@htmltag{/a}% } - \BeforeBeginEnvironment{multline}{ + \ifbool{mathjax} { \LWR@syncmathjax @@ -6204,6 +6299,7 @@ class="#3"\LWR@orignewline}#2\LWR@htmltag{/a}% } \BeforeBeginEnvironment{multline*}{ + \ifbool{mathjax} { \LWR@syncmathjax @@ -6229,6 +6325,7 @@ class="#3"\LWR@orignewline}#2\LWR@htmltag{/a}% \BeforeBeginEnvironment{gather}{ + \ifbool{mathjax} { \LWR@syncmathjax @@ -6252,6 +6349,7 @@ class="#3"\LWR@orignewline}#2\LWR@htmltag{/a}% } \BeforeBeginEnvironment{gather*}{ + \ifbool{mathjax} { \LWR@syncmathjax @@ -6275,6 +6373,7 @@ class="#3"\LWR@orignewline}#2\LWR@htmltag{/a}% } \BeforeBeginEnvironment{align}{ + \ifbool{mathjax} { \LWR@syncmathjax @@ -6298,6 +6397,7 @@ class="#3"\LWR@orignewline}#2\LWR@htmltag{/a}% } \BeforeBeginEnvironment{align*}{ + \ifbool{mathjax} { \LWR@syncmathjax @@ -6321,6 +6421,7 @@ class="#3"\LWR@orignewline}#2\LWR@htmltag{/a}% } \BeforeBeginEnvironment{flalign}{ + \ifbool{mathjax} { \LWR@syncmathjax @@ -6344,6 +6445,7 @@ class="#3"\LWR@orignewline}#2\LWR@htmltag{/a}% } \BeforeBeginEnvironment{flalign*}{ + \ifbool{mathjax} { \LWR@syncmathjax @@ -6831,8 +6933,9 @@ img src="\thisgraphicspath\LWR@strresult\LWR@imageextension" \LWR@orignewline \begin{warpHTML} - - +\AtEndPreamble{ +\RequirePackage{cleveref} +} \AfterEndPreamble{ @@ -6979,7 +7082,7 @@ img src="\thisgraphicspath\LWR@strresult\LWR@imageextension" \LWR@orignewline \LWR@endminipage% The following empty line is required: \LWR@htmldivclassend{minipage}% -\vspace{1\baselineskip}% required for subcaption +\LWR@origvspace{1\baselineskip}% required for subcaption \addtocounter{LWR@minipagedepth}{-1}% \LWR@startpars% \global\booltrue{LWR@minipagethispar}% @@ -7081,6 +7184,7 @@ img src="\thisgraphicspath\LWR@strresult\LWR@imageextension" \LWR@orignewline \let\LWR@origquad\quad \let\LWR@origqquad\qquad \let\LWR@orighspace\hspace +\let\LWR@origvspace\vspace \let\LWR@origrule\rule \let\LWR@origmedskip\medskip @@ -7180,6 +7284,9 @@ span style="width:\printlength{\LWR@tempwidth}; display:inline-block;"% } \let\hspace\LWR@hspace +\NewDocumentCommand{\LWR@vspace}{s m}{} +\let\vspace\LWR@vspace + \renewcommand*{\linebreak}[1][]{\newline} \renewcommand*{\nolinebreak}[1][]{} -- cgit v1.2.3