diff options
author | Karl Berry <karl@freefriends.org> | 2020-04-25 20:51:39 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-04-25 20:51:39 +0000 |
commit | e6ef624d41c49a62e8b2d8e051b4d2cb8dc1ff46 (patch) | |
tree | 8cb484f86ed4e60635b18880d91e3290648b21fc /Master/texmf-dist/source | |
parent | b3f874e11dec455061f4a2eee43b3992c83a19ad (diff) |
lwarp (25apr20)
git-svn-id: svn://tug.org/texlive/trunk@54877 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r-- | Master/texmf-dist/source/latex/lwarp/lwarp.dtx | 4335 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/lwarp/lwarp.ins | 1 |
2 files changed, 2817 insertions, 1519 deletions
diff --git a/Master/texmf-dist/source/latex/lwarp/lwarp.dtx b/Master/texmf-dist/source/latex/lwarp/lwarp.dtx index 26c58843b54..f073d2bc36a 100644 --- a/Master/texmf-dist/source/latex/lwarp/lwarp.dtx +++ b/Master/texmf-dist/source/latex/lwarp/lwarp.dtx @@ -16,7 +16,7 @@ % \iffalse %<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01] %<package>\ProvidesPackage{lwarp} -%<package> [2020/03/25 v0.83 Allows LaTeX to directly produce HTML5 output.] +%<package> [2020/04/24 v0.84 Allows LaTeX to directly produce HTML5 output.] % %<*driver> \documentclass{ltxdoc} @@ -565,8 +565,8 @@ bibtex <projectname>\textred{\_html}.gls \DescribeOption{GlossaryCmd}\DescribeDefault{makeglossaries} \DescribeOption[lwarpmk]{printglossary} \DescribeOption[lwarpmk]{htmlglossary} -\prog{lwarpmk} has the commands \texttt{lwarpmk printglossary} and -\texttt{lwarpmk htmlglossary}, which process the glossaries created by the +\prog{lwarpmk} has the commands \cmds{lwarpmk printglossary} and +\cmds{lwarpmk htmlglossary}, which process the glossaries created by the \pkg{glossaries} package using that package's \prog{makeglossaries} program. The shell command to execute is set by the \pkg{lwarp} option \optn{GlossaryCmd}, @@ -760,6 +760,10 @@ allowing other packages to work with it. \newcommand*{\limitspagenote}{% \pkg{pagenote} works as-is, but the \optn{page} option is disabled. + +Note that labels in page notes do not appear as expected, +\trouble[labels]{pagenote=\pkg{pagenote}} +even in the print version. } \newcommand*{\limitsendnotes}{% @@ -848,6 +852,11 @@ In the \CSS\ try referencing fonts which are more complete, but expect to see ga \newcommand{\limitsaccents}{% Native \LaTeX\ accents such as \cs{"} will work, but many more kinds of accents are available when using Unicode-aware \XeLaTeX\ and \LuaLaTeX. +If using accents in section names which will become file names, it is recommended +to use the \LaTeX\ accents such as \cs{"} and \cs{v} instead of Unicode accents. +The \LaTeX\ accents will have the accents stripped when creating the filenames, +whereas the Unicode accents will appear in the file names, which may cause +issues with some operating systems. } \newcommand{\limitsrelsize}{% @@ -1025,7 +1034,6 @@ instead of pdf\LaTeX. Many features are ignored during the \HTML\ conversion. The goal is source-level compatibility. -\cs{titlehead}, \cs{subject}, \cs{captionformat}, \cs{figureformat}, and \cs{tableformat} are not yet emulated. \testthis @@ -1035,6 +1043,10 @@ Please contact the author with any bug reports. } \newcommand{\limitsmemoir}{ +\pkg{lwarp} uses \pkg{caption}, which causes a warning from \pkg{memoir}. +\trouble[captions]{memoir=\pkg{memoir}>captions} +This is normal. Adjust captions via \pkg{caption}, instead of \pkg{memoir}. + While emulating \pkg{memoir}, \pkg{lwarp} pre-loads a number of packages (\cref{sec:patch-memoir-packages}). This can cause an options clash when the user's document later loads the same @@ -1062,19 +1074,52 @@ Since \pkg{lwarp} is intended to support the freestanding packages, which are often newer than the date declared by \pkg{memoir}, it is hoped that \pkg{memoir} will update and change its emulated version numbers to match. -\cs{verbfootnote} is not supported. +\cs{label} accepts an optional \optn{(bookmark)} argument, but this is +\margintag{\texttt{\cs{label}(bookmark)\{tag\}}} +ignored in \HTML. + +The \env{comment} environment is from the \pkg{comment} package, and thus +\trouble[\env{comment}]{comment=\env{comment}} +\trouble{memoir=\pkg{memoir}>comment=\env{comment}} +requires that the \cs{begin} and \cs{end} each be on its own line: +\begin{sourcedisplay} +\cs{begin}\{comment\} \\ +This is a comment. \\ +\cs{end}\{comment\} +\end{sourcedisplay} +Comments defined with \cs{newcomment} use \pkg{memoir}'s defintions, and +\margintag{\cs{newcomment}} +behave as expected, where the \cs{begin} and \cs{end} do have to each be on its own line. + +\cs{verbfootnote} is not supported.\watchout[verbatim footnotes] -\cs{newfootnoteseries}, etc. are not supported. +\cs{newfootnoteseries}, etc. are not supported.\watchout[\cs{newfootnoteseries}] \pkg{lwarp} loads \pkg{pagenote} to perform \pkg{memoir}'s pagenote functions, +\watchout[page notes] but there are minor differences in \cs{pagenotesubhead} and related macros. -Poem numbering is not supported. +To add support for pagenotes with \pkg{cleveref}, add: +\margintag{page notes with cleveref} +\trouble{memoir=\pkg{memoir}>page notes} +\begin{sourcedisplay} +\cs{crefname}\{pagenote\}\{page note\}\{page notes\} \\ +\cs{Crefname}\{pagenote\}\{Page note\}\{Page notes\} +\end{sourcedisplay} + +Note that for print mode, +\margintag{page note \cs{nameref}} +\cs{nameref} print the section name where the page notes are +declared in the text, but for \HTML\ it prints the name where the page notes are printed. + +Poem numbering is not supported.\watchout[poems] The \env{verbatim} environment does not yet support the \pkg{memoir} enhancements. +\watchout[\env{verbatim}] It is currently recommended to load and use \pkg{fancyvrb} instead. The \pkg{memoir} glossary system is not yet supported by \prog{lwarpmk}. +\watchout[glossaries] The \pkg{glossaries} package may be used instead, but does require the glossary entries be changed from the \pkg{memoir} syntax to the \pkg{glossaries} syntax. @@ -1116,6 +1161,10 @@ Horizontal spacing relies on \prog{pdftotext}'s ability to discern the layout text in the \HTML-tagged \PDF\ output. For some settings of \cs{HTMLleftmargini} or \cs{HTMLleftskip} the horizontal alignment may not work out exactly, in which case a label may be shifted by one space. +\trouble[\env{verse} margin]{verse=\pkg{verse}>margin} +\trouble{memoir=\pkg{memoir}>verse>margin} +During translation to \HTML, the stanza numbers are kept out of the left margin, +which would have caused \prog{pdftotext} to shift everything over. } @@ -1553,11 +1602,34 @@ This conversion is not total. Font control is via \CSS, and the custom \LaTeX\ font settings are ignored. +If the print version does not use \pkg{cleveref}, +\trouble[cref reference format undefined]{ntheorem=\pkg{ntheorem}>cref reference format} +\trouble{cref reference format} +\trouble{cleveref=\pkg{cleveref}>cref reference format} +place all \cs{theoremstyle} and \cs{newtheorem} +declarations in the preamble inside \cs{AtBeginDocument}.\footnote{% + \pkg{lwarp} uses \pkg{cleveref} for the \HTML\ conversion, + and loads \pkg{cleveref} \cs{AtEndPreamble}, just before \cs{AtBeginDocument}.% +} +For some theorems, it may also be required to add inside \cs{AtBeginDocument} +something such as: +\begin{sourcedisplay} +\cs{AtBeginDocument}\{ \% if not using cleveref package \\ + \fquad \cs{theoremstyle}\{definition\} \\ + \fquad \cs{newtheorem}\{dtheorem\}\{Definition\} \\ + \fquad \dots \\ + \fquad \cs{usepackage}\{etoolbox\} \% for \cs{ifdef} \\ + \fquad \cs{ifdef}\{\cs{cref}\}\{ \\ + \fqquad \cs{crefname}\{Proof\}\{Proof\}\{Proofs\} \\ + \fquad \}\{\} \\ +\} +\end{sourcedisplay} + \limitsntheoremnumbering } \newcommand{\limitsntheoremnumbering}{% -\pkg{ntheorem} has a bug with equation numbering in \AmS\ environments% +\pkg{ntheorem} has a bug with equation numbering in \AmS\ environments \trouble[Equation numbering]{ntheorem=\pkg{ntheorem}>numbering} \trouble{math>equation numbering>ntheorem=\pkg{ntheorem}} \trouble{AMSmath>ntheorem=\pkg{ntheorem}>numbering} @@ -1777,9 +1849,9 @@ by an \SVG, \PNG, or \JPG\ version for \HTML. } \newcommand{\limitscolor}{% -\pkg{color} is superceded by \pkg{xcolor}, and -\pkg{lwarp} requires several of the features of \pkg{xcolor}. -When \pkg{color} is requested, \pkg{xcolor} is loaded as well. + \pkg{color} is superceded by \pkg{xcolor}, and + \pkg{lwarp} requires several of the features of \pkg{xcolor}. + When \pkg{color} is requested, \pkg{xcolor} is loaded as well. } \newcommand{\limitsxcolor}{% @@ -2432,11 +2504,12 @@ Unfortunately, the \HTML\ \attribute{alt} attribute is not used here. Also see \pkg{lwarp}'s \cs{fboxBlock} macro and \env{fminipage} environment for alternatives to \cs{fbox} for framing environments. -The \pkg{fancybox} documentation's example framed table +The \pkg{fancybox} documentation's example of a framed table \margintag{framed table example} using an \cs{fbox} containing a \env{tabular} does not work with \pkg{lwarp}, but the \env{FramedTable} environment does work if -\cs{fbox} is replaced by \cs{fboxBlock}. This method loses \HTML\ formatting. +\cs{fbox} is replaced by \cs{fboxBlock}. +This method does lose some \HTML\ formatting. A better method is to enclose the table's contents inside a \env{fminipage} environment. The caption may be placed either inside or outside the \env{fminipage}: \begin{sourcedisplay} @@ -2743,7 +2816,8 @@ These are not the same as the third-party \brand{MathJax} extension. \newcommand{\limitsbabeltwo}{% When French is used, the caption separator is \trouble[\cs{CaptionSeparator}]{babel=\pkg{babel}>French} -changed to a dash. The following may be used to restore it to a colon: +changed to a dash. To restore it to a colon, +the following may be placed before \pkg{lwarp} is loaded: \begin{sourcedisplay} \cs{renewcommand}*\{\cs{CaptionSeparator}\}\{:\textasciitilde\} \end{sourcedisplay} @@ -2925,7 +2999,7 @@ This boolean may be tested by the user for later use. %<*package> % \fi % -% \CheckSum{43597} +% \CheckSum{44148} % % \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 @@ -3051,6 +3125,7 @@ This boolean may be tested by the user for later use. % \changes{v0.81}{2020/03/04}{\ 2020/03/04} % \changes{v0.82}{2020/03/25}{\ 2020/03/25} % \changes{v0.83}{2020/03/27}{\ 2020/03/27} +% \changes{v0.84}{2020/04/24}{\ 2020/04/24} @@ -3273,11 +3348,57 @@ This boolean may be tested by the user for later use. % % \begin{description} % \needspace{2\baselineskip} +% \item[v0.84:] Previous/next page links, numerous fixes. +% \begin{itemize} +% \item Added documentation of \env{BlockClass} and \cs{InlineClass} +% for \CSS\ \element{div}s and \element{span}s. +% \margintag{docs} +% See \cref{sec:classstyle}. +% \item Added \cs{LinkPrevious}, \cs{LinkNext} page links. +% See \cref{sec:htmlsettings}. +% \item Added \cs{FirstPageBottom}. +% \watchout[home page footer changed] +% Home page no longer shares \cs{PageBottom}. +% See \cref{sec:htmlsettings}. +% \item Improved coexistence with \pkg{comment}, support for nested environments. +% \margintag{core} +% \item No longer requires but still supports the \pkg{caption} package. +% \item Improved filenames and \HTML\ titles when using special characters. +% \item Change: Append \filenm{-0} to section named Index +% \watchout{previously \_index} +% to distinguish from \filenm{index.html} +% \item Fixed style tags for \cs{multicolumn}, \cs{multirow}. +% \item Fixed spacing in \env{tabbing}. +% \item Fixed \env{lateximage} for: \env{quote}, \env{quotation}, \env{verse}, +% \env{center}, \env{flushleft}, \env{flushright}, +% \element{par} tags, packages \pkg{verbatim}, \pkg{alltt}, \pkg{epigraph}. +% \item Fixed \pkg{textcomp} due to integration into \LaTeX\ kernel. +% \item Fixed \cs{itshape}, etc. Adapted to \LaTeX\ \pkg{fontaxes} integration. +% \item Fixed \cs{@fnsymbol}. +% \item Warns about section names with dollar-delimited math. +% \item Warns about a \element{span} containing a float, caption, section, +% \pkg{mdframed}, or other \element{div} object. +% \item Only warn about \XeTeX\ logo and \pkg{graphics} if actually used \cs{Xe}. +% \item \cmds{lwarpmk clean} also removes \filenm{comment_*.cut}. +% \margintag{\prog{lwarpmk}} +% \item \pkg{scrextend}, \pkg{scrartcl}, \pkg{scrbook}: Added \cs{titlehead}, +% \margintag{packages} +% \cs{subject}, \cs{subtitle}, \cs{publishers}. +% \item \pkg{titling}: Fixed \cs{printthanks}. +% \item \pkg{memoir}, \pkg{abstract}: Fixed for updated \pkg{memoir}. +% \item \pkg{memoir}: Fixed \cs{newcomment}, pagenotes, crossreferences. +% Fixed setting a recursive name. +% \item Fixed or improved: \pkg{amsthm}, \pkg{backref}, \pkg{biblatex}, \pkg{fixme}, +% \pkg{nfssext-cfr}, \pkg{ntheorem}, \pkg{parcolumns}, +% \pkg{realscripts}, \pkg{rotfloat}, \pkg{titling}. +% \item Added \pkg{boxedminipage}, renamed from \pkg{boxedminipage2e} per author. +% \item Verified to work as-is with \pkg{mcite}. +% \end{itemize} +% \needspace{2\baselineskip} % \item[v0.83:] \pkg{memoir} fixes. % \begin{itemize} -% \item \pkg{memoir}: Various fixes and updates, but subcaption labels +% \item \pkg{memoir}: Various fixes and updates. % \margintag{packages} -% still need work. (Out of time\dots) % \item \pkg{physunits}: Updated to v1.0.4. % \end{itemize} % \needspace{2\baselineskip} @@ -3447,7 +3568,7 @@ This boolean may be tested by the user for later use. % \cmidrule(r){1-1}\cmidrule(l){2-2} % (hard coded as ``image'') & \cs{ImageAltText} \\ % \cs{mathimagename} & \cs{MathImageAltText} \\ -% \cs{pacakgediagramname} & \cs{PackageDiagramAltText} \\ +% \cs{packagediagramname} & \cs{PackageDiagramAltText} \\ % \end{tabular} % \end{center} % \item Added \cs{ImageAltText} for the default \HTML\ \attribute{alt} text for @@ -5197,7 +5318,7 @@ This boolean may be tested by the user for later use. % Glossary: & \mpkg{gloss}, \mpkg{glossaries} and \prog{xindy}, \mpkg{nomencl}.\\ % % Bibliography: & \spkg{babelbib}, \mpkg{backref}, \mpkg{biblatex}, \mpkg{bibunits}, -% \mpkg{chapterbib}, \mpkg{cite}, \ipkg{hypernat}, \mpkg{natbib}, +% \mpkg{chapterbib}, \mpkg{cite}, \ipkg{hypernat}, \spkg{mcite}, \mpkg{natbib}, % \spkg{notes2bib}, \ipkg{showtags}. % % \\ @@ -5339,7 +5460,8 @@ This boolean may be tested by the user for later use. % Verbatim: & % \mpkg{fancyvrb}, \mpkg{moreverb}, \spkg{shortvrb}, \mpkg{verbatim}. \\ % -% Frames: & \mpkg{boxedminipage2e}, \mpkg{fancybox}, \mpkg{framed}, \mpkg{mdframed}, +% Frames: & \mpkg{boxedminipage}, \mpkg{boxedminipage2e}, +% \mpkg{fancybox}, \mpkg{framed}, \mpkg{mdframed}, % \epkg{niceframe}, \epkg{shadow}, \epkg{vertbars}. \\ % % Multi-columns: & \epkg{adjmulticol}, \epkg{multicol}, @@ -5359,7 +5481,7 @@ This boolean may be tested by the user for later use. % \ipkg{lua-check-hyphen}, \ipkg{luacolor}, \epkg{magaz}, \epkg{nolbreaks}, % \ipkg{normalcolor}, % \ipkg{pdfcol}, \ipkg{pdfcolmk}, -% \ipkg{pdfrender}, \epkg{realscripts}, \mpkg{relsize}\ejax, +% \ipkg{pdfrender}, \mpkg{realscripts}, \mpkg{relsize}\ejax, % \ipkg{scalefnt}, \epkg{soul}, \epkg{soulpos}, \epkg{soulutf8}, \mpkg{stackengine}, % \epkg{textfit}, \epkg{thinsp}, \ipkg{trimclip}, \ipkg{truncate}, % \mpkg{ulem}, \mpkg{umoline}, \ipkg{underscore}, \ipkg{uspace}, @@ -6213,8 +6335,8 @@ This boolean may be tested by the user for later use. % \brand{MathJax} is used to display math. % This file should not be modified by the user. % -% \item [|comment.cut|:] A temporary file used by \pkg{lwarp} to -% conditionally process blocks of text. This file may be ignored. +% \item [|comment\_*.cut|:] Temporary files used by \pkg{lwarp} to +% conditionally process blocks of text. These files may be ignored. % \end{description} % % \hrule \medskip @@ -6586,7 +6708,7 @@ This boolean may be tested by the user for later use. % % The \filenm{<project>-images} directory contains \SVG\ images % automatically generated for inline and display math, \pkg{tikz}, etc. -% To remove all the images from the \filenm{lateximages} directory: +% To remove all the images from the \filenm{<project>-images} directory: % \userentry{lwarpmk cleanlimages} % % @@ -6783,15 +6905,20 @@ This boolean may be tested by the user for later use. % \gindex{sideTOC=side\TOC>name} % \gindex{settings>language} % -% Regional localization is supported by \pkg{lwarp} via the following package options -% and macros: +% Regional localization is supported by \pkg{lwarp} via the package options +% and macros shown in \cref{tab:localization}. % +% \begin{table} +% \caption{Localization settings} +% \label{tab:localization} % \begin{description} % \item [Object names:] \LaTeX\ provides redefinable names for various objects, % and \pkg{lwarp} adds a few more. Use \cs{renewcommand} to change these. % \begin{description} % \item [\cs{abstractname}:] This macro is honored by \pkg{lwarp}. % \item [\cs{linkhomename}:] Displayed by the link to the homepage. +% \item [\cs{linkpreviousname}:] Displayed by the link to the previous page +% \item [\cs{linknextname}:] Displayed by the link to the next page. % \item [\cs{sidetocname}:] Displayed at the head of the side\TOC. % \end{description} % \item [\HTML\ settings:] See \cref{tab:htmlsettings} and @@ -6815,6 +6942,7 @@ This boolean may be tested by the user for later use. % \item [\optn{pdftotextEnc}:] To adjust the encoding of \prog{pdftotext}. % \end{description} % \end{description} +% \end{table} % % % \subsection{Accessibility} @@ -6838,8 +6966,11 @@ This boolean may be tested by the user for later use. % \HTML\ also provides the \attribute{title} attribute, which usually % generates a pop-up text. \pkg{lwarp} can add this to a reference or hyperlink. % \brand{MathJax} also has provisions for improved accessibility -% as well. +% as well. See \cref{tab:accessibility}. % +% \begin{table} +% \caption{Accessibiltiy settings} +% \label{tab:accessibility} % \begin{description} % \item [\cs{ImageAltText}:] The default \HTML\ \attribute{alt} text % for \cs{includegraphics} and \env{lateximage}s. @@ -6897,6 +7028,7 @@ This boolean may be tested by the user for later use. % This may be changed by redefining \cs{AltTextOpen} and \cs{AltTextClose}. % Set with \cs{renewcommand}. % \end{description} +% \end{table} % % % @@ -7077,6 +7209,23 @@ This boolean may be tested by the user for later use. % with \pkg{fontspec} after loading the traditional font packages. % Monospaced output ligatures must be turned off % to produce the correct \HTML\ characters. +% +% Any monospace font with built-in ligatures may require these ligatures to +% \changes{v0.84}{2020/04/15}{Docs: \brand{JetBrain Mono} font.} +% be disabled for \HTML. In one example, \brand{JetBrain Mono}, +% \trouble[\brand{JetBrain Mono}]{font>JetBrain Mono=\brand{JetBrain Mono}} +% \trouble{jetbrain mono=\brand{JetBrain Mono}} +% \trouble[\HTML\ corrupted]{HTML>corrupted} +% \trouble{font>ligatures} +% it is required to use +% \begin{sourcedisplay} +% \cs{setmonofont}\{JetBrains Mono\}[\% \\ +% \dots \\ +% \textgreen{Contextuals=AlternateOff,} \\ +% ] +% \end{sourcedisplay} +% After \pkg{lwarp} is loaded, the ligature may be re-enabled for print mode +% by using \cs{setmonofont} again inside a \env{warpprint} environment. % \item \ldots{} the rest of the preamble and the main document. % \end{enumerate} % @@ -7109,7 +7258,7 @@ This boolean may be tested by the user for later use. % \gindex{settings>lwarp=\pkg{lwarp} package options} % % \begin{table} -% \caption{\pkg{lwarp} package options\label{tab:options}} +% \caption{\pkg{Lwarp} package options\label{tab:options}} % \centering % \renewcommand{\arraystretch}{1.2} % \begin{tabular}{>{\ttfamily}lp{3.25in}} @@ -7478,10 +7627,13 @@ This boolean may be tested by the user for later use. % \begin{table}[p] % \caption{\HTML\ settings} % \label{tab:htmlsettings} +% \renewcommand{\arraystretch}{1.1} % \begin{tabular}{>{\ttfamily}lp{3in}} % \toprule % Macro \Slash Cntr \Slash Bool & Description \\ \midrule % \cs{linkhomename} & Name of the link to the homepage. \\ +% \cs{linkpreviousname} & Name of the link to the previous page. \\ +% \cs{linknextname} & Name of the link to the next page. \\ % \midrule % SideTOCDepth & Sectioning depth of the side\TOC. \\ % \cs{sidetocname} & Name of the side\TOC. \\ @@ -7515,8 +7667,9 @@ This boolean may be tested by the user for later use. % \cs{HTMLDescription} & The \HTML\ \attribute{description} meta tag. \\ % \midrule % \cs{HTMLFirstPageTop} & Heading for the home page. \\ +% \cs{HTMLFirstPageTop} & Footer for the home page. \\ % \cs{HTMLPageTop} & Heading for the other pages. \\ -% \cs{HTMLPageBottom} & Footing for all pages. \\ +% \cs{HTMLPageBottom} & Footer for the other pages. \\ % \midrule % HTMLDebugComments & Boolean to generate \HTML\ comments. \\ % \bottomrule @@ -7591,6 +7744,7 @@ This boolean may be tested by the user for later use. % % \end{description} \bigskip % +% \needspace{3\baselineskip} % \item[Placed in the preamble before \texttt{\cs{begin}\{document\}}:] \ % % \begin{description} @@ -7600,6 +7754,16 @@ This boolean may be tested by the user for later use. % Redefine with \cs{renewcommand}. % \changes{v0.63}{2018/11/29}{Docs: \cs{linkhomename}.} % +% \ItemDescribeMacro{\linkpreviousname} \DescribeDefault{Previous} +% Name of the link to the previous page. Paragraphs are allowed. +% Redefine with \cs{renewcommand}. +% \changes{v0.84}{2020/04/24}{Docs: \cs{linkpreviousname}.} +% +% \ItemDescribeMacro{\linknextname} \DescribeDefault{Next} +% Name of the link to the next page. Paragraphs are allowed. +% Redefine with \cs{renewcommand}. +% \changes{v0.84}{2020/04/24}{Docs: \cs{linkpreviousname}.} +% % \ItemDescribeCounter{tocdepth} Sectioning depth of the table of contents. % See \cref{sec:stackdepths} for a list of \LaTeX{} stack depths. % @@ -7729,7 +7893,7 @@ This boolean may be tested by the user for later use. % % \end{description} % -% \needspace{2\baselineskip} +% \needspace{3\baselineskip} % \item[Placed before \texttt{\cs{begin}\{document\}}, % or before any sectioning command which causes a file break:] \ % @@ -7806,6 +7970,14 @@ This boolean may be tested by the user for later use. % \ItemDescribeMacro{\HTMLFirstPageTop} \marg{contents} \DescribeDefault{<empty>} \quad % A user-definable custom action applied % to the top of the home page. Useful for logos, etc. +% \cs{LinkNext} may be used to link to the next web page. +% Defaults empty. +% Ignored in print output. +% +% \ItemDescribeMacro{\HTMLFirstPageBottom} \marg{contents} \DescribeDefault{<empty>} \quad +% A user-definable custom action applied +% to the bottom of the home page. Useful for logos, etc. +% \cs{LinkNext} may be used to link to the next web page. % Defaults empty. % Ignored in print output. % @@ -7813,21 +7985,34 @@ This boolean may be tested by the user for later use. % A user-definable custom action applied to % the top of pages other than the home page. Useful for logos, etc. % Defaults empty. -% \cs{LinkHome} may be used to place a link back to the homepage. +% \cs{LinkHome} may be used to place a link back to the homepage, as well as +% \cs{LinkPrevious} and \cs{LinkNext}. % Ignored in print output. % % \ItemDescribeMacro{\HTMLPageBottom} \marg{contents} \DescribeDefault{<empty>} \quad % A user-definable custom action applied to the -% bottom of each web page. +% bottom of pages other than the home page. % Useful for authors, copyright notices, contact information, etc. % Defaults empty. -% \cs{LinkHome} may be used to place a link back to the homepage. +% \cs{LinkHome} may be used to place a link back to the homepage, as well as +% \cs{LinkPrevious} and \cs{LinkNext}. % Ignored in print output. % +% \ItemDescribeMacro{\LinkHome} Creates a link to the home page. +% Usually used in \cs{HTMLPageTop} and related. +% +% \ItemDescribeMacro{\LinkPrevious} Creates a link to the previous \HTML\ page, +% unless already at the home page. +% Usually used in \cs{HTMLPageTop} and related. +% +% \ItemDescribeMacro{\LinkNext} Creates a link to the next \HTML\ page, unless +% already at the end. +% Usually used in \cs{HTMLPageTop} and related. +% % \end{description} % % -% \needspace{2\baselineskip} +% \needspace{3\baselineskip} % \item[Placed in the home page before the first sectioning command which causes a file break:] \ % % \begin{description} @@ -7883,13 +8068,15 @@ This boolean may be tested by the user for later use. % % \emph{Do not place anything else on the same line as \texttt{\cs{end}\{warpprint\}}}. % \watchout +% Also do not nest \env{warpprint} inside itself. % -% \ItemDescribeEnv{warpHTML} An environment which is only used +% \ItemDescribeEnv{warpHTML} An environment which is only included % while generating \HTML\ output. This is useful for website logos and % other items which have no purpose in printed output. % % \emph{Do not place anything else on the same line as \texttt{\cs{end}\{warpHTML\}}}. % \watchout +% Also do not nest \env{warpHTML} inside itself. % % \ItemDescribeMacro{\warpprintonly} \marg{contents} \quad % A macro version of the \env{warpprint} environment. @@ -8011,8 +8198,46 @@ This boolean may be tested by the user for later use. % \VerbatimInput[frame=lines]{sample_project.css} % % Finally use |\CSSFilename{<project>.css}| in the document to activate the custom \CSS. -% -% +% +% +% \subsection{Assigning \CSS\ classes and styles} +% \label{sec:classstyle} +% +% \gindex{CSS>class=\attribute{class}} +% \gindex{CSS>style=\attribute{span}} +% \gindex{HTML>class=\attribute{class}} +% \gindex{HTML>style=\attribute{style}} +% \gindex{HTML>div=\element{div}} +% \gindex{HTML>span=\element{span}} +% +% \HTML\ \CSS\ classes and styles may be assigned to fragments of the document. +% +% \DescribeEnv{BlockClass} \oarg{style} \marg{class} +% +% An entire block of text, including paragraphs, may be assigned a \CSS\ class +% and optional \CSS\ style using the \env{BlockClass} environment. +% The result is placed inside a \element{div}. +% A \env{BlockClass} may nest other \env{BlockClass}es or \cs{InlineClass}es. +% +% \DescribeMacro{\InlineClass} +% \parg{\acro{wp} \CSS\ style} \oarg{web \CSS\ style} +% \marg{\CSS\ class} \marg{text} +% +% A section of text without paragraphs may be assinged a \CSS\ class and optional +% \CSS\ style using the \cs{InlineClass} macro. +% The result is placed inside a \element{span}. +% \cs{InlineClass} may be nested, but per the \HTML\ standard it must not contain +% \env{BlockClass}, nor may it contain a paragraph, nor several other objects +% such as \HTML\ figures. +% \cs{InlineClass} also accepts a second optional parameter, enclosed inside +% parentheses, which assigns the style while generating output for a word processor, +% while ignoring the web style. +% +% Nullified versions of \env{BlockClass} and \cs{InlineClass} are provided +% for the print version, so they may be used in the document without +% placing them inside \env{warpHTML} or \cs{warpHTMLonly}. +% +% % \subsection{Selecting the operating system} % \label{sec:OSportabilityusage} % \changes{v0.11}{2016/03/11}{Added section: Selecting the operating system.} @@ -8022,7 +8247,7 @@ This boolean may be tested by the user for later use. % % \subsection{Selecting actions for print, \HTML, or \brand{MathJax} output} % \label{sec:selectingoutput} -% \gindex{settings>selecting output} +% \gindex{settings>selecting print/\HTML\ output} % \changes{v0.15}{2016/04/05}{Docs: Clarify print/\HTML\ output.} % % The following environments and macros are used to select actions which only apply @@ -8050,6 +8275,7 @@ This boolean may be tested by the user for later use. % Do \emph{not} place anything else on the same line as |\end{warpHTML}|. % \trouble[\texttt{\cs{end}\{warpHTML\}}]{warpHTML} % The exact phrase is used to mark the end of the environment. +% Do not nest \env{warpHTML} inside itself.\watchout[nesting] % % \DescribeEnv{warpprint} % Anything which is to be done only for print output @@ -8061,6 +8287,7 @@ This boolean may be tested by the user for later use. % \end{Verbatim} % As above, do not place anything else on the line with |\end{warpprint}|. % \trouble[\texttt{\cs{end}\{warpprint\}}]{warpprint} +% Do not nest \env{warpprint} inside itself.\watchout[nesting] % % \DescribeEnv{warpall} % Anything which is to be done for any output @@ -8071,6 +8298,8 @@ This boolean may be tested by the user for later use. % \end{warpall} % \end{Verbatim} % As above, do not place anything else on the line with |\end{warpall}|. +% \trouble[\texttt{\cs{end}\{warpall\}}]{warpall} +% Do not nest \env{warpall} inside itself.\watchout[nesting] % % % Macros are also provided for print-only or \HTML-only code: @@ -8087,6 +8316,9 @@ This boolean may be tested by the user for later use. % Anything which is to be done only while using \HTML\ output with \brand{MathJax} % is surrounded by a \env{warpMathJax} environment. % Usually, this is \cs{CustomizeMathJax}, used to add emulation macros. +% |\end{warpMathJax}| must appear on its own line. +% \trouble[\texttt{\cs{end}\{warpMathJax\}}]{warpMathJax} +% Do not nest \env{warpMathJax} inside itself.\watchout[nesting] % % % \subsection{Commands to be placed into the \env{warpprint} environment} @@ -8474,7 +8706,7 @@ This boolean may be tested by the user for later use. % and \cs{StopDefiningTabulars} afterwards. % Also see the \pkg{lwarp} documentation for the \pkg{fancybox} package. % \item [To frame equations:] See \cref{sec:fancybox} for the \pkg{fancybox} package. -% \item [For fancy framed minipages:] See packages \pkg{boxedminipage2e}, +% \item [For fancy framed minipages:] See packages \pkg{boxedminipage}, % \pkg{shadow}, \pkg{fancybox}, \pkg{framed}, \pkg{mdframed}. % \item [Custom environments:] Use a custom environment to create a sidebar, % containing a \env{BlockClass} environment @@ -8601,6 +8833,14 @@ This boolean may be tested by the user for later use. % \DescribePackage{varioref} % \limitscpageref % +% \pkg{cleveref} changes the behavior of \pkg{varioref} in that +% \trouble[\pkg{varioref} types]{varioref=\pkg{varioref}} +% the reference type is automatically printed if \pkg{cleveref} is loaded. +% \pkg{Lwarp} requires \pkg{cleveref}, so the \HTML\ version will always +% automatically print the reference types even if the print mode does not. +% The simplest way to make them match is to require the \pkg{cleveref} package +% for the document. +% % \subsubsection{Hyperlinks, \pkg{hyperref}, and \pkg{url}} % % \DescribePackage{hyperref} @@ -9751,6 +9991,41 @@ This boolean may be tested by the user for later use. % \DescribeClass{memoir} % \limitsmemoir % +% The custom frame commands in the \pkg{memoir} manual may be emulated by +% \trouble[\env{framewithtitle}, \env{titledframe}]{framewithtitle=\env{framewithtitle}} +% \trouble{titledframe=\env{titledframe}} +% \trouble{memoir=\pkg{memoir}>\env{framewithtitle}, \env{titledframe}} +% \gindex{memoir=\pkg{memoir}>\env{framewithtitle}, \env{titledframe}} +% placing the original defintions in the preamble inside \env{warpprint} +% environments, and then providing an \HTML\ equivalent: +% \begin{sourceverb} +% \begin{warpHTML} +% \newcommand{\FrameTitle}[2]{% +% \textbf{#2} +% } +% +% \newenvironment{framewithtitle}[2][\FrameFirst@Lab\ (cont.)]{% +% \begin{fminipage}{\linewidth} +% \textbf{#2} +% \begin{minipage}{\linewidth} +% } +% {\end{minipage}\end{fminipage}} +% +% \newcommand{\TitleFrame}[2]{% +% \par +% \textbf{#1}\par +% \fboxBlock{#2} +% } +% +% \newenvironment{titledframe}[2][\FrameFirst@Lab\ (cont.)]{% +% \par +% \textbf{#2} +% \begin{fminipage}{\linewidth} +% } +% {\end{fminipage}} +% \end{warpHTML} +% \end{sourceverb} +% % % \subsection{International languages} % \label{sec:international} @@ -10920,10 +11195,13 @@ This boolean may be tested by the user for later use. % \item[\ctr{SideTOCDepth} < \ctr{FileDepth}:] A warning is displayed if these % counters are set such that the side\TOC\ will not be able to access all pages % of the website. -% \item[Duplicate filenames:] \pkg{lwarp} may generate file names from section names. -% While doing so, the filenames are simplified and special characters are removed. +% \item[Filenames:] \pkg{lwarp} may generate file names from section names. +% While doing so, the filenames are simplified, and special characters +% and math are removed. % If this process generates a duplicate filename, and error is generated, % describing the filename and which section name generated it. +% A warning is issued if dollar-delimited math is used. +% Parenthesis-delimited math is recommended instead. % \item[Multirow:] When \cs{multirow} or \cs{multicolrow} are used, % \trouble[\HTML\ corrupted]{HTML>corrupted} % \cs{mrowcell} or \cs{mcolrowcell} must be placed in the appropriate cells to @@ -10985,9 +11263,20 @@ This boolean may be tested by the user for later use. % that your document's \LaTeX{} code is correct, before attempting % to generate an \HTML\ version. % -% \item [\texttt{\cs{end}\{warpHTML\}, \cs{end}\{warpprint\}, \cs{end}\{warpall\}}:] -% \trouble{warpHTML}\trouble{warpprint}\trouble{warpall} +% \item [\texttt{\cs{end}\{warpHTML\}, \cs{end}\{warpprint\}, +% \cs{end}\{warpall\}, \cs{end}\{warpMathJax\}}:] ~ \\ +% \trouble{warpHTML} +% \trouble{warpprint}\trouble{warpall}\trouble{warpMathJax} % Each of these must be without any other characters on the same line. +% \watchout[\env{warpHTML}, \env{warpprint}, \env{warpMathJax}, \env{warpall}] +% +% \item[``\texttt{Runaway argument? File ended while scanning use of \cs{next}}:] ~ \\ +% \trouble{warpHTML} +% \trouble{warpprint}\trouble{warpall}\trouble{warpMathJax} +% \trouble{Runaway argument? File ended \dots} +% \trouble{File ended while scanning use of \cs{next}} +% Don't use \env{warpHTML}, \env{warpprint}, \env{warpall}, or +% \env{warpMathJax} inside itself. % % \item [Options clash:] If using \pkg{memoir}, see \cref{sec:limitsmemoir}. % @@ -11051,7 +11340,7 @@ This boolean may be tested by the user for later use. % inside a group first. % % Also, custom macros which appear inside a section, -% \trouble[macros in section,table,figure names]{sectioning>macro in name} +% \trouble[macros in section, table, figure names]{sectioning>macro in name} % \trouble{table>macro in name} % \trouble{figure>macro in name} % figure, or table name should be @@ -11080,6 +11369,19 @@ This boolean may be tested by the user for later use. % define new macros for print and \HTML\ modes, see \cref{sec:definingprinthtml} % regarding \cs{LWR@expandableformatted}. % +% \item[''\texttt{Token not allowed in a PDF string}'':] This \pkg{hyperref} +% \trouble{Token not allowed in a PDF string} +% \trouble{hyperref=\pkg{hyperref}>Token not allowed in a PDF string} +% warning appears while creating the print-mode document, not \HTML. +% A low-level macro is being used in a section name which appears +% in the \PDF\ bookmarks. \pkg{hyperref} removes this macro from +% the bookmark, and warns of doing so. +% To avoid this warning, use \cs{pdfstringdefDisableCommands} in +% the preamble to define simplified replacement macros for each, or use +% \cs{texorpdfstring} in the \cs{section} or related macro +% to declare what to use for the \TeX\ text, v.s. the \PDF\ bookmark. +% See the \pkg{hyperref} manual. +% % \item[Complicated objects inside math:] Some objects, such as \tikz, % \trouble[``impure'' math objects]{math>non-math contents} % may not compile in \pkg{lwarp}'s normal math emulation. @@ -11610,12 +11912,13 @@ This boolean may be tested by the user for later use. {% Package #1,\MessageBreak or one which uses #1,\MessageBreak - must be loaded after lwarp + must be loaded after Lwarp.\MessageBreak + Enter 'H' for possible solutions% } - {Move \detokenize{\usepackage}{#1} after - \detokenize{\usepackage}{lwarp}.\MessageBreak + {Move ``\protect\usepackage{#1}'' after + ``\protect\usepackage{lwarp}''.\MessageBreak Package #1 may also be loaded by something else,\MessageBreak - which must also be moved after lwarp.} + which must also be moved after Lwarp.} } {} } @@ -11671,8 +11974,11 @@ This boolean may be tested by the user for later use. {} { \PackageError{lwarp} - {Package #1 must be loaded before lwarp} - {Move \detokenize{\usepackage}{#1} before \detokenize{\usepackage}{lwarp}.} + {% + Package #1 must be loaded before lwarp.\MessageBreak + Enter 'H' for possible solutions% + } + {Move ``\protect\usepackage{#1}'' before ``\protect\usepackage{lwarp}''.} } } % \end{macrocode} @@ -11808,7 +12114,6 @@ This boolean may be tested by the user for later use. \LWR@earlyloadnever{alg}{algorithm2e, algorithmicx} \LWR@earlyloadnever{algorithmic}{algorithm2e, algorithmicx} \LWR@earlyloadnever{bitfield}{bytefield} -\LWR@earlyloadnever{boxedminipage}{boxedminipage2e} \LWR@earlyloadnever{caption2}{caption} % \LWR@earlyloadnever{ccaption}{caption}% might be preloaded by memoir \LWR@earlyloadnever{colortab}{colortbl} @@ -11915,6 +12220,7 @@ This boolean may be tested by the user for later use. \LWR@notmemoirloadafter{booktabs} \LWR@loadafter{bophook} \LWR@loadafter{bounddvi} +\LWR@loadafter{boxedminipage} \LWR@loadafter{boxedminipage2e} \LWR@loadafter{braket} \LWR@loadafter{breakurl} @@ -12368,9 +12674,12 @@ This boolean may be tested by the user for later use. % % \begin{macrocode} \newcommand{\LWR@mdfive}[1]{% -\PackageError{lwarp} -{No MD5 macro was found} -{Lwarp must find the macros pdfmdfivesum or mdfivesum.} + \PackageError{lwarp} + {No MD5 macro was found} + {% + Lwarp must find the macros \protect\pdfmdfivesum\space + or \protect\mdfivesum.% + } } % \end{macrocode} % @@ -12499,7 +12808,8 @@ This boolean may be tested by the user for later use. {% Lwarp requires a vector font.\MessageBreak Install and load cm-super, lmodern, or another\MessageBreak - Type-1 vector font before loading lwarp% + Type-1 vector font before loading lwarp.\MessageBreak + Enter 'H' for possible solutions% } {% Install cm-super or lmodern.\MessageBreak @@ -12537,6 +12847,16 @@ This boolean may be tested by the user for later use. % \section{Miscellaneous tools} % % +% \subsection{Variables} +% +% \begin{macrocode} +\newlength{\LWR@templengthone} +\newlength{\LWR@templengthtwo} +\newlength{\LWR@templengththree} +\newcounter{LWR@tempcountone} +% \end{macrocode} +% +% % \subsection{Lengths and units} % % \begin{macro}{\LWR@providelength} \marg{\cs{lengthname}} @@ -12595,9 +12915,12 @@ This boolean may be tested by the user for later use. % Prints an error if could not patch a macro. % \begin{macrocode} \newcommand*{\LWR@patcherror}[2]{% -\PackageError{lwarp} -{Unable to patch package #1, macro #2} -{Please contact the author of the Lwarp package.} + \PackageError{lwarp}% + {% + Unable to patch package #1, macro #2.\MessageBreak + Lwarp may need to be updated% + }% + {Please contact the maintainer of the Lwarp package.}% } % \end{macrocode} % \end{macro} @@ -12728,7 +13051,8 @@ This boolean may be tested by the user for later use. % Results in the macro name without the leading backslash. % % Ref: \href{https://tex.stackexchange.com/questions/42318/removing-a-backslash-from-a-character-sequence} -% {\texttt{https://tex.stackexchange.com/questions/42318/removing-a-backslash-from-a-character-sequence}} +% {\texttt{https://tex.stackexchange.com/questions/42318/ \\ +% \hspace*{\fill}removing-a-backslash-from-a-character-sequence}} % % \changes{v0.79}{2020/01/18}{Added.} % \begin{macrocode} @@ -13474,28 +13798,37 @@ This boolean may be tested by the user for later use. % \end{macrocode} -% Use |comment_print.cut| for print mode, and -% |comment_html.cut| for \HTML\ mode. -% This helps \prog{latexmk} to more reliably know whether to recompile. -% -% \changes{v0.37}{2017/08/19}{\pkg{comment}: Maintains independent -% cutfiles for print, \HTML.} +% \begin{macro}{\LWR@includecomment} \marg{env name} \marg{partial filename} +% \begin{macro}{\LWR@excludecomment} \marg{env name} \marg{partial filename} % +% Use many \pkg{comment} cut files to avoid collision in case the +% user uses the \pkg{comment} package. Each filename is ``|comment_#2.cut|''. +% Based on the \pkg{comment} package. +% \changes{v0.84}{2020/03/30}{Independent cut files.} % \begin{macrocode} -\ifbool{warpingHTML}{ -\def\DefaultCutFileName{\def\CommentCutFile{comment_html.cut}} -}{} +\def\LWR@includecomment + #1#2{\message{Lwarp: Including comment '#1'}% + \csarg\def{After#1Comment}{\CloseAndInputCutFile} + \csarg\def{#1}{\endgroup \message{Including '#1' comment.}% + \def\CommentCutFile{comment_#2.cut} \SetUpCutFile \ProcessComment{#1}}% + \CommentEndDef{#1}} -\ifbool{warpingprint}{ -\def\DefaultCutFileName{\def\CommentCutFile{comment_print.cut}} -}{} +\def\LWR@excludecomment + #1#2{\message{Lwarp: Excluding comment '#1'}% + \csarg\def{#1}{\endgroup \message{Excluding '#1' comment.}% + \begingroup + \def\CommentCutFile{comment_#2.cut} \def\ProcessCutFile{}% + \def\ThisComment####1{}\ProcessComment{#1}}% + \csarg\def{After#1Comment}{\CloseAndInputCutFile \endgroup} + \CommentEndDef{#1}} % \end{macrocode} - +% \end{macro} +% \end{macro} % \begin{environment}{warpall} % Anything in the |warpall| environment will be generated for print or \HTML\ outputs. % \begin{macrocode} -\includecomment{warpall} +\LWR@includecomment{warpall}{all} % \end{macrocode} % \end{environment} @@ -13505,8 +13838,8 @@ This boolean may be tested by the user for later use. % For \HTML\ output: % \begin{macrocode} \ifbool{warpingHTML} - {\includecomment{warpHTML}} - {\excludecomment{warpHTML}}% + {\LWR@includecomment{warpHTML}{html}} + {\LWR@excludecomment{warpHTML}{html}} % \end{macrocode} % \end{environment} @@ -13515,8 +13848,8 @@ This boolean may be tested by the user for later use. % Anything in the |warpprint| environment will be generated for print output only. % \begin{macrocode} \ifbool{warpingprint} - {\includecomment{warpprint}} - {\excludecomment{warpprint}} + {\LWR@includecomment{warpprint}{print}} + {\LWR@excludecomment{warpprint}{print}} % \end{macrocode} % \end{environment} @@ -13526,25 +13859,25 @@ This boolean may be tested by the user for later use. % \changes{v0.79}{2020/01/26}{Added.} % \begin{macrocode} \begin{warpprint} -\excludecomment{warpMathJax} +\LWR@excludecomment{warpMathJax}{mathjax} \end{warpprint} \begin{warpHTML} \ifbool{mathjax} - {\includecomment{warpMathJax}} - {\excludecomment{warpMathJax}} + {\LWR@includecomment{warpMathJax}{mathjax}} + {\LWR@excludecomment{warpMathJax}{mathjax}} \end{warpHTML} % \end{macrocode} % \end{environment} -% \begin{environment}{LWR@creatinglwarpmk} +% \begin{environment}{LWRcreatelwarpmk} % Optionally generate a local copy of \prog{lwarpmk}. % Default to no. % \begin{macrocode} \ifbool{LWR@creatinglwarpmk} - {\includecomment{LWR@createlwarpmk}} - {\excludecomment{LWR@createlwarpmk}} + {\LWR@includecomment{LWRcreatelwarpmk}{lwarpmk}} + {\LWR@excludecomment{LWRcreatelwarpmk}{lwarpmk}} % \end{macrocode} % \end{environment} % @@ -14254,7 +14587,6 @@ This boolean may be tested by the user for later use. \LWR@checkloadnever{#1}{alg}{algorithm2e, algorithmicx} \LWR@checkloadnever{#1}{algorithmic}{algorithm2e, algorithmicx} \LWR@checkloadnever{#1}{bitfield}{bytefield} -\LWR@checkloadnever{#1}{boxedminipage}{boxedminipage2e} \LWR@checkloadnever{#1}{caption2}{caption} \LWR@checkloadnever{#1}{ccaption}{caption}% might be preloaded by memoir \LWR@checkloadnever{#1}{colortab}{colortbl} @@ -14455,8 +14787,9 @@ This boolean may be tested by the user for later use. % \begin{macrocode} \NewDocumentCommand{\LWR@ProvidesPackagePass}{m o}{ \PackageInfo{lwarp}{% - Using package `#1' and adding lwarp modifications,\MessageBreak - including options,}% + Using package `#1',\MessageBreak + and adding lwarp modifications, including options,\MessageBreak% + }% \IfValueTF{#2}% {\ProvidesPackage{lwarp-#1}[#2]}% {\ProvidesPackage{lwarp-#1}}% @@ -14565,28 +14898,6 @@ This boolean may be tested by the user for later use. -% \section{Additional required packages} - -% \codehtml -% \begin{macrocode} -\begin{warpHTML} -% \end{macrocode} - -% \DescribePackage{caption} -% \changes{v0.47}{2018/01/29}{\pkg{caption}: Also loads \pkg{lwarp-caption}.} -% \changes{v0.66}{2018/12/29}{\pkg{caption}: Fix for options clash.} -% \begin{macrocode} -\LWR@origRequirePackage{caption} -\AtBeginDocument{\RequirePackage{lwarp-caption}}% -% \end{macrocode} - -% \begin{macrocode} -\end{warpHTML} -% \end{macrocode} - - - - % \section{File handles} % Defines file handles for writes. @@ -14847,9 +15158,7 @@ This boolean may be tested by the user for later use. % The new \HTML\ versions of macros and environments are used most of the time. % Copies of the print versions are used inside a \env{lateximage} environment, % which draws and remembers an image of the printed output, and also several -% other places. The copies of the print versions may also be used by the \HTML\ -% versions, such as when the \HTML\ version merely encloses the print version -% inside \HTML\ tags. +% other places. % % The general structure for providing print and \HTML\ versions of a macro or % environment is as follows: @@ -14859,13 +15168,14 @@ This boolean may be tested by the user for later use. % \item[For a preexisting macro, not defined with \pkg{xparse}:] An \HTML\ version % is provided with a special name, inside a \env{warpHTML} environment, % then \cs{LWR@formatted} is used to redefine and patch various macros: -% \begin{Verbatim}[gobble=2,obeytabs,tabsize=4,frame=lines] +% \needspace{5\baselineskip} +% \begin{sourceverb} % \begin{warpHTML} % \newcommand{\LWR@HTML@name}{...}% may also use xparse % % \LWR@formatted{name} % \end{warpHTML} -% \end{Verbatim} +% \end{sourceverb} % |\LWR@formatted{name}| copies the original print version, % then redefines \cs{name} to use either the print or \HTML\ version depending % on which mode \pkg{lwarp} is using. \pkg{xparse} may be used to @@ -14874,16 +15184,18 @@ This boolean may be tested by the user for later use. % \item[For a preexisiting environment, not defined with \pkg{xparse}:] The process % is similar. Note the use of \cs{LWR@formattedenv} instead of \cs{LWR@formatted}. -% \begin{Verbatim}[gobble=2,obeytabs,tabsize=4,frame=lines] +% \needspace{5\baselineskip} +% \begin{sourceverb} % \begin{warpHTML} % \newenvironment{LWR@HTML@name}{...}% may also use xparse % % \LWR@formattedenv{name} % \end{warpHTML} -% \end{Verbatim} +% \end{sourceverb} % \item[If the original used \pkg{xparse}:] A copy must be made using a new name: -% \begin{Verbatim}[gobble=2,obeytabs,tabsize=4,frame=lines] +% \needspace{7\baselineskip} +% \begin{sourceverb} % \begin{warpHTML} % \NewDocumentCommand{\LWR@print@name}{..}{..}% copy the original % @@ -14891,7 +15203,7 @@ This boolean may be tested by the user for later use. % % \LWR@formatted{name} % \end{warpHTML} -% \end{Verbatim} +% \end{sourceverb} % Similar for an environment, using \cs{LWR@formattedenv}. % (\cs{LWR@formatted} and \cs{LWR@formattedenv} use \cs{LetLtxMacro} to % copy the original print definiton, @@ -14899,7 +15211,8 @@ This boolean may be tested by the user for later use. % so the print version must be manually recreated in the \pkg{lwarp} source.) % \item[For a new macro or environment, not using \pkg{xparse} for the print version:] \ -% \begin{Verbatim}[gobble=2,obeytabs,tabsize=4,frame=lines] +% \needspace{9\baselineskip} +% \begin{sourceverb} % \begin{warpall} % \newcommand{\name}{...}% NOT xparse! % \end{warpall} @@ -14909,7 +15222,7 @@ This boolean may be tested by the user for later use. % % \LWR@formatted{name} % \end{warpHTML} -% \end{Verbatim} +% \end{sourceverb} % Similar for an environment. % The plain \cs{name} or environment \env{name} is used for the printed % version, and is placed inside \env{warpall}. @@ -14921,7 +15234,8 @@ This boolean may be tested by the user for later use. % by defining the \cs{LWR@print@<name>} version with \pkg{xparse}, along with % \cs{name} defined without \pkg{xparse} to refer directly to the \cs{LWR@print} % version: -% \begin{Verbatim}[gobble=2,obeytabs,tabsize=4,frame=lines] +% \needspace{16\baselineskip} +% \begin{sourceverb} % \begin{warpall} % \NewDocumentCommand{\LWR@print@name}{...} {...}% -or- % \NewDocumentEnvironment{\LWR@print@name}{...} {...} {...} @@ -14938,7 +15252,7 @@ This boolean may be tested by the user for later use. % \LWR@formatted{name}% -or- % \LWR@formattedenv{name} % \end{warpHTML} -% \end{Verbatim} +% \end{sourceverb} % % \end{description} % @@ -15353,13 +15667,6 @@ This boolean may be tested by the user for later use. \let\LWR@origsp\sp \let\LWR@origsb\sb -\LetLtxMacro\LWR@origtextsuperscript\textsuperscript -\LetLtxMacro\LWR@orig@textsuperscript\@textsuperscript - -\AtBeginDocument{ -\LetLtxMacro\LWR@origtextsubscript\textsubscript -\LetLtxMacro\LWR@orig@textsubscript\@textsubscript -} \LetLtxMacro\LWR@origunderline\underline % \end{macrocode} @@ -15415,6 +15722,7 @@ This boolean may be tested by the user for later use. % \limitsaccents % % \changes{v0.37}{2017/08/18}{\protect\LaTeX\ accents: Added.} +% \changes{v0.84}{2020/04/12}{\protect\LaTeX\ accents: Add'l symbols.} % % \codehtml % \begin{macrocode} @@ -15430,29 +15738,41 @@ This boolean may be tested by the user for later use. % % For Unicode engines, only \cs{t} needs to be redefined: % \begin{macrocode} -\LetLtxMacro\LWR@origt\t +\LetLtxMacro\LWR@origtie\t % \end{macrocode} % For pdf\LaTeX, additional work is required: % \begin{macrocode} \ifPDFTeX% pdflatex or dvi latex -\LetLtxMacro\LWR@origequalaccent\= +\LetLtxMacro\LWR@origgraveaccent\` +\LetLtxMacro\LWR@origacuteaccent\' +\LetLtxMacro\LWR@origcircumflexaccent\^ +\LetLtxMacro\LWR@origtildeaccent\~ +\LetLtxMacro\LWR@origmacronaccent\= +\LetLtxMacro\LWR@origbreve\u \LetLtxMacro\LWR@origdotaccent\. -\LetLtxMacro\LWR@origu\u -\LetLtxMacro\LWR@origv\v -\LetLtxMacro\LWR@origc\c -\LetLtxMacro\LWR@origd\d -\LetLtxMacro\LWR@origb\b +\LetLtxMacro\LWR@origdiaeresisaccent\" +\LetLtxMacro\LWR@origdoubleacuteaccent\H +\LetLtxMacro\LWR@origcaronaccent\v +\LetLtxMacro\LWR@origdotbelowaccent\d +\LetLtxMacro\LWR@origcedillaaccent\c +\LetLtxMacro\LWR@origmacronbelowaccent\b % \end{macrocode} % The \HTML\ redefinitions follow. % % For pdf\LaTeX, Unicode diacritical marks are used: % \begin{macrocode} -\renewcommand*{\=}[1]{#1\HTMLunicode{0305}} -\renewcommand*{\.}[1]{#1\HTMLunicode{0307}} +\renewcommand*{\`}[1]{#1\HTMLunicode{0300}} +\renewcommand*{\'}[1]{#1\HTMLunicode{0301}} +\renewcommand*{\^}[1]{#1\HTMLunicode{0302}} +\renewcommand*{\~}[1]{#1\HTMLunicode{0303}} +\renewcommand*{\=}[1]{#1\HTMLunicode{0304}} \renewcommand*{\u}[1]{#1\HTMLunicode{0306}} +\renewcommand*{\.}[1]{#1\HTMLunicode{0307}} +\renewcommand*{\"}[1]{#1\HTMLunicode{0308}} +\renewcommand*{\H}[1]{#1\HTMLunicode{030B}} \renewcommand*{\v}[1]{#1\HTMLunicode{030C}} -\renewcommand*{\c}[1]{#1\HTMLunicode{0327}} \renewcommand*{\d}[1]{#1\HTMLunicode{0323}} +\renewcommand*{\c}[1]{#1\HTMLunicode{0327}} \renewcommand*{\b}[1]{#1\HTMLunicode{0331}} \fi % \end{macrocode} @@ -15467,18 +15787,24 @@ This boolean may be tested by the user for later use. % \begin{macrocode} \ifPDFTeX% pdflatex or dvi latex \newcommand*{\LWR@restoreorigaccents}{% -\LetLtxMacro\=\LWR@origequalaccent% -\LetLtxMacro\.\LWR@origdotaccent% -\LetLtxMacro\u\LWR@origu% -\LetLtxMacro\v\LWR@origu% -\LetLtxMacro\t\LWR@origt% -\LetLtxMacro\c\LWR@origc% -\LetLtxMacro\d\LWR@origd% -\LetLtxMacro\b\LWR@origb% + \LetLtxMacro\`\LWR@origgraveaccent% + \LetLtxMacro\'\LWR@origacuteaccent% + \LetLtxMacro\^\LWR@origcircumflexaccent% + \LetLtxMacro\~\LWR@origtildeaccent% + \LetLtxMacro\=\LWR@origmacronaccent% + \LetLtxMacro\u\LWR@origbreve% + \LetLtxMacro\.\LWR@origdotaccent% + \LetLtxMacro\"\LWR@origdiaeresisaccent% + \LetLtxMacro\H\LWR@origdoubleacuteaccent% + \LetLtxMacro\v\LWR@origcaronaccent% + \LetLtxMacro\t\LWR@origtie% + \LetLtxMacro\d\LWR@origdotbelowaccent% + \LetLtxMacro\c\LWR@origcedillaaccent% + \LetLtxMacro\b\LWR@origmacronbelowaccent% }% \else% XeLaTeX, LuaLaTeX: \newcommand*{\LWR@restoreorigaccents}{% -\LetLtxMacro\t\LWR@origt% + \LetLtxMacro\t\LWR@origtie% }% \fi% }% AtBeginDocument @@ -15513,7 +15839,7 @@ This boolean may be tested by the user for later use. % Default to no configuration files: % \changes{v0.61}{2018/10/02}{Don't write configuration files if processing \pkg{pstool} image.} % \begin{macrocode} -\excludecomment{LWRwriteconf} +\LWR@excludecomment{LWRwriteconf}{writeconf} % \end{macrocode} % % Generate configuration files if print mode and not \filenm{-pstool}: @@ -15531,7 +15857,7 @@ This boolean may be tested by the user for later use. } { \PackageInfo{lwarp}{Generating lwarp configuration files,}% - \includecomment{LWRwriteconf} + \LWR@includecomment{LWRwriteconf}{writeconf} } \end{warpprint} % \end{macrocode} @@ -15626,9 +15952,12 @@ This boolean may be tested by the user for later use. % Error message if not sure which \LaTeX\ engine is being used. % \begin{macrocode} \newcommand*{\LWR@unknownengine}{% - \PackageError{lwarp} - {Unknown LaTeX engine.} - {Lwarp only knows about pdflatex, dvi latex, xelatex, lualatex, and upLateX.} + \PackageError{lwarp}% + {Unknown LaTeX engine}% + {% + Lwarp only knows about pdflatex, dvi latex, + xelatex, lualatex, and upLateX.% + }% } % \end{macrocode} % \end{macro} @@ -16041,6 +16370,11 @@ This boolean may be tested by the user for later use. % \changes{v0.76}{2019/10/02}{\filenm{lwarp.css}: Fix for small caps.} % \changes{v0.79}{2020/01/17}{\filenm{lwarp.css}: Fix: Nested \env{tabular}s.} % \changes{v0.81}{2020/02/22}{\filenm{lwarp.css}: Added \pkg{nolbreaks}.} +% \changes{v0.84}{2020/03/28}{\filenm{lwarp.css}: Added \pkg{koma-*} subject.} +% \changes{v0.84}{2020/04/10}{\filenm{lwarp.css}: Improved \pkg{realscripts}.} +% \changes{v0.84}{2020/04/13}{\filenm{lwarp.css}: Improved \pkg{nfssext-cfr}.} +% \changes{v0.84}{2020/04/18}{\filenm{lwarp.css}: Fix: Minipage tex align.} +% \changes{v0.84}{2020/04/24}{\filenm{lwarp.css}: Fix: Top nav if narrow window.} % % ^^A *lwarp.css % @@ -16126,10 +16460,6 @@ span.textit, div.textit { font-style: italic; } span.textmd, div.textmd { font-weight: normal; } -span.texteb { font-weight: bolder; } - -span.textlg { font-weight: lighter; } - span.textup, div.textup { font-style: normal; font-variant: normal; @@ -16158,6 +16488,52 @@ span.textsf, div.textsf { Geneva, Verdana, sans-serif ; } +/* nfssext-cfr lining figures */ +span.textln, div.textln { + font-variant-numeric: lining-nums ; +} + +/* nfssext-cfr proportional figures */ +span.textp, div.textp { + font-variant-numeric: proportional-nums ; +} + +/* nfssext-cfr tabular figures */ +span.textt, div.textt { + font-variant-numeric: tabular-nums ; +} + +/* nfssext-cfr font weights */ +span.textdb, div.textdb { + font-weight: 500 ; +} + +span.textsb, div.textsb { + font-weight: 600 ; +} + +span.texteb, div.texteb { + font-weight: 800 ; +} + +span.textub, div.textub { + font-weight: 900 ; +} + +span.textlg, div.textlg { + font-weight: 300 ; +} + +span.textel, div.textel { + font-weight: 200 ; +} + +span.textul, div.textul { + font-weight: 100 ; +} + + + span.textcircled { border: 1px solid black ; border-radius: 1ex ; } span.underline { @@ -16202,16 +16578,16 @@ div.diagboxW { .supsubscript sub { position: relative; display: block; - font-size: .5em; + font-size: .7em; line-height: 1; } .supsubscript sup { - top: .5em; + top: .3em; } .supsubscript sub { - top: .5em; + top: .3em; } div.attribution p { @@ -16693,6 +17069,7 @@ div.wpminipage { border: 1px solid green ; margin: .5ex ; padding: .5ex ;} .minipage, .fminipage, .fcolorminipage { /* display: inline-block ; */ /* Mini pages which follow each other will be tiled. */ + text-align:left; margin: .25em .25em .25em .25em; padding: .25em .25em .25em .25em; display: inline-flex; @@ -17188,6 +17565,26 @@ span.verbatim { +div.titlehead +{ + text-align: left ; + font-style: normal ; + font-weight: normal ; + font-style: normal ; + font-size: .8em ; + margin: 1ex 0em 1ex 0em ; +} + +div.subject +{ + text-align: center ; + font-style: normal ; + font-weight: bold ; + font-style: normal ; + font-size: .8em ; + margin: 1ex 0em 1ex 0em ; +} + div.published { text-align: center ; @@ -17282,6 +17679,7 @@ footer { } +/* for \LinkHome, \LinkPrevious, and \LinkNext: */ a.linkhome { font-weight:bold ; font-size: 1em ;} @@ -17620,6 +18018,7 @@ span.sidetocthetitle { display: none } box-shadow: none ; } span.sidetocthetitle { display: inline } + nav.topnavigation { display:block } nav.botnavigation { display:block } div.bodycontainer { width: 100% } .marginpar { @@ -18599,11 +18998,12 @@ src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.6/MathJax.js?config=TeX- % \changes{v0.74}{2019/08/05}{\prog{lwarpmk}: \cmds{lwarpmk clean} removes add'l files.}% % \changes{v0.74}{2019/08/14}{\prog{lwarpmk}: \cmds{lwarpmk epstopdf} and \cmds{pdftosvg} honor directories.}% % \changes{v0.81}{2020/03/04}{\prog{lwarpmk}: Improved error if in \pkg{lwarp} source directory.}% +% \changes{v0.84}{2020/03/30}{\prog{lwarpmk}: \optn{clean} also removes \filenm{comment_*.cut}}% % % The following is only generated if the \optn{lwarpmk} option % was given to \pkg{lwarp}. % \begin{macrocode} -\begin{LWR@createlwarpmk} +\begin{LWRcreatelwarpmk} % \end{macrocode} % % ^^A *lwarpmk.lua @@ -18614,7 +19014,7 @@ src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.6/MathJax.js?config=TeX- -- Copyright 2016-2020 Brian Dunn -printversion = "v0.83" +printversion = "v0.84" requiredconfversion = "2" -- also at *lwarpmk.conf function printhelp () @@ -19008,7 +19408,7 @@ function removeaux () -- Remove auxiliary files: -- All .aux files are removed since there may be many bbl*.aux files. -- Also removes sourcename_html.pdf, sourcename_html.html, --- and sourcename_html.sidetoc. +-- and sourcename_html.sidetoc, plus comment_*.cut. -- os.execute ( rmname .. " *.aux " .. sourcename ..".toc " .. sourcename .. "_html.toc " .. @@ -19022,7 +19422,8 @@ os.execute ( rmname .. " *.aux " .. sourcename .. "_html.pdf " .. sourcename .. "_html.html " .. sourcename .. "_html.sidetoc " .. - " *_html_inc.* " + " *_html_inc.* " .. + " comment_*.cut" ) end @@ -19568,7 +19969,7 @@ end -- not --version % \end{macrocode} % % \begin{macrocode} -\end{LWR@createlwarpmk} +\end{LWRcreatelwarpmk} % \end{macrocode} % @@ -20082,7 +20483,7 @@ end -- not --version % such as 100+ for one chapter, 200+ for another chapter, etc. % \begin{macrocode} \newcommand*{\SetHTMLFileNumber}[1]{% -\setcounter{LWR@htmlfilenumber}{#1}% + \setcounter{LWR@htmlfilenumber}{#1}% } % \end{macrocode} % \end{macro} @@ -20108,9 +20509,43 @@ end -- not --version % \end{macrocode} +% Updated each time a new \HTML\ file is begun. +% Used to provide \HTML\ previous/next web page links. +% \begin{macrocode} +\newcounter{LWR@HTMLpagenum} +\setcounter{LWR@HTMLpagenum}{0} +% \end{macrocode} + + +% \DescribeCounter{LWR@htmlseqfilenumber} +% A sequential count of the number of each \HTML\ file as it is being created. +% Number 0 is the home page. +% Unlike \cs{LWR@htmlfilenumber}, this one is known to increment by one +% for each file. This is used to generate previous \slash next links for +% each web page, via labels called |\BaseJobname-autofile-*|, and the +% last page is also labelled |\BaseJobname-autofile-last|. +% +% \changes{v0.84}{2020/04/24}{Added prev/next links.} +% \begin{macrocode} +\newcounter{LWR@htmlseqfilenumber} +\setcounter{LWR@htmlseqfilenumber}{0} +% \end{macrocode} + +% \DescribeBoolean{LWR@setseqfilelabel} +% At each new \HTML\ file, this is false until a sectional unit is used, +% at which point this is set true and a label is placed. +% In this way, the previous/next labels will point to a named section. +% \begin{macrocode} +\newbool{LWR@setseqfilelabel} +\setbool{LWR@setseqfilelabel}{false} +% \end{macrocode} + + % \DescribeCounter{LWR@htmlfilenumber} % Records the number of each \HTML\ file as it is being created. % Number 0 is the home page. +% This might not be sequential, as the user may use +% \cs{SetHTMLFileNumber} to create groups of numbered nodes. % \begin{macrocode} \newcounter{LWR@htmlfilenumber} \setcounter{LWR@htmlfilenumber}{0} @@ -20125,6 +20560,8 @@ end -- not --version % \changes{v0.20}{2016/09/11}{Sections called ``Index'' or ``index'' have an underscore % prepended to their filenames if no prefix.} % \changes{v0.66}{2019/01/30}{Sanitize underscores.} +% \changes{v0.84}{2020/04/10}{Fix: Sections called ``Index'' or ``index'' have \filenm{-0} +% appended to their filenames if no prefix.} % % Prints the filename for a given section: |\HTMLFilename{}filenumber/name.html| % \begin{macrocode} @@ -20144,33 +20581,35 @@ end -- not --version % \LWR@traceinfo{about to assign temp}% \LWR@sanitize{#1}% \LWR@traceinfo{about to compare with ??}% -\ifthenelse{\equal{\LWR@sanitized}{??}}% +\ifdefstring{\LWR@sanitized}{??} {\LWR@traceinfo{found ??}}% {\LWR@traceinfo{not found ??}}% \LWR@traceinfo{about to compare with zero or empty}% -\ifthenelse{% - \equal{\LWR@sanitized}{0}% - \OR \equal{\LWR@sanitized}{}% - \OR \equal{\LWR@sanitized}{??}% -}% +\ifboolexpr{ + test {\ifdefstring{\LWR@sanitized}{0}} or + test {\ifdefstring{\LWR@sanitized}{}} or + test {\ifdefstring{\LWR@sanitized}{??}} +} {% \LWR@traceinfo{LWR@htmlsectionfilename B \HomeHTMLFilename.html}% \HomeHTMLFilename.html% }% % \end{macrocode} % For a \LaTeX\ section named ``Index'' or ``index'' without a prefix, create a filename -% with a leading underscore to avoid colliding with the \HTML\ filename |index.html|: +% with a trailing \filenm{-0} to avoid colliding with the \HTML\ filename |index.html|: % \begin{macrocode} {% \LWR@traceinfo{LWR@htmlsectionfilename C \LWR@sanitized}% - \ifthenelse{% - \equal{\HTMLFilename}{} \AND - \equal{\LWR@sanitized}{Index} \OR - \equal{\LWR@sanitized}{index}% + \ifboolexpr{ + test{\ifdefvoid{\HTMLFilename}} and + ( + test{\ifdefstring{\LWR@sanitized}{Index}} or + test{\ifdefstring{\LWR@sanitized}{index}} + ) }% {% - \LWR@traceinfo{Prefixing the index name with an underscore.}% - \_\LWR@sanitized.html% + \LWR@traceinfo{Adding a zero to the index filename.}% + \LWR@sanitized-0.html% }% % \end{macrocode} % Otherwise, create a filename with the chosen prefix: @@ -20192,15 +20631,15 @@ end -- not --version % \changes{v0.50}{2018/02/20}{Fix: SVG math in a section name.} % \begin{macrocode} \newcommand*{\LWR@htmlrefsectionfilename}[1]{% -\LWR@traceinfo{LWR@htmlrefsectionfilename: !\detokenize{#1}!}% + \LWR@traceinfo{LWR@htmlrefsectionfilename: !\detokenize{#1}!}% % \end{macrocode} % \cs{LWR@nullfonts} to allow math in a section name. % \begin{macrocode} -\begingroup% -\LWR@nullfonts% -\LWR@htmlsectionfilename{\LWR@htmlfileref{#1}}% -\endgroup% -\LWR@traceinfo{LWR@htmlrefsectionfilename: done}% + \begingroup% + \LWR@nullfonts% + \LWR@htmlsectionfilename{\LWR@htmlfileref{#1}}% + \endgroup% + \LWR@traceinfo{LWR@htmlrefsectionfilename: done}% } % \end{macrocode} % \end{macro} @@ -20243,7 +20682,7 @@ end -- not --version % The filename must be detokenized for underscores. % \begin{macrocode} \newcommand*{\LinkHome}{% -\LWR@subhyperrefclass{\HomeHTMLFilename.html}{\linkhomename}{linkhome}% + \LWR@subhyperrefclass{\HomeHTMLFilename.html}{\linkhomename}{linkhome}% } % \end{macrocode} % \end{macro} @@ -20302,8 +20741,8 @@ end -- not --version % Creates a link to the homepage at the top of the page for use when the window is too % narrow for the side\TOC. % \begin{macrocode} -\newcommand*{\LWR@topnavigation}{ -\LWR@htmlelementclassline{nav}{topnavigation}{\LinkHome} +\newcommand*{\LWR@topnavigation}{% + \LWR@htmlelementclassline{nav}{topnavigation}{\LinkHome} } % \end{macrocode} % \end{macro} @@ -20313,8 +20752,8 @@ end -- not --version % Creates a link to the homepage at the bottom of the page for use when the window is too % narrow for the side\TOC. % \begin{macrocode} -\newcommand*{\LWR@botnavigation}{ -\LWR@htmlelementclassline{nav}{botnavigation}{\LinkHome} +\newcommand*{\LWR@botnavigation}{% + \LWR@htmlelementclassline{nav}{botnavigation}{\LinkHome} } % \end{macrocode} % \end{macro} @@ -20324,6 +20763,110 @@ end -- not --version % \end{macrocode} +% \section{Previous \Slash next navigation links} + +% \codeall +% \begin{macrocode} +\begin{warpall} +% \end{macrocode} + +% \begin{macro}{\linkpreviousname} What to call the link to the previous web page. +% \changes{v0.84}{2020/04/24}{Added prev/next links.} +% \begin{macrocode} +\newcommand*{\linkpreviousname}{Previous} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\linknextname} What to call the link to the next web page. +% \changes{v0.84}{2020/04/24}{Added prev/next links.} +% \begin{macrocode} +\newcommand*{\linknextname}{Next} +% \end{macrocode} +% \end{macro} + +% \begin{macrocode} +\end{warpall} +% \end{macrocode} + + +% \codeprint +% \begin{macrocode} +\begin{warpprint} +% \end{macrocode} + +% \begin{macro}{\LinkPrevious} Creates a link to the previous web page if there is one. +% \begin{macrocode} +\newcommand*{\LinkPrevious}{} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\LinkNext} Creates a link to the next web page if there is one. +% \begin{macrocode} +\newcommand*{\LinkNext}{} +% \end{macrocode} +% \end{macro} + +% \begin{macrocode} +\end{warpprint} +% \end{macrocode} + + +% \codehtml +% \begin{macrocode} +\begin{warpHTML} +% \end{macrocode} + +% \begin{macro}{\LinkPrevious} Creates a link to the previous web page if there is one. +% +% The links refer to the \LaTeX\ labels |\Basejobname-autofile-*| +% +% \changes{v0.84}{2020/04/24}{Added prev/next links.} +% \begin{macrocode} +\newcommand*{\LinkPrevious}{% + \ifnumless{\value{LWR@htmlseqfilenumber}}{1}{}{% + \setcounter{LWR@tempcountone}{\value{LWR@htmlseqfilenumber}-1}% + \LWR@subhyperrefclass{% + \LWR@htmlrefsectionfilename{% + \BaseJobname-autofile-\arabic{LWR@tempcountone}% + }% + }{\linkpreviousname}{linkhome}% + }% +} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\LinkNext} Creates a link to the next web page if there is one. +% +% The links refer to the \LaTeX\ labels |\Basejobname-autofile-*| \\ +% and the last is the label |\Basejobname-autofile-last| +% +% \changes{v0.84}{2020/04/24}{Added prev/next links.} +% \begin{macrocode} +\newcommand*{\LinkNext}{% + \ifcsdef{r@\BaseJobname-autofile-last@lwarp}{% + \edef\LWR@tempone{% + \LWR@htmlfileref{\BaseJobname-autofile-\arabic{LWR@htmlseqfilenumber}}% + }% + \edef\LWR@temptwo{% + \LWR@htmlfileref{\BaseJobname-autofile-last}% + }% + \ifdefequal{\LWR@tempone}{\LWR@temptwo}{}{% + \setcounter{LWR@tempcountone}{\value{LWR@htmlseqfilenumber}+1}% + \LWR@subhyperrefclass{% + \LWR@htmlrefsectionfilename{% + \BaseJobname-autofile-\arabic{LWR@tempcountone}% + }% + }{\linknextname}{linkhome}% + }% + }{}% +} +% \end{macrocode} +% \end{macro} + +% \begin{macrocode} +\end{warpHTML} +% \end{macrocode} + % \section{\cs{LWRPrintStack} diagnostic tool} @@ -20689,6 +21232,35 @@ end -- not --version % \end{macro} % +% \begin{macro}{\LWR@spanwarnformat} \marg{object} +% +% Warns if the given object is used inside a span. +% \begin{macrocode} +\newcommand*{\LWR@spanwarnformat}[1]{% + \ifnumcomp{\value{LWR@spandepth}}{>}{0}{% + \PackageWarning{lwarp}{% + A #1 is being used inside a span.\MessageBreak + Formatting may be lost,% + }% + }{}% +} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\LWR@spanwarninvalid} \marg{object} +% +% Warns if the given object is used inside a span. +% \begin{macrocode} +\newcommand*{\LWR@spanwarninvalid}[1]{% + \ifnumcomp{\value{LWR@spandepth}}{>}{0}{% + \PackageWarning{lwarp}{% + A #1 is being used inside a span.\MessageBreak + This generates invalid HTML,% + }% + }{}% +} +% \end{macrocode} +% \end{macro} % \begin{environment}{LWR@nestspan} Disable \env{minipage}, \cs{parbox}, % and \HTML\ \element{div}s inside a \element{span}. @@ -20706,6 +21278,8 @@ end -- not --version % \changes{v0.44}{2017/11/15}{Added \env{list} and \env{trivlist}.} % \changes{v0.70}{2019/04/02}{Improved \env{minipage}, \cs{parbox} inside a span.} % \changes{v0.73}{2019/06/23}{Fix: \env{quote}, \env{quotation} inside a span.} +% \changes{v0.84}{2020/04/22}{Nullified \env{minipage}, \cs{parbox} inside a span.} +% \changes{v0.84}{2020/04/22}{Issue warnings inside a span.} % % \begin{macrocode} \newcommand*{\LWR@nestspanitem}{% @@ -20723,11 +21297,21 @@ end -- not --version {% not in a lateximage \LWR@traceinfo{LWR@nestspan: NOT inside a lateximage}% \addtocounter{LWR@spandepth}{1}% +% \end{macrocode} +% Nullify several objects inside the span: +% ^^A {\LWR@subhtmlelementclass{span}{inlineminipage}}% +% ^^A {\LWR@htmltagc{/span}}% +% \begin{macrocode} \RenewDocumentEnvironment{minipage}{O{t} o O{t} m}% - {\LWR@subhtmlelementclass{span}{inlineminipage}}% - {\LWR@htmltagc{/span}}% - \RenewDocumentEnvironment{BlockClass}{o m}{}{}% - \renewcommand{\BlockClassSingle}[2]{##2}% + {\LWR@spanwarnformat{minipage or \protect\parbox}}% + {}% + \RenewDocumentEnvironment{BlockClass}{o m}% + {\LWR@spanwarnformat{multi-paragraph object}}% + {}% + \renewcommand{\BlockClassSingle}[2]{% + {\LWR@spanwarnformat{multi-paragraph object}}% + ##2% + }% \renewcommand{\LWR@forcenewpage}{}% \renewcommand{\LWR@liststart}{% \let\item\LWR@nestspanitem% @@ -21043,12 +21627,12 @@ end -- not --version % \codehtml % \begin{macrocode} \begin{warpHTML} + \NewDocumentEnvironment{LWR@print@BlockClass}{o m}{}{}% + \NewDocumentEnvironment{LWR@HTML@BlockClass}{o m}% -{% - \LWR@htmldivclass[#1]{#2}% -} -{\LWR@htmldivclassend{#2}} + {\LWR@htmldivclass[#1]{#2}} + {\LWR@htmldivclassend{#2}} \LWR@formattedenv{BlockClass} \end{warpHTML} @@ -21073,7 +21657,7 @@ end -- not --version % \begin{macrocode} \begin{warpHTML} \newcommand{\LWR@HTML@BlockClassSingle}[2]{% -\LWR@htmlelementclassline{div}{#1}{#2}% + \LWR@htmlelementclassline{div}{#1}{#2}% } \LWR@formatted{BlockClassSingle} @@ -21497,14 +22081,18 @@ end -- not --version % \begin{macro}{\LWR@startpars} % Begin handling \HTML\ paragraphs. % This allows an \HTML\ paragraph to start, but one has not yet begun. +% \changes{v0.84}{2020/04/14}{Ignore if in \env{lateximage}.} % \begin{macrocode} \newcommand*{\LWR@startpars}% {% % \LWR@traceinfo{LWR@startpars}% % \end{macrocode} -% Ignore if inside a span: +% Ignore if inside a \env{lateximage} or \element{span}: % \begin{macrocode} -\ifnumcomp{\value{LWR@spandepth}}{>}{0}% +\ifboolexpr{ + test {\ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}} or + test {\ifnumcomp{\value{LWR@spandepth}}{>}{0}} +}% {}% {% % \end{macrocode} @@ -21550,13 +22138,17 @@ end -- not --version % Any currently open \HTML\ paragraph is closed, and no more will be opened. % % \changes{v0.36}{2017/08/15}{Extra \protect\HTML\ source space after paragraphs.} +% \changes{v0.84}{2020/04/14}{Ignore if in \env{lateximage}.} % \begin{macrocode} \newcommand*{\LWR@stoppars}% {% % \end{macrocode} -% Ignore if inside a span: +% Ignore if inside a \env{lateximage} or \element{span}: % \begin{macrocode} -\ifnumcomp{\value{LWR@spandepth}}{>}{0}% +\ifboolexpr{ + test {\ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}} or + test {\ifnumcomp{\value{LWR@spandepth}}{>}{0}} +}% {}% {% % \end{macrocode} @@ -21635,14 +22227,12 @@ end -- not --version % \begin{macrocode} \AtBeginDocument{ -\def\@afterindentfalse{\let\if@afterindent\iffalse} -\@afterindentfalse + \def\@afterindentfalse{\let\if@afterindent\iffalse} + \@afterindentfalse } \let\LWR@afterindent@syntaxhighlight\fi% syntax highlighting % \end{macrocode} - - % \begin{macrocode} \end{warpHTML} % \end{macrocode} @@ -21658,8 +22248,10 @@ end -- not --version % In the following, catcode is manually changed back and forth % without groups, since new macros are being defined which must % not be contained within the groups. +% \changes{v0.84}{2020/04/24}{Added \cs{FirstPageBottom}.} % \begin{macrocode} \newcommand{\LWR@firstpagetop}{} % for the home page alone +\newcommand{\LWR@firstpagebottom}{} % for the home page alone \newcommand{\LWR@pagetop}{} % for all other pages \newcommand{\LWR@pagebottom}{} % \end{macrocode} @@ -21678,6 +22270,19 @@ end -- not --version % % \end{macro} % +% \begin{macro}{\HTMLFirstPageBottom} \marg{text and logos} +% +% \changes{v0.84}{2020/04/24}{Added \cs{FirstPageBottom}.} +% +% \begin{macrocode} +\newcommand{\HTMLFirstPageBottom}[1]{% + \renewcommand{\LWR@firstpagebottom}{#1}% +} +% \end{macrocode} +% +% +% \end{macro} +% % % \begin{macro}{\HTMLPageTop} \marg{text and logos} % @@ -22198,7 +22803,7 @@ end -- not --version % \changes{v0.48}{2018/02/11}{Removed \cs{itshape}.} % \begin{macrocode} \AtBeginDocument{ -\def\thempfootnote{\@alph\c@mpfootnote} + \def\thempfootnote{\@alph\c@mpfootnote} } % \end{macrocode} % \end{macro} @@ -22440,6 +23045,7 @@ end -- not --version \begin{warpHTML} % \end{macrocode} + % \begin{macro}{\LWR@thisfilename} % The currently-active filename or number. % At first, this is the homepage. @@ -22513,6 +23119,27 @@ end -- not --version % \end{macro} +% \begin{macro}{\LWR@avoiddupfilenames} \qquad +% Instructions for how to avoid duplicate filenames. +% This is used in a warning in \cs{LWR@filenamenoblanks}, +% and in an error in \cs{LWR@newhtmlfile}. +% \begin{macrocode} +\newcommand*{\LWR@avoiddupfilenames}{% + To avoid duplicate filenames, use the optional\MessageBreak + short Table of Contents entry:\MessageBreak + \space\space\protect\section[Unique name, no math]{Name with math}% + \MessageBreak + or use \protect\texorpdfstring, from the hyperref package:\MessageBreak + \space\space% + \protect\section{\MessageBreak + \space\space\space\space\protect\texorpdfstring\MessageBreak + \space\space\space\space\space\space% + {Name with math}{Unique name, no math}\MessageBreak + \space\space} +} +% \end{macrocode} +% \end{macro} + % \begin{macro}{\LWR@filenamenoblanks} \marg{filename} % @@ -22539,6 +23166,7 @@ end -- not --version % \begin{macrocode} \edef\LWR@thisnewfilename{#1}% % \end{macrocode} +% % Replaces common macros with hyphens. % (\cs{\&} is done by \cs{LWR@nullfonts}.) % \begin{macrocode} @@ -22555,6 +23183,31 @@ end -- not --version % \begin{macrocode} \edef\LWR@thisnewfilename{\detokenize\expandafter{\LWR@thisnewfilename}}% % \end{macrocode} +% +% Warn if there is dollar math in the section name: +% \begin{macrocode} +\ifbool{FileSectionNames}{% + \IfSubStr{\LWR@thisnewfilename}{\LWRdollar}{% + \PackageWarning{lwarp} + {% + This section name:\MessageBreak + \space\space``\detokenize\expandafter{#1}''\MessageBreak + at the line number listed below,\MessageBreak + is using $dollar-delimited math$, + which generates\MessageBreak + complicated file names. It is better to use\MessageBreak + \space\space% + \protect\section{Name with \protect\(parenthesis math\protect\)}% + \MessageBreak + The math then will be removed from the file name.\MessageBreak + \MessageBreak + \LWR@avoiddupfilenames% + \MessageBreak + This section is found before or% + } + }{}% +}{} +% \end{macrocode} % \begin{macrocode} \LWR@traceinfo{LWR@filenamenoblanks edef: !\LWR@thisnewfilename!}% \fullexpandarg% @@ -22631,28 +23284,31 @@ end -- not --version % \begin{macrocode} \LWR@simplifycustom% % \end{macrocode} -% Convert multiple hyphens: -% \begin{macrocode} -\LWR@simplifyname*{-----} -\LWR@simplifyname*{----} -\LWR@simplifyname*{---} -\LWR@simplifyname*{--} -% \end{macrocode} +% % If pdf\LaTeX\ and not \optn{utf8} encoding, don't try to convert emdash, endash: % \changes{v0.52}{2018/04/01}{Fix: \cs{FileDepth} with non-utf8 encoding.} +% \changes{v0.84}{2020/04/21}{Fix: Dashes in filename.} % \begin{macrocode} \ifPDFTeX% pdflatex or dvi latex \ifdefstring{\inputencodingname}{utf8}{% -\LWR@simplifyname*{—} + \LWR@simplifyname*{—} % emdash -\LWR@simplifyname*{–} + \LWR@simplifyname*{–} % endash }{}% \else% not PDFTeX -\LWR@simplifyname*{—} -\LWR@simplifyname*{–} + \LWR@simplifyname*{—} + \LWR@simplifyname*{–} \fi% % \end{macrocode} +% +% Convert multiple hyphens: +% \begin{macrocode} +\LWR@simplifyname*{-----} +\LWR@simplifyname*{----} +\LWR@simplifyname*{---} +\LWR@simplifyname*{--} +% \end{macrocode} % If starts with a dash, remove the leading dash: % \begin{macrocode} \IfBeginWith{\LWR@thisnewfilename}{\detokenize{-}}{% @@ -22899,7 +23555,7 @@ end -- not --version \ifbool{LWR@warnedcustomizemathjax}{}{% \StrLen{\detokenize{#1}}[\LWR@tempone]% \ifnumgreater{\LWR@tempone}{200}{% - \AtBeginDocument{% + \AtEndDocument{% \PackageWarningNoLine{lwarp}{% To ensure faster MathJax compilation, place each\MessageBreak custom macro in its own \protect\CustomizeMathJax.\MessageBreak @@ -23122,6 +23778,34 @@ end -- not --version \begin{warpHTML} % \end{macrocode} + +% \begin{macro}{\LWR@createfooter} If specified, create the first or later web page footer. +% \changes{v0.73}{2019/06/23}{Fix: Empty header/footer.} +% \changes{v0.84}{2020/04/24}{Added \cs{FirstPageBottom}.} +% \begin{macrocode} +\newcommand*{\LWR@createfooter}{% + \ifnumless{\value{LWR@htmlseqfilenumber}}{1}{% + \ifdefempty{\LWR@firstpagebottom}{}{% + \LWR@htmlelement{footer} + + \LWR@firstpagebottom + + \LWR@htmlelementend{footer} + }% + }{% + \ifdefempty{\LWR@pagebottom}{}{% + \LWR@htmlelement{footer} + + \LWR@pagebottom + + \LWR@htmlelementend{footer} + }% + }% +} +% \end{macrocode} +% \end{macro} + + % \begin{macro}{\LWR@newhtmlfile} \marg{section name} % \changes{v0.18}{2016/04/23}{side\TOC\ after title, improving responsive design.} % \changes{v0.21}{2017/02/22}{Skip title if not given.} @@ -23151,20 +23835,7 @@ end -- not --version % % No footer between files if \EPUB: % \begin{macrocode} -\ifbool{FormatEPUB} -{} -{ -% \end{macrocode} -% \changes{v0.73}{2019/06/23}{Fix: Empty header/footer.} -% \begin{macrocode} - \ifdefempty{\LWR@pagebottom}{}{% - \LWR@htmlelement{footer} - - \LWR@pagebottom - - \LWR@htmlelementend{footer} - } -} +\ifbool{FormatEPUB}{}{\LWR@createfooter} % \end{macrocode} % % @@ -23183,8 +23854,11 @@ end -- not --version \LWR@htmltag{/html}\LWR@orignewline \LWR@traceinfo{LWR@newhtmlfile: about to LWR@orignewpage} \LWR@orignewpage - +% \end{macrocode} +% \changes{v0.84}{2020/04/24}{Added prev/next links.} +% \begin{macrocode} \addtocounter{LWR@htmlfilenumber}{1}% +\addtocounter{LWR@htmlseqfilenumber}{1}% % \end{macrocode} % % @@ -23221,23 +23895,25 @@ end -- not --version % \end{macrocode} % If the filename is not unique, create an error. % \begin{macrocode} - \PackageError{lwarp} + \PackageError{lwarp}% {% - Section name\MessageBreak + The section name:\MessageBreak ``#1'',\MessageBreak at the line number listed below,\MessageBreak generates the filename\MessageBreak ``\LWR@thisfilename'',\MessageBreak - which appears to be a duplicate.\MessageBreak - There is a previous section with an\MessageBreak - identical or similar name% - } + which appears to be a duplicate. There is a\MessageBreak + previous section with an identical or similar name.\MessageBreak + While generating file names, Lwarp sanitizes math,\MessageBreak + most symbols, and a few common short words,\MessageBreak + and this may cause a conflict.\MessageBreak + Enter 'H' for possible solutions% + }% {% - Lwarp sanitizes most symbols and a few common short words - when generating file names, and this may cause a conflict. - } - } -} + \LWR@avoiddupfilenames% + }% + }% +}% % \end{macrocode} % If using file numbers instead of names, the name is set to the next file number. % \begin{macrocode} @@ -23278,7 +23954,7 @@ end -- not --version % \end{macrocode} % -% Track the page numbers: +% Track the \PDF\ page numbers of the \HTML\ output: % \changes{v0.48}{2018/02/11}{Fix: \TOC, \LOF, \LOT\ links.} % \begin{macrocode} \setcounter{LWR@latestautopage}{\value{page}}% @@ -23332,10 +24008,17 @@ end -- not --version % % Start of the \element{textbody}: % \changes{v0.65}{2018/12/18}{Improved \CSS\ for page layout.} +% \changes{v0.84}{2020/04/24}{Added prev/next links.} % \begin{macrocode} \LWR@htmlelementclass{div}{bodycontainer} \LWR@htmlelementclass{section}{textbody} - +% \end{macrocode} +% +% Not yet found a new section in this file. +% Once one is found, a label will be placed for +% previous/next links. +% \begin{macrocode} +\boolfalse{LWR@setseqfilelabel} % \end{macrocode} % % @@ -23396,18 +24079,24 @@ end -- not --version % \prog{pdflatex} to generate characters and \prog{pdftotext} to read them. % If extra symbols appear in the text, % \trouble[accents in filenames]{filename>accents} +% \trouble{accents>file names} % \trouble{sectioning>accents} % \gindex{filename>accent in} % \gindex{accents>in section \& file names} % it may be that \prog{pdflatex} is actually producing a symbol over or under a % character, resulting in \prog{pdftotext} picking up the accent symbol separately. % -% \XeLaTeX{} and \LuaLaTeX{} directly support accented section and file names. +% \XeLaTeX{} and \LuaLaTeX{} directly support accented section and file names, % \gindex{accents>in section \& file names} % \gindex{Unicode>file \& section names} % \gindex{UTF-8>file \& section names} % \gindex{Xe\LaTeX>file \& section names} % \gindex{Lua\LaTeX>file \& section names} +% but it may be necessary to use \LaTeX\ accents instead of +% native Unicode accents. \LaTeX\ accents will have the accents stripped +% when creating file names, whereas using Unicode accents will create filenames +% which include accents, which may cause issues with some operating systems. +% % % % \codehtml @@ -23541,6 +24230,10 @@ end -- not --version % \begin{macro}{\LWR@createautosec} \marg{section type} % % Create an autosection tag. +% +% The use of \cs{textquotedbl} instead of |"| provides improved +% compatibility with \pkg{xeCJK}. +% % \changes{v0.47}{2018/01/26}{Fix: Line wrap at \HTML\ hyphen.} % \changes{v0.63}{2018/11/24}{Fix for \pkg{xeCJK}.} % \begin{macrocode} @@ -23689,6 +24382,13 @@ end -- not --version \IfValueTF{#2}% {\LWR@traceinfo{LWR@section: starting #4 #2}}% {\LWR@traceinfo{LWR@section: starting #4 #3}}% +% \end{macrocode} +% Warn if starting a section inside a \element{span}: +% \changes{v0.84}{2020/04/22}{Warn inside a \element{span}.} +% \begin{macrocode} + \LWR@spanwarninvalid{section}% +% \end{macrocode} +% \begin{macrocode} \LWR@maybeprintpendingfootnotes{\csuse{LWR@depth#4}}% \LWR@stoppars% \LWR@startnewdepth{#4}% @@ -23913,7 +24613,7 @@ end -- not --version {}% \LWR@traceinfo{LWR@section: finished print section number}% }{}% -}% end of not starred +}% not starred % \end{macrocode} % Print the section name: % \begin{macrocode} @@ -23927,7 +24627,11 @@ end -- not --version \LWR@htmltag{\@nameuse{LWR@tag#4end}}% \LWR@orignewline% % \end{macrocode} -% Generate a \LaTeX{} label: +% +% Generate a \LaTeX{} label. +% +% Track the \PDF\ page numbers of the \HTML\ output. +% % \changes{v0.43}{2017/11/01}{Fix: Math in section name.} % \changes{v0.48}{2018/02/11}{Fix: \TOC, \LOF, \LOT\ links.} % \changes{v0.66}{2019/01/28}{Fix: \TOC, \LOF, \LOT\ links.} @@ -23937,6 +24641,18 @@ end -- not --version \setcounter{LWR@latestautopage}{\value{page}}% \LWR@newautopagelabel{LWR@currentautosec}\LWR@orignewline% % \end{macrocode} +% +% If this is the first section found in this file, +% create a label for prevous/next links: +% \changes{v0.84}{2020/04/24}{Added prev/next links.} +% \begin{macrocode} +\ifbool{LWR@setseqfilelabel}{}{% + \label{\BaseJobname-autofile-\arabic{LWR@htmlseqfilenumber}}% + \booltrue{LWR@setseqfilelabel}% +}% +% \end{macrocode} +% +% % Start paragraph handing unless is an inline paragraph or subparagraph: % \begin{macrocode} \ifthenelse{% @@ -24190,7 +24906,7 @@ end -- not --version \newcommand*{\LWR@currentHTMLLanguage}{en-US} \newcommand*{\HTMLLanguage}[1]{% -\renewcommand*{\LWR@currentHTMLLanguage}{#1}% + \renewcommand*{\LWR@currentHTMLLanguage}{#1}% } % \end{macrocode} % \end{macro} @@ -24203,18 +24919,19 @@ end -- not --version % \changes{v0.52}{2018/04/01}{Fix: \cs{FileDepth} with non-utf8 encoding.} % \changes{v0.62}{2018/11/02}{Refactored.} % \changes{v0.64}{2018/12/07}{Added \pkg{utarticle} and related.} +% \changes{v0.84}{2020/04/21}{Improved spacing for \pkg{xeCJK}.} % \begin{macrocode} \ifPDFTeX% pdflatex or dvi latex \ifdefstring{\inputencodingname}{utf8}{% - \newcommand*{\theHTMLTitleSeparator}{ — }% EMdash + \newcommand*{\theHTMLTitleSeparator}{ —\ }% EMdash }{% - \newcommand*{\theHTMLTitleSeparator}{ - }% hyphen + \newcommand*{\theHTMLTitleSeparator}{ -\ }% hyphen }% \else% \ifpTeX - \newcommand*{\theHTMLTitleSeparator}{ - }% hyphen + \newcommand*{\theHTMLTitleSeparator}{ -\ }% hyphen \else - \newcommand*{\theHTMLTitleSeparator}{ — }% EMdash + \newcommand*{\theHTMLTitleSeparator}{ —\ }% EMdash \fi% \fi% % \end{macrocode} @@ -24280,7 +24997,7 @@ end -- not --version % \end{macrocode} -% \begin{macro}{\LWR@filestart} \oarg{sectionname} \qquad +% \begin{macro}{\LWR@filestart} \oarg{section name} \qquad % Creates the opening \HTML\ tags. % \changes{v0.19}{2016/05/25}{lwarp\_mathjax.txt loaded.} % \changes{v0.20}{2016/06/27}{Adds meta description.} @@ -24291,30 +25008,53 @@ end -- not --version \newcommand*{\LWR@filestart}[1][]{% \LWR@traceinfo{LWR@filestart !#1!}% % \end{macrocode} +% % Locally temporarily disable direct-formatting commands: % \begin{macrocode} \begingroup% \LWR@nullfonts% % \end{macrocode} +% % Save the section name for use while creating the % \HTML\ meta \attribute{title} tag: % \begin{macrocode} \edef\theHTMLSection{#1}% % \end{macrocode} +% +% Remove extra material: +% \changes{v0.84}{2020/04/12}{Improved \HTML\ title.} +% \begin{macrocode} +\StrSubstitute{\theHTMLSection}{\protect}{\detokenize{-}}[\theHTMLSection] +\StrSubstitute{\theHTMLSection}{\detokenize{-----}}{\detokenize{-}}[\theHTMLSection] +\StrSubstitute{\theHTMLSection}{\detokenize{----}}{\detokenize{-}}[\theHTMLSection] +\StrSubstitute{\theHTMLSection}{\detokenize{---}}{\detokenize{-}}[\theHTMLSection] +\StrSubstitute{\theHTMLSection}{\detokenize{--}}{\detokenize{-}}[\theHTMLSection] +% \end{macrocode} +% +% If starts with a dash, remove the leading dash: +% \begin{macrocode} +\IfBeginWith{\theHTMLSection}{\detokenize{-}}{% + \StrGobbleLeft{\theHTMLSection}{1}[\theHTMLSection]% +}{}% +% \end{macrocode} +% % Create the page's \HTML\ header: % \begin{macrocode} \LWR@htmltag{!DOCTYPE html}\LWR@orignewline % \end{macrocode} +% % The language is user-adjustable: % \begin{macrocode} \LWR@htmltag{% html lang=\LWR@orig@textquotedbl\LWR@currentHTMLLanguage\LWR@orig@textquotedbl% }\LWR@orignewline % \end{macrocode} +% % Start of the meta data: % \begin{macrocode} \LWR@htmltag{head}\LWR@orignewline % \end{macrocode} +% % Charset is fixed at UTF-8: % \begin{macrocode} \LWR@htmltag{% @@ -24355,6 +25095,7 @@ end -- not --version }\LWR@orignewline }% % \end{macrocode} +% % Mobile-friendly viewport: % \gindex{HTML>meta tag>viewport} % \gindex{viewport>HTML meta tag} @@ -24366,6 +25107,7 @@ end -- not --version content=\LWR@orig@textquotedbl{}width=device-width, initial-scale=1.0\LWR@orig@textquotedbl\ /% }\LWR@orignewline % \end{macrocode} +% % IE patch: % \changes{v0.63}{2018/11/30}{Fix: Break ligature for \pkg{luatexko}.} % \begin{macrocode} @@ -24379,6 +25121,7 @@ end -- not --version \LWR@htmltag{/script}\LWR@orignewline \LWR@htmltag{![endif]-\/-}\LWR@orignewline % \end{macrocode} +% % The page's title, if there is one. % A section name is also added if given. % \changes{v0.44}{2017/11/18}{Add \cs{HTMLTitle}.} @@ -24394,6 +25137,7 @@ end -- not --version \LWR@htmltag{/title}\LWR@orignewline% }% % \end{macrocode} +% % The page's stylesheet: % \begin{macrocode} \LWR@htmltag{% @@ -24404,6 +25148,7 @@ end -- not --version }% \LWR@orignewline % \end{macrocode} +% % Optional \brand{MathJax} support. The \HTML\ tags must be turned off % during the verbatim input, and the paragraph handling which was % turned on at the end of verbatim input must be immediately turned off @@ -24429,10 +25174,12 @@ end -- not --version }% end of mathjax {}% % \end{macrocode} +% % End of the header: % \begin{macrocode} \LWR@htmltag{/head}\LWR@orignewline % \end{macrocode} +% % Start of the body: % \begin{macrocode} \LWR@htmltag{body}\LWR@orignewline @@ -24591,6 +25338,13 @@ end -- not --version \LWR@htmlelementclass{section}{textbody} % \end{macrocode} % +% Create a label for previous/next links, and remember it has been done: +% \changes{v0.84}{2020/04/24}{Added prev/next links.} +% \begin{macrocode} +\booltrue{LWR@setseqfilelabel}% +\label{\BaseJobname-autofile-\arabic{LWR@htmlseqfilenumber}} +% \end{macrocode} +% % Patch the |itemize|, |enumerate|, and |description| environments and \cs{item}. % This works with the native \LaTeX\ environments, as well as % those provided by \pkg{enumitem}, \pkg{enumerate}, and \pkg{paralist}. @@ -24691,7 +25445,9 @@ end -- not --version % Close the textbody: % \changes{v0.65}{2018/12/18}{Improved \CSS\ for page layout.} +% \changes{v0.84}{2020/04/24}{Added prev/next links.} % \begin{macrocode} +\label{\BaseJobname-autofile-last} \LWR@htmlelementclassend{section}{textbody} \LWR@htmlelementclassend{div}{bodycontainer} \LWR@htmlelementclassend{div}{bodyandsidetoc} @@ -24701,17 +25457,10 @@ end -- not --version \LWR@printpendingfootnotes % \end{macrocode} % -% Create the footer: -% -% \changes{v0.73}{2019/06/23}{Fix: Empty header/footer.} +% Create the footer if not \EPUB\: +% \changes{v0.84}{2020/04/24}{Fix: No footer for \EPUB} % \begin{macrocode} -\ifdefempty{\LWR@pagebottom}{}{% - \LWR@htmlelement{footer} - - \LWR@pagebottom - - \LWR@htmlelementend{footer} -} +\ifbool{FormatEPUB}{}{\LWR@createfooter} % \end{macrocode} % No bottom navigation if are finishing the home page, @@ -24744,7 +25493,7 @@ end -- not --version % \begin{macro}{\enddocument} % If labels have not changed, mark successful completion -% of the \env{lateximages} file. +% of the \filenm{lateximages.txt} file. % Executed as everything is being shut down. % \changes{v0.70}{2019/03/26}{If labels changed, require recompile before making limages.} % \begin{macrocode} @@ -24767,13 +25516,15 @@ end -- not --version } {} { - \PackageWarningNoLine{lwarp} - {% - Could not patch \protect\enddocument.\MessageBreak - If labels have changed, be sure to recompile before\MessageBreak - creating lateximages with\MessageBreak - \space\space lwarpmk limages,\MessageBreak - or the images may be corrupt% + \AtEndDocument{ + \PackageWarningNoLine{lwarp} + {% + Could not patch \protect\enddocument.\MessageBreak + If labels have changed, be sure to recompile before\MessageBreak + creating lateximages with\MessageBreak + \space\space lwarpmk limages,\MessageBreak + or the images may be corrupt% + } } } % \end{macrocode} @@ -25010,24 +25761,27 @@ end -- not --version % % \subsection{Printing the thanks} % -% \codeall -% \begin{macrocode} -\begin{warpall} -% \end{macrocode} -% \DescribeMacro{\printthanks} Forces the \cs{thanks} to be printed. -% +% \begin{macro}{\printthanks} Forces the \cs{thanks} to be printed. % This is necessary in a \env{titlingpage} environment % when \cs{maketitle} was not used. -% \changes{v0.73}{2019/06/25}{Fix: Paragraph tags.} -% \begin{macrocode} -\newcommand*{\printthanks}{\LWR@stoppars\@thanks\LWR@startpars} -% \end{macrocode} % +% \changes{v0.84}{2020/03/29}{Fix: \cs{printthanks} in print mode.} % +% \codeprint % \begin{macrocode} -\end{warpall} +\begin{warpprint} +\newcommand*{\printthanks}{\@thanks} +\end{warpprint} % \end{macrocode} +% \changes{v0.73}{2019/06/25}{Fix: Paragraph tags.} +% \codehtml +% \begin{macrocode} +\begin{warpHTML} +\newcommand*{\printthanks}{\LWR@stoppars\@thanks\LWR@startpars} +\end{warpHTML} +% \end{macrocode} +% \end{macro} % \subsection{Printing the title, etc.\ in \HTML} @@ -25250,12 +26004,22 @@ end -- not --version % The original definition used \cs{\textbar} which was not being seen by \prog{pdftotext}. % % \changes{v0.34}{2017/08/07}{Text symbols instead of math.} +% \changes{v0.84}{2020/04/17}{\cs{LWR@formatted}, fixed double bar.} % % \begin{macrocode} -\def\@fnsymbol#1{\ifcase#1\or *\or \HTMLentity{dagger}\or \HTMLentity{Dagger}\or - \HTMLentity{sect}\or \HTMLentity{para}\or \text{\HTMLunicode{2016}}\or - **\or \HTMLentity{dagger}\HTMLentity{dagger} \or - \HTMLentity{Dagger}\HTMLentity{Dagger} \else\@ctrerr\fi} +\def\LWR@HTML@@fnsymbol#1{% + \ifcase#1\or *\or + \HTMLentity{dagger}\or + \HTMLentity{Dagger}\or + \HTMLentity{sect}\or + \HTMLentity{para}\or + \HTMLunicode{2016}\or + **\or + \HTMLentity{dagger}\HTMLentity{dagger} \or + \HTMLentity{Dagger}\HTMLentity{Dagger} \else + \@ctrerr\fi% +} +\LWR@formatted{@fnsymbol} % \end{macrocode} % \end{macro} % @@ -25450,10 +26214,16 @@ end -- not --version }% }% yes titling package {% no titling package - \newcommand{\published}[1]{}% - \newcommand*{\printpublished}{}% - \newcommand{\subtitle}{}% - \newcommand*{\printsubtitle}% +% \end{macrocode} +% \changes{v0.84}{2020/03/28}{Fixed \cs{subtitle}, \cs{printsubtitle} if no \pkg{titling}.} +% \changes{v0.84}{2020/03/28}{Added \cs{subtitle}, \cs{published} for \pkg{koma*}.} +% \begin{macrocode} + \def\@published{}% + \DeclareDocumentCommand{\published}{m}{\gdef\@published{##1}}% + \DeclareDocumentCommand{\printpublished}{}{}% + \def\@subtitle{}% + \DeclareDocumentCommand{\subtitle}{m}{\gdef\@subtitle{##1}}% + \DeclareDocumentCommand{\printsubtitle}{}{}% }% no titling package }% \AddSubtitlePublished % \end{macrocode} @@ -25493,12 +26263,12 @@ end -- not --version % \begin{macrocode} \DeclareDocumentEnvironment{abstract}{O{\abstractname}} { -\LWR@forcenewpage -\BlockClass{abstract} -\BlockClassSingle{abstracttitle}{#1} + \LWR@forcenewpage + \BlockClass{abstract} + \BlockClassSingle{abstracttitle}{#1} } { -\endBlockClass + \endBlockClass } % \end{macrocode} % \end{environment} @@ -25523,31 +26293,34 @@ end -- not --version % Ex: |"A quotation." \attribution{\textsc{Author Name}\\\textsl{Book Title}}| % % \changes{v0.73}{2019/06/25}{Fix: Paragraph tags.} +% \changes{v0.84}{2020/04/14}{Added print mode.} +% +% \codeall +% \begin{macrocode} +\begin{warpall} +\newcommand{\attribution}[1]{ + \begin{flushright} + \unskip + #1 + \end{flushright}% +} +\end{warpall} +% \end{macrocode} +% \end{macro} % % \codehtml % \begin{macrocode} \begin{warpHTML} -\newcommand{\attribution}[1]{% +\newcommand{\LWR@HTML@attribution}[1]{% \LWR@stoppars% \begin{BlockClass}{attribution} #1 \end{BlockClass} \LWR@startpars% } +\LWR@formatted{attribution} \end{warpHTML} % \end{macrocode} -% \codeprint -% \begin{macrocode} -\begin{warpprint} -\newcommand{\attribution}[1]{ - \begin{flushright} - \unskip - #1 - \end{flushright}% -} -\end{warpprint} -% \end{macrocode} -% \end{macro} % \subsection{Quotes, quotations} @@ -25558,25 +26331,31 @@ end -- not --version % \end{macrocode} % % \begin{environment}{quote} +% \changes{v0.84}{2020/04/14}{Added print mode.} % \begin{macrocode} -\renewenvironment*{quote} +\newenvironment*{LWR@HTML@quote} { \LWR@forcenewpage \LWR@htmlblocktag{blockquote} } {\LWR@htmlblocktag{/blockquote}} + +\LWR@formattedenv{quote} % \end{macrocode} % \end{environment} % -% \changes{v0.71}{2019/04/27}{Fix: \env{blockquotation} tag.} % \begin{environment}{quotation} +% \changes{v0.71}{2019/04/27}{Fix: \env{blockquotation} tag.} +% \changes{v0.84}{2020/04/14}{Added print mode.} % \begin{macrocode} -\renewenvironment*{quotation} +\newenvironment*{LWR@HTML@quotation} { \LWR@forcenewpage \LWR@htmlblocktag{blockquote} } {\LWR@htmlblocktag{/blockquote}} + +\LWR@formattedenv{quotation} % \end{macrocode} % \end{environment} @@ -25599,8 +26378,9 @@ end -- not --version % % \begin{environment}{verse} % \changes{v0.54}{2018/04/08}{Fix: Line spacing.} +% \changes{v0.84}{2020/04/14}{Added print mode.} % \begin{macrocode} -\renewenvironment{verse} +\newenvironment{LWR@HTML@verse} {\let\\\newline% lwarp \list{}{\itemsep \z@ \itemindent -1.5em% @@ -25609,6 +26389,8 @@ end -- not --version \advance\leftmargin 1.5em}% \item\relax} {\endlist} + +\LWR@formattedenv{verse} % \end{macrocode} % \end{environment} % @@ -25786,15 +26568,16 @@ end -- not --version % % Patch \cs{verbatiminput} to add \HTML\ tags: % +% \changes{v0.84}{2020/04/16}{Added print mode.} % \begin{macrocode} -\let\LWRV@origverbatim@input\verbatim@input - -\renewcommand{\verbatim@input}[2]{% -\ifbool{LWR@verbtags}{\LWR@forcenewpage}{}% -\LWR@atbeginverbatim{2.5}{Verbatim}% -\LWRV@origverbatim@input{#1}{#2}% -\LWR@afterendverbatim{1.5}% +\newcommand{\LWR@HTML@verbatim@input}[2]{% + \ifbool{LWR@verbtags}{\LWR@forcenewpage}{}% + \LWR@atbeginverbatim{2.5}{Verbatim}% + \LWR@print@verbatim@input{#1}{#2}% + \LWR@afterendverbatim{1.5}% } + +\LWR@formatted{verbatim@input} % \end{macrocode} % \end{macro} @@ -25803,16 +26586,25 @@ end -- not --version % \begin{environment}{verbatim} % % \changes{v0.20}{2016/12/24}{Added.} +% \changes{v0.84}{2020/04/16}{Added print mode.} % % \begin{macrocode} \AfterEndPreamble{ \LWR@traceinfo{Patching verbatim.} \AtBeginEnvironment{verbatim}{% -\LWR@forcenewpage% -\LWR@atbeginverbatim{2.5}{verbatim}% + \ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}% + {}% + {% + \LWR@forcenewpage% + \LWR@atbeginverbatim{2.5}{verbatim}% + }% } \AfterEndEnvironment{verbatim}{% - \LWR@afterendverbatim{1}% + \ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}% + {}% + {% + \LWR@afterendverbatim{1}% + }% } } % \end{macrocode} @@ -25826,11 +26618,19 @@ end -- not --version % \changes{v0.42}{2017/10/13}{Added.} % \changes{v0.52}{2018/03/27}{Fix to allow inside \env{lateximage}.} % \changes{v0.58}{2018/06/07}{Improved print/\HTML\ output selection.} +% \changes{v0.84}{2020/04/17}{Restore spacing.} % \begin{macrocode} \newcommand*{\LWR@HTML@tabbing}{% -\LWR@forcenewpage% -\LWR@atbeginverbatim{3}{tabbing}% -\LWR@print@tabbing% + \LWR@forcenewpage% + \LWR@atbeginverbatim{3}{tabbing}% + \let\enskip\LWR@origenskip% + \let\quad\LWR@origquad% + \let\qquad\LWR@origqquad% + \let~\LWR@origtilde% + \let\,\LWR@origcomma% + \let\thinspace\LWR@origthinspace% + \let\negthinspace\LWR@orignegthinspace% + \LWR@print@tabbing% } \newcommand*{\LWR@HTML@endtabbing}{% @@ -26325,22 +27125,22 @@ end -- not --version % \begin{macro}{\LWR@restoreoriglists} Restores the original \env{trivlist} environment. % \begin{macrocode} \newcommand*{\LWR@restoreoriglists}{% -\LWR@traceinfo{LWR@restoreoriglists}% -\LetLtxMacro\item\LWR@origitem% -\LetLtxMacro\@item\LWR@orig@item% -\let\@trivlist\LWR@orig@trivlist% -\let\trivlist\LWR@origtrivlist% -\let\endtrivlist\LWR@origendtrivlist% -\LetLtxMacro\itemize\LWR@origitemize% -\LetLtxMacro\enditemize\LWR@endorigitemize% -\LetLtxMacro\enumerate\LWR@origenumerate% -\LetLtxMacro\endenumerate\LWR@endorigenumerate% -\LetLtxMacro\description\LWR@origdescription% -\LetLtxMacro\enddescription\LWR@endorigdescription% -\let\@mklab\LWR@orig@mklab% -\let\makelabel\LWR@origmakelabel% -\let\@donoparitem\LWR@orig@donoparitem% -\let\@nbitem\LWR@orig@nbitem% + \LWR@traceinfo{LWR@restoreoriglists}% + \LetLtxMacro\item\LWR@origitem% + \LetLtxMacro\@item\LWR@orig@item% + \let\@trivlist\LWR@orig@trivlist% + \let\trivlist\LWR@origtrivlist% + \let\endtrivlist\LWR@origendtrivlist% + \LetLtxMacro\itemize\LWR@origitemize% + \LetLtxMacro\enditemize\LWR@endorigitemize% + \LetLtxMacro\enumerate\LWR@origenumerate% + \LetLtxMacro\endenumerate\LWR@endorigenumerate% + \LetLtxMacro\description\LWR@origdescription% + \LetLtxMacro\enddescription\LWR@endorigdescription% + \let\@mklab\LWR@orig@mklab% + \let\makelabel\LWR@origmakelabel% + \let\@donoparitem\LWR@orig@donoparitem% + \let\@nbitem\LWR@orig@nbitem% } % \end{macrocode} % \end{macro} @@ -26726,7 +27526,7 @@ end -- not --version % \subsubsection{Longtable variables} % \DescribeBoolean{LWR@starredlongtable} -% Per the \pkg{caption} pacakge, step the counter if |longtable*|. +% Per the \pkg{caption} package, step the counter if |longtable*|. % % \begin{macrocode} \newbool{LWR@starredlongtable} @@ -28385,15 +29185,6 @@ end -- not --version -% Used to compute margins, tabular trims, column offsets: -% \begin{macrocode} -\newlength{\LWR@templengthone} -\newlength{\LWR@templengthtwo} -\newlength{\LWR@templengththree} -\newcounter{LWR@tempcountone} -% \end{macrocode} - - % \begin{macro}{\LWR@tdstartstyles} % Begins possibly adding a table data cell style. % \begin{macrocode} @@ -29147,20 +29938,11 @@ end -- not --version % % \begin{macrocode} \IfValueT{#2}{ % rows? - rowspan="#2" % -% \end{macrocode} -% -% \changes{v0.47}{2018/01/26}{Fix: Line wrap at \HTML\ hyphen.} -% \begin{macrocode} - \IfValueT{#1}{% vpos? - \ifstrequal{#1}{b}% - {style="\LWR@print@mbox{vertical-align:bottom}" }{}% - \ifstrequal{#1}{t}% - {style="\LWR@print@mbox{vertical-align:top}" }{}% - }% vpos? - }% rows? + rowspan="#2" % + }% % \end{macrocode} % +% \changes{v0.84}{2020/04/16}{Fix: Multicolumn style.} % \begin{macrocode} class="td% % \end{macrocode} @@ -29213,10 +29995,30 @@ end -- not --version % \begin{macrocode} \LWR@tdstartstyles% % \end{macrocode} +% +% Style for vertical position: +% \changes{v0.47}{2018/01/26}{Fix: Line wrap at \HTML\ hyphen.} +% \begin{macrocode} + \IfValueT{#1}{% vpos? + \ifstrequal{#1}{b}% + {% + \LWR@tdaddstyle% + \LWR@print@mbox{vertical-align:bottom}% + }{}% + \ifstrequal{#1}{t}% + {% + \LWR@tdaddstyle% + \LWR@print@mbox{vertical-align:top}% + }{}% + }% vpos? +% \end{macrocode} +% +% Style for row colors: % \changes{v0.49}{2018/02/18}{\pkg{xcolor}: Added tabular row colors.} % \begin{macrocode} \LWR@addtabularrowcolor% % \end{macrocode} +% Other styles: % \begin{macrocode} \LWR@addcmidrulewidth% \LWR@addcdashline% @@ -30073,16 +30875,7 @@ end -- not --version % a warning is issued here instructing the user to please isolate the \element{span} % to print-only. % \begin{macrocode} - \ifnumcomp{\value{LWR@spandepth}}{>}{0}{% - \PackageWarning{lwarp}{% - A tabular is being used inside a span such as\MessageBreak - a minipage. Some formatting may not be correct\MessageBreak - in the tabular.\MessageBreak - It is recommended to use \protect\warpprintonly\space or the\MessageBreak - warpprint environment to isolate the span to\MessageBreak - print-only,% - } - }{}% + \LWR@spanwarnformat{tabular}% \addtocounter{LWR@tabulardepth}{1}% % \end{macrocode} % Not yet started a table row: @@ -30431,6 +31224,8 @@ end -- not --version % \begin{description} % \item [\cs{label}:] Adds \HTML\ tags (\cref{sec:labels}), % and another \filenm{.aux} entry (\cref{sec:lwarplabelsetup}). +% If \pkg{memoir} is used, its \cs{@mem@old@label} points to \pkg{lwarp}'s version, +% and \pkg{cleveref} patches. % \item [\cs{newlabel}:] Unchanged. When the |.aux| file is read, sets \cs{r@<label>@lwarp}. % \item [\cs{r@<label>@lwarp}:] Set to |{{section_name}{file_name}{depth}{number}}|: % \begin{description} @@ -30497,8 +31292,9 @@ end -- not --version % description, or caption, for \cs{nameref}. % % \changes{v0.44}{2017/11/19}{Adjustment for \pkg{koma-script}.} +% \changes{v0.84}{2020/04/24}{Default name for previous/next links.} % \begin{macrocode} -\providecommand*{\@currentlabelname}{} +\def\@currentlabelname{\linkhomename}% % \end{macrocode} % \end{macro} % @@ -30614,12 +31410,12 @@ end -- not --version % \end{macro} % % -% \begin{macro}{\LWR@lwarplabel} \marg{label} +% \begin{macro}{\LWR@write@lwarplabel} \marg{label} % Sanitize the name and then creates the label: % \changes{v0.66}{2019/01/27}{No longer use \pkg{zref}.} % \begin{macrocode} -\newcommand*{\LWR@lwarplabel}[1]{% - \LWR@traceinfo{LWR@lwarplabel !#1!}% +\newcommand*{\LWR@write@lwarplabel}[1]{% + \LWR@traceinfo{LWR@write@lwarplabel !#1!}% \LWR@setlatestname{\@currentlabelname}% \@bsphack% \protected@write\@auxout{}% @@ -30647,14 +31443,16 @@ end -- not --version % \label{sec:labels} -% \begin{macro}{\LWR@sublabel} \marg{label} \quad +% \begin{macro}{\LWR@label@createtag} \marg{label} \quad % Creates an \HTML\ id tag. % +% Used by \cs{LWR@new@label} and \cs{hyperdef}. +% % \cs{detokenize} is used to allow underscores in the labels. % \changes{v0.45}{2017/12/29}{Fix: Labels with underscores.} % \begin{macrocode} -\newcommand*{\LWR@sublabel}[1]{% - \LWR@traceinfo{LWR@sublabel !#1!}% +\newcommand*{\LWR@label@createtag}[1]{% + \LWR@traceinfo{LWR@label@createtag !#1!}% % \end{macrocode} % Create an \HTML\ id tag unless are inside a lateximage, % since it would appear in the image: @@ -30692,30 +31490,30 @@ end -- not --version % \end{macro} % % -% \begin{macro}{\LWR@new@label} \parg{bookmark} \marg{label} \oarg{type} +% \begin{macro}{\LWR@new@label} \marg{label} % % \cs{label} during \HTML\ output when not in \SVG\ math mode, % removing extra spaces around the label, as done by a regular \LaTeX\ \cs{label}. % % The is also used during a \env{lateximage}, including \SVG\ math, since -% the special label handling is required, but \cs{LWR@sublabel} does not +% the special label handling is required, but \cs{LWR@label@createtag} does not % generate \HTML\ tags inside a \env{lateximage}. % -% \pkg{clevereref} later encases this to add its own cross-referencing. +% If \pkg{memoir} is used, it's \cs{@mem@old@label} is pointed here. % -% The optional \meta{bookmark} is per the \pkg{memoir} class, and is ignored. -% -% The optional \meta{type} is per the \pkg{ntheorem} package, and is ignored. +% \pkg{clevereref} later encases this to add its own cross-referencing, +% and also patches \pkg{memoir}. % +% \changes{v0.84}{2020/04/05}{Removed optional args.} % \begin{macrocode} -\NewDocumentCommand{\LWR@new@label}{d() m o}{% +\NewDocumentCommand{\LWR@new@label}{m}{% \LWR@traceinfo{LWR@new@label: starting}% - \LWR@traceinfo{LWR@new@label: !#2!}% + \LWR@traceinfo{LWR@new@label: !#1!}% % \@bsphack% % \end{macrocode} % Create a traditional \LaTeX\ label, as modified by \pkg{cleveref}: % \begin{macrocode} - \LWR@orig@label{#2}% + \LWR@orig@label{#1}% % \end{macrocode} % Create a special label which holds the section number, % |LWR@htmlfilenumber|, |LWR@lateximagedepth|, and |LWR@lateximagenumber|: @@ -30730,8 +31528,8 @@ end -- not --version \LWR@traceinfo{% LWR@new@label: LWR@htmlfilenumber is \arabic{LWR@htmlfilenumber}% }% - \LWR@lwarplabel{#2}% - \LWR@sublabel{#2}% + \LWR@write@lwarplabel{#1}% + \LWR@label@createtag{#1}% % \@esphack% \LWR@traceinfo{LWR@new@label: done}% } @@ -30957,13 +31755,10 @@ end -- not --version % Emulates \pkg{hyperref}: % \begin{macro}{\@currentHref} Added to support \pkg{backref}. % \changes{v0.45}{2018/01/14}{Added.} +% \changes{v0.84}{2020/04/07}{\pkg{backref}: Fixed from \pkg{lwarp} v0.72 changes.} % \begin{macrocode} \AtBeginDocument{ - -\def\@currentHref{% - autopage-\theLWR@currentautosec% -} - + \def\@currentHref{\BaseJobname-autopage-\theLWR@currentautosec} } % \end{macrocode} % \end{macro} @@ -31225,11 +32020,10 @@ end -- not --version % \hrule % \end{table} % -% \cs{@makecaption} is redefined to print the float number and caption text, -% separated by \cs{CaptionSeparator}, which works with the \pkg{babel} package to -% adjust the caption separator according to the language. French, for example, -% uses an en-dash instead of a colon: ``Figure 123 -- Caption text''. - +% ^^A \cs{@makecaption} is redefined to print the float number and caption text, +% ^^A separated by \cs{CaptionSeparator}, which works with the \pkg{babel} package to +% ^^A adjust the caption separator according to the language. French, for example, +% ^^A uses an en-dash instead of a colon: ``Figure 123 -- Caption text''. % \subsection{Float environment} @@ -31244,6 +32038,13 @@ end -- not --version % % \begin{macrocode} \NewDocumentCommand{\LWR@floatbegin}{m o}{% +% \end{macrocode} +% Warn if starting a float inside a \element{span}: +% \changes{v0.84}{2020/04/22}{Warn inside a \element{span}.} +% \begin{macrocode} + \LWR@spanwarninvalid{float}% +% \end{macrocode} +% \begin{macrocode} \ifbool{FormatWP}{\newline}{}% \LWR@stoppars% % \end{macrocode} @@ -31281,7 +32082,6 @@ end -- not --version % Update the caption type: % \begin{macrocode} \renewcommand*{\@captype}{#1}% - \caption@settype{#1}% % \end{macrocode} % Mark the float for a word processor conversion: % \begin{macrocode} @@ -31292,11 +32092,9 @@ end -- not --version }{}% % \end{macrocode} -% Look for \cs{centering}, etc: -% \changes{v0.54}{2018/04/19}{Honor \cs{centering}, etc. in floats.} -% \changes{v0.55}{2018/04/24}{Fix: Float optional args.} +% After each \cs{LWR@floatbegin}, look for \cs{centering}, etc next, +% using \cs{LWR@floatalignment}. % \begin{macrocode} - \LWR@futurenonspacelet\LWR@mynexttoken\LWR@floatalignment% } % \end{macrocode} % \end{macro} @@ -31319,11 +32117,25 @@ end -- not --version % % % -% \begin{macro}{\@float} -% \begin{macro}{\@dlbfloat} Support packages which create floats directly. +% \begin{macro}{\@xfloat} +% \begin{macro}{\@xdlbfloat} Support packages which create floats directly. +% +% Look for \cs{centering}, etc using \cs{LWR@floatalignment}. +% +% \changes{v0.54}{2018/04/19}{Honor \cs{centering}, etc. in floats.} +% \changes{v0.55}{2018/04/24}{Fix: Float optional args.} +% \changes{v0.84}{2020/04/19}{\pkg{caption} now optional.} % \begin{macrocode} -\let\@float\LWR@floatbegin -\let\@dblfloat\LWR@floatbegin +\AtBeginDocument{ + \def\@xfloat #1[#2]{% + \LWR@floatbegin{#1}[#2] + \LWR@futurenonspacelet\LWR@mynexttoken\LWR@floatalignment% + } + \def\@xdblfloat #1[#2]{% + \LWR@floatbegin{#1}[#2] + \LWR@futurenonspacelet\LWR@mynexttoken\LWR@floatalignment% + } +} % \end{macrocode} % \end{macro} % \end{macro} @@ -31365,9 +32177,12 @@ end -- not --version % % \begin{macro}{\end@float} % \begin{macro}{\end@dlbfloat} Support packages which create floats directly. +% \changes{v0.84}{2020/04/19}{\pkg{caption} now optional.} % \begin{macrocode} -\let\end@float\LWR@floatend -\let\end@dblfloat\LWR@floatend +\AtBeginDocument{ + \let\end@float\LWR@floatend + \let\end@dblfloat\LWR@floatend +} % \end{macrocode} % \end{macro} % \end{macro} @@ -31402,11 +32217,14 @@ end -- not --version % \begin{macro}{\LWR@forcenewautoidanchor} % Adds a new \element{autoid} anchor. % \changes{v0.79}{2019/12/09}{Factored.} +% \changes{v0.84}{2020/04/16}{\element{par} handling.} % \begin{macrocode} \newcommand*{\LWR@forcenewautoidanchor}{% \addtocounter{LWR@thisautoid}{1}% + \LWR@stoppars% \LWR@htmltag{a id="\LWR@print@mbox{autoid-\arabic{LWR@thisautoid}}"}% \LWR@htmltag{/a}% + \LWR@startpars% } % \end{macrocode} % \end{macro} @@ -31479,34 +32297,66 @@ end -- not --version % \subsection{Caption inside a float environment} -% \begin{macro}{\CaptionSeparator} How to separate the float number and the caption text. +% \begin{macro}{\CaptionSeparator} How to separate the float number and the caption text, +% if not defined by the user. +% In most cases, \pkg{caption}'s settings are used instead. % \changes{v0.13}{2016/03/23}{Fix for newer babel package.} % \begin{macrocode} \AtBeginDocument{\providecommand*{\CaptionSeparator}{:~}} % \end{macrocode} % \end{macro} + +% \begin{macro}{\@caption} \marg{posn} \oarg{name} \marg{long name} % \begin{macro}{\@makecaption} \marg{name and num} \marg{text} % % Prints the float type and number, the caption separator, and the caption text. +% +% \cs{@caption} is provided here in case \pkg{caption} is not loaded, and +% is based on the \pkg{nameref} package. +% +% \changes{v0.84}{2020/04/20}{\pkg{caption} now optional.} % \begin{macrocode} -\AtBeginDocument{\renewcommand{\@makecaption}[2]{% - \LWR@traceinfo{@makecaption}% - \LWR@isolate{#1}\CaptionSeparator\LWR@isolate{#2}% - \LWR@traceinfo{@makecaption: done}% -}% +\AtBeginDocument{ + \@ifpackageloaded{caption}{}{ + \let\LWR@orig@caption\@caption% + \long\def\@caption#1[#2]{% +% \end{macrocode} +% Warn if using a caption inside a \element{span}: +% \changes{v0.84}{2020/04/22}{Warn inside a \element{span}.} +% \begin{macrocode} + \LWR@spanwarnformat{caption}% +% \end{macrocode} +% \begin{macrocode} + \LWR@setlatestname{#2}% + \LWR@orig@caption{#1}[{#2}]% also takes third argument + }% + + \renewcommand{\@makecaption}[2]{% + \LWR@traceinfo{@makecaption}% + \caption@begin{\@captype}% + \LWR@isolate{#1}% + \edef\LWR@tempone{#1}% + \ifdefvoid{\LWR@tempone}{}{\CaptionSeparator}% + \LWR@isolate{#2}% + \caption@end% + \LWR@traceinfo{@makecaption: done}% + }% + } } % \end{macrocode} % \end{macro} +% \end{macro} % \subsection{Caption and \LOF\ linking and tracking} % When a new \HTML\ file is marked in the \LaTeX\ \PDF\ file, +% or at the start of a new section, % the \LaTeX\ page number at that point is stored in |LWR@latestautopage|, % (and the associated filename is remembered by the special \LaTeX\ labels). % This page number is used to generate an |autopage| \HTML\ \element{id} -% in the \HTML\ output at the start of the new \HTML\ file. +% in the \HTML\ output at the start of the new \HTML\ file or section. % Meanwhile, there is a float counter used to generate an \HTML\ |autoid| % \element{id} at the start of the float itself in the \HTML\ file. % The |autopage| and |autoid| values to use for each float are written to the @@ -31541,8 +32391,10 @@ end -- not --version % \end{macrocode} % \end{macro} + % \DescribeCounter{LWR@latestautopage} -% Updated each time a new \HTML\ file is begun. +% The \HTML\ output's \PDF\ page number at the start of a new \HTML\ file or section. +% % \cs{LWRsetnextfloat} is written with this and the |autoid| % by the modified \cs{addcontentsline} just before each float's entry. % \begin{macrocode} @@ -31579,7 +32431,7 @@ end -- not --version % % Low-level code to create \HTML\ tags for captions. % -% The print versions are from the \pkg{caption} package. +% The print versions are from the \pkg{caption} package, if loaded. % % \changes{v0.47}{2018/01/28}{Fix: Argument passed to \cs{LWR@origcaption@begin}.} % \changes{v0.58}{2018/06/07}{Improved print/\HTML\ output selection.} @@ -31632,10 +32484,17 @@ end -- not --version % These are assigned \cs{AtBeginDocument} so that other packages % which modify captions will have already been loaded before saving the % print-mode version. +% +% Print versions are provided here in case \pkg{caption} is not loaded. +% +% \changes{v0.84}{2020/04/20}{\pkg{caption} now optional.} % \begin{macrocode} \AtBeginDocument{ -\LWR@formatted{caption@begin} -\LWR@formatted{caption@end} + \providecommand{\caption@begin}[1]{} + \LWR@formatted{caption@begin} + + \providecommand{\caption@end}{} + \LWR@formatted{caption@end} } % \end{macrocode} % \end{macro} @@ -31646,28 +32505,37 @@ end -- not --version % Tracks the float number for this caption used outside a float. % Patched to create an \HTML\ anchor. % \changes{v0.47}{2018/01/26}{Fix: Line wrap at \HTML\ hyphen.} +% \changes{v0.84}{2020/04/20}{\pkg{caption} now optional.} % \begin{macrocode} -\let\LWR@origcaptionlistentry\captionlistentry +\AtBeginDocument{% +\@ifpackageloaded{caption}{ + \let\LWR@origcaptionlistentry\captionlistentry -\renewcommand*{\captionlistentry}{% - \LWR@ensuredoingapar% - \LWR@origcaptionlistentry% -} + \renewcommand*{\captionlistentry}{% + \LWR@ensuredoingapar% + \LWR@origcaptionlistentry% + } % \end{macrocode} % % \changes{v0.79}{2019/12/09}{Fix: Duplicate \attribute{auto-id}.} % \begin{macrocode} -\def\LWR@LTcaptionlistentry{% - \LWR@ensuredoingapar% - \LWR@forcenewautoidanchor% - \bgroup - \@ifstar{\egroup\LWR@LT@captionlistentry}% gobble * - {\egroup\LWR@LT@captionlistentry}% -}% + \def\LWR@LTcaptionlistentry{% + \LWR@ensuredoingapar% + \LWR@forcenewautoidanchor% + \bgroup% + \@ifstar{\egroup\LWR@LT@captionlistentry}% gobble * + {\egroup\LWR@LT@captionlistentry}% + }% -\def\LWR@LT@captionlistentry#1{% - \caption@listentry\@firstoftwo[\LTcaptype]{#1}% -}% + \def\LWR@LT@captionlistentry#1{% + \caption@listentry\@firstoftwo[\LTcaptype]{#1}% + }% +}% caption loaded +{% caption not loaded + \newcommand{\captionlistentry}[2][]{}% + \newcommand{\LWR@LT@captionlistentry}[2][]{}% +} +}% AtBeginDocument % \end{macrocode} % \end{macro} @@ -31715,16 +32583,17 @@ end -- not --version % % \begin{macro}{\captionof} % Patched to handle paragraph tags. +% \changes{v0.84}{2020/04/20}{\pkg{caption} now optional.} % \begin{macrocode} -\AtBeginDocument{ - -\let\LWR@origcaptionof\captionof +\RequirePackage{capt-of} -\renewcommand*{\captionof}{% - \LWR@stoppars% - \LWR@origcaptionof% -} +\AtBeginDocument{ + \let\LWR@origcaptionof\captionof + \renewcommand*{\captionof}{% + \LWR@stoppars% + \LWR@origcaptionof% + } }% AtBeginDocument % \end{macrocode} % \end{macro} @@ -32010,7 +32879,7 @@ end -- not --version \newcounter{SideTOCDepth} \setcounter{SideTOCDepth}{1} -\AtBeginDocument{% +\AtEndDocument{% \ifnumcomp{\value{SideTOCDepth}}{<}{\value{FileDepth}}{ \PackageWarningNoLine{lwarp} {% @@ -32123,7 +32992,8 @@ end -- not --version % \end{macrocode} % Respond to |tocdepth|: % \begin{macrocode} - \ifthenelse{\cnttest{#1}{<=}{\value{tocdepth}}}% + \ifnumcomp{#1}{>}{\value{tocdepth}}% + {}% {% \LWR@startpars% % \end{macrocode} @@ -32148,7 +33018,6 @@ end -- not --version % \begin{macrocode} \LWR@stoppars% }% - {}% \LWR@traceinfo{hypertoc done}% } % \end{macrocode} @@ -32186,7 +33055,6 @@ end -- not --version % % \begin{macrocode} \newcommand{\hypertocfloat}[5]{% - \LWR@startpars% % \end{macrocode} % If some float-creation package has not yet defined % the float type's |lofdepth| counter, etc, define it here: @@ -32718,10 +33586,6 @@ end -- not --version \LetLtxMacro\normalfont\LWR@orignormalfont% \let\sp\LWR@origsp% \let\sb\LWR@origsb% - \LetLtxMacro\textsuperscript\LWR@origtextsuperscript% - \LetLtxMacro\@textsuperscript\LWR@orig@textsuperscript% - \LetLtxMacro\textsubscript\LWR@origtextsubscript% - \LetLtxMacro\@textsubscript\LWR@orig@textsubscript% \LetLtxMacro\underline\LWR@origunderline% \let~\LWR@origtilde% \let\enskip\LWR@origenskip% @@ -32768,11 +33632,229 @@ end -- not --version % \end{macrocode} % % +% \section{Nullifying filename formatting} +% +% The following are used to nullify certain macros and +% environments while converting section names to file names. +% +% +% \codehtml +% \begin{macrocode} +\begin{warpHTML} +% \end{macrocode} +% +% +% Also commonly used are \cs{@empty}, \cs{@gobble}, and \cs{@firstofone}. +% +% \begin{macrocode} +\newcommand*{\LWR@dash}{-} +% \end{macrocode} % -% \section{Math} -% \label{sec:math} % +% \begin{macro}{\LWR@nullfonts} Removes formatting during filename operations, +% file references, and \HTML\ comments. % +% \textred{Use only inside a group.}\watchout +% +% The following are \emph{not} made robust, +% since they must be expanded to their nullified versions. +% +% \changes{v0.34}{2017/08/05}{Improved font control.} +% \changes{v0.36}{2017/08/15}{Fix: Filenames while using \brand{MathJax}.} +% \changes{v0.40}{2017/09/21}{Fix: Long arguments for expandable command.} +% \changes{v0.43}{2017/10/31}{Fix: Nullify dollar inside filesnames.} +% \changes{v0.48}{2018/02/04}{Fix: \cs{newline} in title.} +% \changes{v0.65}{2018/12/09}{Added \cs{textsi}.} +% \changes{v0.84}{2020/04/11}{Factored out redefinitions.} +% \changes{v0.84}{2020/04/12}{Fix: Accents.} +% \begin{macrocode} +\catcode`\$=\active% redefining $ below +\catcode`\_=12% redefining \_ below +\newcommand*{\LWR@nullfonts}{% +% \end{macrocode} +% Various built-in symbols. +% \changes{v0.67}{2019/02/13}{Add'l symbols.} +% \changes{v0.84}{2020/04/12}{Add'l symbols.} +% \begin{macrocode} + \renewcommand*{\$}{-}% + \renewcommand*{\%}{-}% + \renewcommand*{\_}{-}% + \renewcommand*{\}}{-}% + \renewcommand*{\{}{-}% + \renewcommand*{\&}{-}% used to be 'and' + \renewcommand*{\#}{-}% + \renewcommand*{\,}{-}% + \renewcommand*{~}{-}% +% +% accents: + \renewcommand*{\`}[1]{##1}% + \renewcommand*{\'}[1]{##1}% + \renewcommand*{\^}[1]{##1}% + \renewcommand*{\~}[1]{##1}% + \renewcommand*{\=}[1]{##1}% + \renewcommand*{\u}[1]{##1}% + \renewcommand*{\.}[1]{##1}% + \renewcommand*{\"}[1]{##1}% + \renewcommand*{\H}[1]{##1}% + \renewcommand*{\v}[1]{##1}% + \renewcommand*{\d}[1]{##1}% + \renewcommand*{\c}[1]{##1}% + \renewcommand*{\b}[1]{##1}% + \renewcommand*{\t}[1]{##1}% +% + \let\newline\LWR@dash% + \let\textasciicircum\LWR@dash% + \let\textasciitilde\LWR@dash% + \let\textasteriskcentered\LWR@dash% + \let\textbackslash\LWR@dash% + \let\textbar\LWR@dash% + \let\textbardbl\LWR@dash% + \let\textbigcircle\LWR@dash% + \let\textbraceleft\LWR@dash% + \let\textbraceright\LWR@dash% + \let\textbullet\LWR@dash% + \let\textcopyright\LWR@dash% + \let\textdagger\LWR@dash% + \let\textdaggerdbl\LWR@dash% + \let\textdollar\LWR@dash% + \let\textellipsis\LWR@dash% + \let\textemdash\LWR@dash% + \let\textendash\LWR@dash% + \let\textexclamdown\LWR@dash% + \let\textgreater\LWR@dash% + \let\textless\LWR@dash% + \let\textordfeminine\LWR@dash% + \let\textordmasculine\LWR@dash% + \let\textparagraph\LWR@dash% + \let\textperiodcentered\LWR@dash% + \let\textpertenthousand\LWR@dash% + \let\textperthousand\LWR@dash% + \let\textquestiondown\LWR@dash% + \let\textquotedblleft\LWR@dash% + \let\textquotedblright\LWR@dash% + \let\textquoteleft\LWR@dash% + \let\textquoteright\LWR@dash% + \let\textregistered\LWR@dash% + \let\textsection\LWR@dash% + \let\textsterling\LWR@dash% + \let\texttrademark\LWR@dash% + \let\textunderscore\LWR@dash% + \let\textvisiblespace\LWR@dash% + \let\copyright\LWR@dash% + \let\dag\LWR@dash% + \let\ddag\LWR@dash% + \let\dots\LWR@dash% + \let\P\LWR@dash% + \let\pounds\LWR@dash% + \let\S\LWR@dash% +% + \renewcommand*{\aa}{a}% + \renewcommand*{\AA}{A}% + \renewcommand*{\AE}{AE}% + \renewcommand*{\ae}{ae}% + \renewcommand*{\dh}{d}% + \renewcommand*{\DH}{D}% + \renewcommand*{\DJ}{D}% + \renewcommand*{\dj}{d}% + \renewcommand*{\IJ}{IJ}% + \renewcommand*{\ij}{ij}% + \renewcommand*{\L}{L}% + \renewcommand*{\l}{l}% + \renewcommand*{\NG}{NG}% + \renewcommand*{\ng}{ng}% + \renewcommand*{\O}{O}% + \renewcommand*{\o}{o}% + \renewcommand*{\oe}{oe}% + \renewcommand*{\OE}{OE}% + \renewcommand*{\ss}{ss}% + \renewcommand*{\SS}{SS}% + \renewcommand*{\th}{th}% + \renewcommand*{\TH}{TH}% +% + \let\guillemotleft\@empty% + \let\guilsinglleft\@empty% + \let\quotedblbase\@empty% + \let\textquotedbl\@empty% + \let\guillemotright\@empty% + \let\guilsinglright\@empty% + \let\quotesinglbase\@empty% +% \end{macrocode} +% \begin{macrocode} + \renewcommand*{\HTMLunicode}[1]{}% + \renewcommand*{\HTMLentity}[1]{}% +% \end{macrocode} +% \begin{macrocode} + \renewcommand{\textsuperscript}[1]{##1}% + \renewcommand{\textsubscript}[1]{##1}% +% \end{macrocode} +% \changes{v0.50}{2018/02/20}{Fix: \cs{underline} in sectioning file name.} +% \begin{macrocode} + \renewcommand{\underline}[1]{##1}% +% \end{macrocode} +% \changes{v0.73}{2019/06/24}{Fix: \cs{hspace} in sectioning file name.} +% \begin{macrocode} + \RenewDocumentCommand{\hspace}{s m}{}% +% \end{macrocode} +% \begin{macrocode} + \RenewDocumentCommand{\LWR@htmlspanclass}{o m +m}{##3}% + \DeclareExpandableDocumentCommand{\InlineClass}{D{(}{)}{} o m +m}{##4}% +% \end{macrocode} +% Nullify math macros. +% \changes{v0.55}{2018/04/24}{Removed extraneous space which appeared in file links.} +% \begin{macrocode} + \def\(##1\){}% + \def\[##1\]{}% + \RenewDocumentCommand{\LWR@subsingledollar}{s m m m}{}% +% \end{macrocode} +% Nullify logos: +% \changes{v0.66}{2019/02/01}{Logos.} +% \begin{macrocode} + \renewcommand*{\TeX}{TeX}% + \renewcommand*{\LaTeX}{LaTeX}% + \renewcommand*{\LaTeXe}{LaTeX2e}% + \renewcommand*{\LuaTeX}{LuaTeX}% + \renewcommand*{\LuaLaTeX}{LuaLaTeX}% + \renewcommand*{\XeTeX}{XeTeX}% + \renewcommand*{\XeLaTeX}{XeLaTeX}% + \renewcommand*{\ConTeXt}{ConTeXt}% + \renewcommand*{\BibTeX}{BibTeX}% + \renewcommand*{\MakeIndex}{MakeIndex}% + \renewcommand*{\AmS}{AmS}% + \renewcommand*{\MiKTeX}{MiKTeX}% + \renewcommand*{\LyX}{LyX}% +% \end{macrocode} +% Use the simpler form with \cs{texorpdfstring}: +% \changes{v0.52}{2018/03/31}{Fix: \cs{texorpdfstring} in section names.} +% \changes{v0.84}{2020/04/12}{Revised \cs{texorpdfstring}.} +% \begin{macrocode} + \def\texorpdfstring{\expandafter\@secondoftwo}% +} +\catcode`\$=3% +\catcode`\_=8% +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\FilenameNullify} \marg{redefinitions} +% +% Adds more nullifying definitions for filename generation. +% +% \changes{v0.67}{2019/02/13}{Added.} +% \begin{macrocode} +\newcommand*{\FilenameNullify}[1]{% + \appto{\LWR@nullfonts}{#1}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +\end{warpHTML} +% \end{macrocode} +% +% +% +% \section{Math} +% \label{sec:math} % % \subsection{Limitations} % @@ -33605,8 +34687,8 @@ end -- not --version % Redefine to the above dollar macros. % \begin{macrocode} \AtBeginDocument{ -\protected\gdef\(#1\){$#1$} -\protected\gdef\[#1\]{$$#1$$} + \protected\gdef\(#1\){$#1$} + \protected\gdef\[#1\]{$$#1$$} } \endgroup @@ -33906,10 +34988,10 @@ end -- not --version % after redefined by \pkg{amsmath}, if loaded. % \begin{macrocode} \AtBeginDocument{ -\let\LWR@origequation\equation -\let\LWR@origendequation\endequation -\csletcs{LWR@origequation*}{equation*} -\csletcs{LWR@origendequation*}{endequation*} + \let\LWR@origequation\equation + \let\LWR@origendequation\endequation + \csletcs{LWR@origequation*}{equation*} + \csletcs{LWR@origendequation*}{endequation*} } % \end{macrocode} % @@ -33956,7 +35038,7 @@ end -- not --version % SVG output: % Create the |lateximage| along with an \HTML\ \element{alt} tag % having an equation number, the \LaTeX{} equation environment -% commmands, and the contents of the environment's \cs{BODY}. +% commands, and the contents of the environment's \cs{BODY}. % \begin{macrocode} {% not mathjax % \end{macrocode} @@ -34085,10 +35167,10 @@ end -- not --version % Remove existing \env{equation} environment: % \begin{macrocode} \AtBeginDocument{ -\let\equation\relax -\let\endequation\relax -\csletcs{equation*}{relax} -\csletcs{endequation*}{relax} + \let\equation\relax + \let\endequation\relax + \csletcs{equation*}{relax} + \csletcs{endequation*}{relax} } % \end{macrocode} @@ -34100,14 +35182,12 @@ end -- not --version % macro called \cs{BODY}. % \begin{macrocode} \AtBeginDocument{ + \NewEnviron{equation}% + {\LWR@doequation{\BODY}{equation}}% + [\LWR@doendequation{equation}] -\NewEnviron{equation}% - {\LWR@doequation{\BODY}{equation}}% - [\LWR@doendequation{equation}] - -\LetLtxMacro\LWR@equationnormal\equation -\LetLtxMacro\endLWR@equationnormal\endequation - + \LetLtxMacro\LWR@equationnormal\equation + \LetLtxMacro\endLWR@equationnormal\endequation }% AtBeginDocument % \end{macrocode} % \end{environment} @@ -34116,14 +35196,12 @@ end -- not --version % \begin{environment}{equation*} % \begin{macrocode} \AtBeginDocument{ + \NewEnviron{equation*}% + {\LWR@doequation{\BODY}{equation*}}% + [\LWR@doendequation{equation*}] -\NewEnviron{equation*}% - {\LWR@doequation{\BODY}{equation*}}% - [\LWR@doendequation{equation*}] - -\csletcs{LWR@equationnormalstar}{equation*} -\csletcs{LWR@endequationnormalstar}{endequation*} - + \csletcs{LWR@equationnormalstar}{equation*} + \csletcs{LWR@endequationnormalstar}{endequation*} }% AtBeginDocument % \end{macrocode} % \end{environment} @@ -34134,10 +35212,10 @@ end -- not --version % some \tikz\ expressions. % \begin{macrocode} \AtBeginDocument{ -\LetLtxMacro\LWR@equationless\equation -\LetLtxMacro\endLWR@equationless\endequation -\csletcs{LWR@equationlessstar}{equation*} -\csletcs{LWR@endequationlessstar}{endequation*} + \LetLtxMacro\LWR@equationless\equation + \LetLtxMacro\endLWR@equationless\endequation + \csletcs{LWR@equationlessstar}{equation*} + \csletcs{LWR@endequationlessstar}{endequation*} } % \end{macrocode} @@ -35128,7 +36206,7 @@ end -- not --version % \end{macrocode} % \begin{environment}{lateximage} * \oarg{\element{alt} tag} * -% \oarg{add'l hashing} \oarg{\CSS\ style} +% \oarg{add'l hashing} \oarg{\CSS\ style} % % \env{varwidth} is used to create a box of the natural width of its contents. % @@ -35159,8 +36237,9 @@ end -- not --version % Replace \env{center} functionality with \CSS\ tags: % \changes{v0.42}{2017/10/26}{If \progcode{FormatWP} use explicit \attribute{text-align}.} % \changes{v0.47}{2018/01/26}{Fix: Line wrap at \HTML\ hyphen.} +% \changes{v0.84}{2020/04/14}{Added print mode.} % \begin{macrocode} -\renewenvironment*{center} +\newenvironment*{LWR@HTML@center} { \LWR@forcenewpage \ifbool{FormatWP} @@ -35168,14 +36247,17 @@ end -- not --version {\BlockClass{center}} } {\endBlockClass} + +\LWR@formattedenv{center} % \end{macrocode} % \end{environment} % \begin{environment}{flushright} % \changes{v0.47}{2018/01/26}{Fix: Line wrap at \HTML\ hyphen.} +% \changes{v0.84}{2020/04/14}{Added print mode.} % \begin{macrocode} -\renewenvironment*{flushright} +\newenvironment*{LWR@HTML@flushright} { \LWR@forcenewpage \ifbool{FormatWP} @@ -35183,13 +36265,16 @@ end -- not --version {\BlockClass{flushright}} } {\endBlockClass} + +\LWR@formattedenv{flushright} % \end{macrocode} % \end{environment} % \begin{environment}{flushleft} % \changes{v0.47}{2018/01/26}{Fix: Line wrap at \HTML\ hyphen.} +% \changes{v0.84}{2020/04/14}{Added print mode.} % \begin{macrocode} -\renewenvironment*{flushleft} +\newenvironment*{LWR@HTML@flushleft} { \LWR@forcenewpage \ifbool{FormatWP} @@ -35197,6 +36282,8 @@ end -- not --version {\BlockClass{flushleft}} } {\endBlockClass} + +\LWR@formattedenv{flushleft} % \end{macrocode} % \end{environment} @@ -35796,7 +36883,8 @@ end -- not --version \renewcommand*{\@@setcref}[2]{#1{\ref{#2}}{}{}} }{ \ifdefequal{\@@@setcref}{\LWR@orig@@@setcref}{% as of v0.21 - \renewcommand*{\@@@setcref}[2]{#1{\ref{#2}}{}{}} + \renewcommand*{\@@@setcref}[2]{% + #1{\ref{#2}}{}{}} }{ \PackageWarning{lwarp-cleveref}{ Unknown version of cleveref. @@ -35831,7 +36919,6 @@ end -- not --version } } } - % \end{macrocode} % \end{macro} @@ -35929,11 +37016,11 @@ end -- not --version % print or \HTML\ output, and thus do not use the \cs{LWR@formatted} system. % % \begin{macrocode} -\LetLtxMacro\LWR@orig@label\label -\RenewDocumentCommand{\label}{}{\LWR@new@label} +\LetLtxMacro\LWR@orig@label\label% includes memoir, before cleveref +\LetLtxMacro\label\LWR@new@label \LetLtxMacro\LWR@orig@pageref\pageref -\RenewDocumentCommand{\pageref}{}{\LWR@new@pageref} +\LetLtxMacro\pageref\LWR@new@pageref \end{warpHTML} % \end{macrocode} @@ -36721,6 +37808,7 @@ color:\LWR@origpound\LWR@tempcolor% + % \section{Direct formatting} % \label{sec:directformatting} % @@ -36753,8 +37841,6 @@ color:\LWR@origpound\LWR@tempcolor% } \LWR@formatted{emph} - -\newcommand{\LWR@null@emph}[1]{#1} % \end{macrocode} % \end{macro} @@ -36769,8 +37855,6 @@ color:\LWR@origpound\LWR@tempcolor% } \LWR@formatted{textmd} - -\newcommand{\LWR@null@textmd}[1]{#1} % \end{macrocode} % \end{macro} @@ -36785,8 +37869,6 @@ color:\LWR@origpound\LWR@tempcolor% } \LWR@formatted{textbf} - -\newcommand{\LWR@null@textbf}[1]{#1} % \end{macrocode} % \end{macro} @@ -36802,8 +37884,6 @@ color:\LWR@origpound\LWR@tempcolor% } \LWR@formatted{texteb} - -\newcommand{\LWR@null@texteb}[1]{#1} % \end{macrocode} % \end{macro} @@ -36819,8 +37899,6 @@ color:\LWR@origpound\LWR@tempcolor% } \LWR@formatted{textlg} - -\newcommand{\LWR@null@textlg}[1]{#1} % \end{macrocode} % \end{macro} @@ -36835,8 +37913,6 @@ color:\LWR@origpound\LWR@tempcolor% } \LWR@formatted{textrm} - -\newcommand{\LWR@null@textrm}[1]{#1} % \end{macrocode} % \end{macro} @@ -36851,8 +37927,6 @@ color:\LWR@origpound\LWR@tempcolor% } \LWR@formatted{textsf} - -\newcommand{\LWR@null@textsf}[1]{#1} % \end{macrocode} % \end{macro} @@ -36866,8 +37940,6 @@ color:\LWR@origpound\LWR@tempcolor% } \LWR@formatted{texttt} - -\newcommand{\LWR@null@texttt}[1]{#1} % \end{macrocode} % \end{macro} @@ -36883,8 +37955,6 @@ color:\LWR@origpound\LWR@tempcolor% } \LWR@formatted{textup} - -\newcommand{\LWR@null@textup}[1]{#1} % \end{macrocode} % \end{macro} @@ -36898,8 +37968,6 @@ color:\LWR@origpound\LWR@tempcolor% } \LWR@formatted{textit} - -\newcommand{\LWR@null@textit}[1]{#1} % \end{macrocode} % \end{macro} @@ -36914,8 +37982,6 @@ color:\LWR@origpound\LWR@tempcolor% } \LWR@formatted{textsc} - -\newcommand{\LWR@null@textsc}[1]{#1} % \end{macrocode} % \end{macro} @@ -36931,8 +37997,6 @@ color:\LWR@origpound\LWR@tempcolor% } \LWR@formatted{textulc} - -\newcommand{\LWR@null@textulc}[1]{#1} % \end{macrocode} % \end{macro} @@ -36957,8 +38021,6 @@ color:\LWR@origpound\LWR@tempcolor% } \LWR@formatted{textsi} - -\newcommand{\LWR@null@textsi}[1]{#1} % \end{macrocode} % \end{macro} @@ -36972,8 +38034,15 @@ color:\LWR@origpound\LWR@tempcolor% } \LWR@formatted{textsl} +% \end{macrocode} +% \end{macro} + -\newcommand{\LWR@null@textsl}[1]{#1} +% \begin{macro}{\textssc} \marg{text} +% \changes{v0.84}{2020/04/13}{Moved to core.} +% \begin{macrocode} +\newrobustcmd{\LWR@HTML@textssc}[1]{\textsc{#1}} +\LWR@formatted{textssc} % \end{macrocode} % \end{macro} @@ -36983,242 +38052,33 @@ color:\LWR@origpound\LWR@tempcolor% \DeclareRobustCommand{\LWR@HTML@textnormal}[1]{\textmd{\textrm{\textup{#1}}}} \LWR@formatted{textnormal} - -\newcommand{\LWR@null@textnormal}[1]{#1} % \end{macrocode} % \end{macro} - - -% \begin{macrocode} -\newcommand{\LWR@null@rmfamily}{} -\newcommand{\LWR@null@sffamily}{} -\newcommand{\LWR@null@ttfamily}{} -\newcommand{\LWR@null@bfseries}{} -\newcommand{\LWR@null@ebweight}{} -\newcommand{\LWR@null@lgweight}{} -\newcommand{\LWR@null@mdseries}{} -\newcommand{\LWR@null@upshape}{} -\newcommand{\LWR@null@slshape}{} -\newcommand{\LWR@null@scshape}{} -\newcommand{\LWR@null@itshape}{} -\newcommand{\LWR@null@normalfont}{} -% \end{macrocode} -% -% \changes{v0.62}{2018/11/17}{Fix for \cs{em}.} -% \begin{macrocode} -\newcommand{\LWR@null@em}{} -% \end{macrocode} - - -% \begin{macro}{\LWR@nullfonts} Removes formatting during filename operations, -% file references, and \HTML\ comments. -% -% \textred{Use only inside a group.}\watchout -% -% The following are \emph{not} made robust, -% since they must be expanded to their nullified versions. -% -% \changes{v0.34}{2017/08/05}{Improved font control.} -% \changes{v0.36}{2017/08/15}{Fix: Filenames while using \brand{MathJax}.} -% \changes{v0.40}{2017/09/21}{Fix: Long arguments for expandable command.} -% \changes{v0.43}{2017/10/31}{Fix: Nullify dollar inside filesnames.} -% \changes{v0.48}{2018/02/04}{Fix: \cs{newline} in title.} -% \changes{v0.65}{2018/12/09}{Added \cs{textsi}.} -% \begin{macrocode} -\catcode`\$=\active% redefining $ below -\catcode`\_=12% redefining \_ below -\newcommand*{\LWR@nullfonts}{% -\LetLtxMacro\emph\LWR@null@emph% -\LetLtxMacro\textmd\LWR@null@textmd% -\LetLtxMacro\textbf\LWR@null@textbf% -\LetLtxMacro\textrm\LWR@null@textrm% -\LetLtxMacro\textsf\LWR@null@textsf% -\LetLtxMacro\texttt\LWR@null@texttt% -\LetLtxMacro\textup\LWR@null@textup% -\LetLtxMacro\textit\LWR@null@textit% -\LetLtxMacro\textsc\LWR@null@textsc% -\LetLtxMacro\textulc\LWR@null@textulc% -\LetLtxMacro\textsi\LWR@null@textsi% -\LetLtxMacro\textsl\LWR@null@textsl% -\LetLtxMacro\textnormal\LWR@null@textnormal% -\LetLtxMacro\rmfamily\LWR@null@rmfamily% -\LetLtxMacro\sffamily\LWR@null@sffamily% -\LetLtxMacro\ttfamily\LWR@null@ttfamily% -\LetLtxMacro\bfseries\LWR@null@bfseries% -\LetLtxMacro\mdseries\LWR@null@mdseries% -\LetLtxMacro\upshape\LWR@null@upshape% -\LetLtxMacro\slshape\LWR@null@slshape% -\LetLtxMacro\scshape\LWR@null@scshape% -\LetLtxMacro\ulcshape\LWR@null@ulcshape% -% \end{macrocode} -% \changes{v0.65}{2018/12/10}{Added \cs{sishape}.} -% \begin{macrocode} -\LetLtxMacro\sishape\LWR@null@sishape% -% \end{macrocode} % \begin{macrocode} -\LetLtxMacro\itshape\LWR@null@itshape% -\LetLtxMacro\normalfont\LWR@null@normalfont% -\LetLtxMacro\em\LWR@null@em% -% \end{macrocode} -% Various built-in symbols. -% \changes{v0.67}{2019/02/13}{Add'l symbols.} -% \begin{macrocode} -\renewcommand*{\$}{-}% -\renewcommand*{\%}{-}% -\renewcommand*{\_}{-}% -\renewcommand*{\}}{-}% -\renewcommand*{\{}{-}% -\renewcommand*{\&}{and}% -\renewcommand*{\#}{-}% -\renewcommand*{\,}{-}% -\renewcommand*{~}{-}% -\renewcommand*{\^}[1]{-}% -\renewcommand*{\~}[1]{-}% -\renewcommand*{\newline}{-}% -\renewcommand*{\textasciicircum}{-}% -\renewcommand*{\textasciitilde}{-}% -\renewcommand*{\textasteriskcentered}{-}% -\renewcommand*{\textbackslash}{-}% -\renewcommand*{\textbar}{-}% -\renewcommand*{\textbardbl}{-}% -\renewcommand*{\textbigcircle}{-}% -\renewcommand*{\textbraceleft}{-}% -\renewcommand*{\textbraceright}{-}% -\renewcommand*{\textbullet}{-}% -\renewcommand*{\textcopyright}{-}% -\renewcommand*{\textdagger}{-}% -\renewcommand*{\textdaggerdbl}{-}% -\renewcommand*{\textdollar}{-}% -\renewcommand*{\textellipsis}{-}% -\renewcommand*{\textemdash}{-}% -\renewcommand*{\textendash}{-}% -\renewcommand*{\textexclamdown}{-}% -\renewcommand*{\textgreater}{-}% -\renewcommand*{\textless}{-}% -\renewcommand*{\textordfeminine}{-}% -\renewcommand*{\textordmasculine}{-}% -\renewcommand*{\textparagraph}{-}% -\renewcommand*{\textperiodcentered}{-}% -\renewcommand*{\textpertenthousand}{-}% -\renewcommand*{\textperthousand}{-}% -\renewcommand*{\textquestiondown}{-}% -\renewcommand*{\textquotedblleft}{-}% -\renewcommand*{\textquotedblright}{-}% -\renewcommand*{\textquoteleft}{-}% -\renewcommand*{\textquoteright}{-}% -\renewcommand*{\textregistered}{-}% -\renewcommand*{\textsection}{-}% -\renewcommand*{\textsterling}{-}% -\renewcommand*{\texttrademark}{-}% -\renewcommand*{\textunderscore}{-}% -\renewcommand*{\textvisiblespace}{-}% -\renewcommand*{\copyright}{-}% -\renewcommand*{\dag}{-}% -\renewcommand*{\ddag}{-}% -\renewcommand*{\dots}{-}% -\renewcommand*{\P}{-}% -\renewcommand*{\pounds}{-}% -\renewcommand*{\S}{-}% -\renewcommand*{\aa}{a}% -\renewcommand*{\AA}{A}% -\renewcommand*{\AE}{AE}% -\renewcommand*{\ae}{ae}% -\renewcommand*{\dh}{d}% -\renewcommand*{\DH}{D}% -\renewcommand*{\DJ}{D}% -\renewcommand*{\dj}{d}% -\renewcommand*{\IJ}{IJ}% -\renewcommand*{\ij}{ij}% -\renewcommand*{\L}{L}% -\renewcommand*{\l}{l}% -\renewcommand*{\NG}{NG}% -\renewcommand*{\ng}{ng}% -\renewcommand*{\O}{O}% -\renewcommand*{\o}{o}% -\renewcommand*{\oe}{oe}% -\renewcommand*{\OE}{OE}% -\renewcommand*{\ss}{ss}% -\renewcommand*{\SS}{SS}% -\renewcommand*{\th}{th}% -\renewcommand*{\TH}{TH}% -\renewcommand*{\guillemotleft}{}% -\renewcommand*{\guilsinglleft}{}% -\renewcommand*{\quotedblbase}{}% -\renewcommand*{\textquotedbl}{}% -\renewcommand*{\guillemotright}{}% -\renewcommand*{\guilsinglright}{}% -\renewcommand*{\quotesinglbase}{}% -% \end{macrocode} -% \begin{macrocode} -\renewcommand*{\HTMLunicode}[1]{}% -\renewcommand*{\HTMLentity}[1]{}% -% \end{macrocode} -% \begin{macrocode} -\renewcommand{\textsuperscript}[1]{##1}% -\renewcommand{\textsubscript}[1]{##1}% -% \end{macrocode} -% \changes{v0.50}{2018/02/20}{Fix: \cs{underline} in sectioning file name.} -% \begin{macrocode} -\renewcommand{\underline}[1]{##1}% -% \end{macrocode} -% \changes{v0.73}{2019/06/24}{Fix: \cs{hspace} in sectioning file name.} -% \begin{macrocode} -\RenewDocumentCommand{\hspace}{s m}{}% -% \end{macrocode} -% \begin{macrocode} -\RenewDocumentCommand{\LWR@htmlspanclass}{o m +m}{##3}% -\DeclareExpandableDocumentCommand{\InlineClass}{D{(}{)}{} o m +m}{##4}% -% \end{macrocode} -% Nullify math macros. -% \changes{v0.55}{2018/04/24}{Removed extraneous space which appeared in file links.} -% \begin{macrocode} -\def\(##1\){}% -\def\[##1\]{}% -\RenewDocumentCommand{\LWR@subsingledollar}{s m m m}{}% -\protected\def$##1${}% -% \end{macrocode} -% Nullify logos: -% \changes{v0.66}{2019/02/01}{Logos.} -% \begin{macrocode} -\renewcommand*{\TeX}{TeX}% -\renewcommand*{\LaTeX}{LaTeX}% -\renewcommand*{\LaTeXe}{LaTeX2e}% -\renewcommand*{\LuaTeX}{LuaTeX}% -\renewcommand*{\LuaLaTeX}{LuaLaTeX}% -\renewcommand*{\XeTeX}{XeTeX}% -\renewcommand*{\XeLaTeX}{XeLaTeX}% -\renewcommand*{\ConTeXt}{ConTeXt}% -\renewcommand*{\BibTeX}{BibTeX}% -\renewcommand*{\MakeIndex}{MakeIndex}% -\renewcommand*{\AmS}{AmS}% -\renewcommand*{\MiKTeX}{MiKTeX}% -\renewcommand*{\LyX}{LyX}% -% \end{macrocode} -% Use the simpler form with \cs{texorpdfstring}: -% \changes{v0.52}{2018/03/31}{Fix: \cs{texorpdfstring} in section names.} -% \begin{macrocode} -\let\texorpdfstring\relax% -\newcommand{\texorpdfstring}[2]{##2}% +\FilenameNullify{% + \LetLtxMacro\emph\@firstofone% + \LetLtxMacro\textmd\@firstofone% + \LetLtxMacro\textbf\@firstofone% + \LetLtxMacro\texteb\@firstofone% + \LetLtxMacro\textlg\@firstofone% + \LetLtxMacro\textrm\@firstofone% + \LetLtxMacro\textsf\@firstofone% + \LetLtxMacro\texttt\@firstofone% + \LetLtxMacro\textup\@firstofone% + \LetLtxMacro\textit\@firstofone% + \LetLtxMacro\textsc\@firstofone% + \LetLtxMacro\textulc\@firstofone% + \LetLtxMacro\textsi\@firstofone% + \LetLtxMacro\textsl\@firstofone% + \LetLtxMacro\textssc\@firstofone% + \LetLtxMacro\textnormal\@firstofone% } -\catcode`\$=3% -\catcode`\_=8% % \end{macrocode} -% \end{macro} % % -% \begin{macro}{\FilenameNullify} \marg{redefinitions} % -% Adds more nullifying definitions for filename generation. -% -% \changes{v0.67}{2019/02/13}{Added.} -% \begin{macrocode} -\newcommand*{\FilenameNullify}[1]{% - \appto{\LWR@nullfonts}{#1}% -} -% \end{macrocode} -% \end{macro} % % % \changes{v0.48}{2018/02/02}{Improved font control.} @@ -37346,21 +38206,21 @@ color:\LWR@origpound\LWR@tempcolor% % \begin{macro}{\upshape} % \begin{macrocode} \newrobustcmd*{\LWR@HTML@upshape}{\renewcommand*{\LWR@f@shape}{up}} -\LWR@formatted{upshape} +\AtBeginDocument{\LWR@formatted{upshape}} % \end{macrocode} % \end{macro} % \begin{macro}{\itshape} % \begin{macrocode} \newrobustcmd*{\LWR@HTML@itshape}{\renewcommand*{\LWR@f@shape}{it}} -\LWR@formatted{itshape} +\AtBeginDocument{\LWR@formatted{itshape}} % \end{macrocode} % \end{macro} % \begin{macro}{\scshape} % \begin{macrocode} \newrobustcmd*{\LWR@HTML@scshape}{\renewcommand*{\LWR@f@shapecaps}{sc}} -\LWR@formatted{scshape} +\AtBeginDocument{\LWR@formatted{scshape}} % \end{macrocode} % \end{macro} @@ -37371,7 +38231,7 @@ color:\LWR@origpound\LWR@tempcolor% \LetLtxMacro\ulcshape\upshape }{} \newrobustcmd*{\LWR@HTML@ulcshape}{\renewcommand*{\LWR@f@shapecaps}{ulc}} -\LWR@formatted{ulcshape} +\AtBeginDocument{\LWR@formatted{ulcshape}} % \end{macrocode} % \end{macro} @@ -37385,7 +38245,7 @@ color:\LWR@origpound\LWR@tempcolor% \renewcommand*{\LWR@f@shape}{it} \renewcommand*{\LWR@f@shapecaps}{sc}% } -\LWR@formatted{sishape} +\AtBeginDocument{\LWR@formatted{sishape}} % \end{macrocode} % \end{macro} @@ -37393,7 +38253,15 @@ color:\LWR@origpound\LWR@tempcolor% % \changes{v0.62}{2018/11/11}{Added.} % \begin{macrocode} \newrobustcmd*{\LWR@HTML@slshape}{\renewcommand*{\LWR@f@shape}{sl}} -\LWR@formatted{slshape} +\AtBeginDocument{\LWR@formatted{slshape}} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\sscshape} +% \changes{v0.84}{2020/04/13}{Moved to core.} +% \begin{macrocode} +\newrobustcmd{\LWR@HTML@sscshape}{\LWR@HTML@scshape} +\AtBeginDocument{\LWR@formatted{sscshape}} % \end{macrocode} % \end{macro} @@ -37407,6 +38275,27 @@ color:\LWR@origpound\LWR@tempcolor% +% \begin{macrocode} +\FilenameNullify{% + \LetLtxMacro\rmfamily\@empty% + \LetLtxMacro\sffamily\@empty% + \LetLtxMacro\ttfamily\@empty% + \LetLtxMacro\bfseries\@empty% + \LetLtxMacro\ebweight\@empty% + \LetLtxMacro\lgweight\@empty% + \LetLtxMacro\mdseries\@empty% + \LetLtxMacro\upshape\@empty% + \LetLtxMacro\slshape\@empty% + \LetLtxMacro\sishape\@empty% + \LetLtxMacro\scshape\@empty% + \LetLtxMacro\itshape\@empty% + \LetLtxMacro\ulcshape\@empty% + \LetLtxMacro\sscshape\@empty% + \LetLtxMacro\normalfont\@empty% +} +% \end{macrocode} + + % \begin{macro}{\sp} \marg{text} % For \pkg{siunitx}. Must work in math mode. @@ -37426,33 +38315,37 @@ color:\LWR@origpound\LWR@tempcolor% % \begin{macro}{\textsuperscript} \marg{text} % \changes{v0.50}{2018/02/20}{Robustify macros.} +% \changes{v0.84}{2020/04/13}{Use \cs{LWR@formatted}.} % \begin{macrocode} -\renewrobustcmd{\textsuperscript}[1]{\LWR@htmlspan{sup}{#1}} +\newrobustcmd{\LWR@HTML@textsuperscript}[1]{\LWR@htmlspan{sup}{#1}} +\LWR@formatted{textsuperscript} % \end{macrocode} % \end{macro} % \begin{macro}{\@textsuperscript} \marg{text} % \changes{v0.42}{2017/10/16}{Added.} +% \changes{v0.84}{2020/04/13}{Use \cs{LWR@formatted}.} % \begin{macrocode} -\renewcommand{\@textsuperscript}[1]{\LWR@htmlspan{sup}{#1}} +\newcommand{\LWR@HTML@@textsuperscript}[1]{\LWR@htmlspan{sup}{#1}} +\LWR@formatted{@textsuperscript} % \end{macrocode} % \end{macro} % \begin{macro}{\textsubscript} \marg{text} % \changes{v0.50}{2018/02/20}{Robustify macros.} +% \changes{v0.84}{2020/04/13}{Use \cs{LWR@formatted}. No longer \cs{AtBeginDocument}.} % \begin{macrocode} -\AtBeginDocument{ -\renewrobustcmd{\textsubscript}[1]{\LWR@htmlspan{sub}{#1}} -} + \newrobustcmd{\LWR@HTML@textsubscript}[1]{\LWR@htmlspan{sub}{#1}} + \LWR@formatted{textsubscript} % \end{macrocode} % \end{macro} % \begin{macro}{\@textsubscript} \marg{text} % \changes{v0.42}{2017/10/16}{Added.} +% \changes{v0.84}{2020/04/13}{Use \cs{LWR@formatted}. No longer \cs{AtBeginDocument}.} % \begin{macrocode} -\AtBeginDocument{ -\renewcommand{\@textsubscript}[1]{\LWR@htmlspan{sub}{#1}} -} + \newcommand{\LWR@HTML@@textsubscript}[1]{\LWR@htmlspan{sub}{#1}} + \LWR@formatted{@textsubscript} % \end{macrocode} % \end{macro} @@ -37777,7 +38670,7 @@ color:\LWR@origpound\LWR@tempcolor% % Placed just before \cs{hspace}, \cs{quad}, or \cs{qquad}'s \HTML\ output. % \begin{macrocode} \newcommand*{\LWR@minipagestartpars}{% -\ifbool{LWR@minipagethispar}{\LWR@startpars}{}% + \ifbool{LWR@minipagethispar}{\LWR@startpars}{}% } % \end{macrocode} % \end{macro} @@ -37786,7 +38679,7 @@ color:\LWR@origpound\LWR@tempcolor% % Placed just after \cs{hspace}, \cs{quad}, or \cs{qquad}'s \HTML\ output. % \begin{macrocode} \newcommand*{\LWR@minipagestoppars}{% -\ifbool{LWR@minipagethispar}{\LWR@stoppars}{}% + \ifbool{LWR@minipagethispar}{\LWR@stoppars}{}% } % \end{macrocode} % \end{macro} @@ -37799,9 +38692,9 @@ color:\LWR@origpound\LWR@tempcolor% % \changes{v0.65}{2018/12/22}{Changed to Unicode EM SPACE.} % \begin{macrocode} \renewrobustcmd*{\quad}{% -\LWR@minipagestoppars% -\HTMLunicode{2003}% -\LWR@minipagestartpars% + \LWR@minipagestoppars% + \HTMLunicode{2003}% + \LWR@minipagestartpars% } % \end{macrocode} % \end{macro} @@ -37820,9 +38713,9 @@ color:\LWR@origpound\LWR@tempcolor% % \changes{v0.65}{2018/12/22}{Changed to Unicode EN SPACE.} % \begin{macrocode} \renewrobustcmd*{\enskip}{% -\LWR@minipagestoppars% -\HTMLunicode{2002}% -\LWR@minipagestartpars% + \LWR@minipagestoppars% + \HTMLunicode{2002}% + \LWR@minipagestartpars% } % \end{macrocode} % \end{macro} @@ -38164,11 +39057,12 @@ color:\LWR@origpound\LWR@tempcolor% % Ignores \cs{ForceHTMLTOC}. % \changes{v0.55}{2018/04/26}{Fix: \cs{ForceHTMLTOC} with \cs{phantomsection}.} % \begin{macrocode} +\newcounter{LWR@phantomsection} \DeclareDocumentCommand{\phantomsection}{}{% -\begingroup% -\boolfalse{LWR@forcinghtmltoc}% -\section*{}% -\endgroup% + \begingroup% + \boolfalse{LWR@forcinghtmltoc}% + \section*{}% + \endgroup% } % \end{macrocode} % \end{macro} @@ -38202,23 +39096,34 @@ color:\LWR@origpound\LWR@tempcolor% % % % \changes{v0.62}{2018/10/23}{Logos: Fix for \XeTeX\ logo if \pkg{graphics} is not loaded.} +% \changes{v0.84}{2020/04/06}{Logos: Only warn about \pkg{graphics} if actually use \cs{Xe}.} % % \codeall % \begin{macrocode} \begin{warpall} +\newbool{LWR@warnXe} +\boolfalse{LWR@warnXe} + \newrobustcmd*{\Xe} - {X\hspace{-.1667em}\raisebox{-.5ex}{E}} + {% + X\hspace{-.1667em}\raisebox{-.5ex}{E}% + \global\booltrue{LWR@warnXe}% + } \AtBeginDocument{ -\@ifpackageloaded{graphics}{ - \@ifpackageloaded{metalogo}{}{ - \renewrobustcmd*{\Xe} - {X\hspace{-.1667em}\raisebox{-.5ex}{\reflectbox{E}}} - } -}{ - \PackageWarningNoLine{lwarp}{Load graphicx or graphics - for improved XeTeX logo} + \@ifpackageloaded{graphics}{ + \@ifpackageloaded{metalogo}{}{ + \renewrobustcmd*{\Xe} + {X\hspace{-.1667em}\raisebox{-.5ex}{\reflectbox{E}}} + } + }{} } + +\AtEndDocument{ + \ifbool{LWR@warnXe}{ + \PackageWarningNoLine{lwarp}{Load graphicx or graphics + for improved XeTeX logo} + }{} } \providerobustcmd*{\XeTeX}{\mbox{\Xe\hspace{-.125em}\TeX}} @@ -38446,7 +39351,19 @@ color:\LWR@origpound\LWR@tempcolor% % \end{macrocode} - +% \section{Loading \pkg{textcomp} patches} +% +% \pkg{textcomp} has now been integrated into the \LaTeX\ core, +% so its patches are loaded now. +% +% \codehtml +% +% \changes{v0.84}{2020/04/14}{Fixed: \pkg{textcomp} now in kernel.} +% \begin{macrocode} +\begin{warpHTML} +\RequirePackage{lwarp-textcomp} +\end{warpHTML} +% \end{macrocode} % \section{Loading \brand{Koma-script} class patches} % @@ -38473,22 +39390,25 @@ color:\LWR@origpound\LWR@tempcolor% % Load patches to \pkg{memoir}. % % \changes{v0.45}{2017/12/03}{\pkg{memoir}: Added.} +% \changes{v0.84}{2020/03/31}{\pkg{memoir}: Preloads \pkg{xcolor}.} % -% \codehtml +% \codeall % \begin{macrocode} -\begin{warpHTML} +\begin{warpprint} +\@ifclassloaded{memoir}{\LWR@origRequirePackage{xcolor}}{} +\end{warpprint} % \end{macrocode} -% + +% \codehtml % \begin{macrocode} +\begin{warpHTML} \@ifclassloaded{memoir}{\RequirePackage{lwarp-patch-memoir}}{} -% \end{macrocode} -% -% \begin{macrocode} \end{warpHTML} % \end{macrocode} + % \section{\pkg{ut*} class patches} % % Load patches to \pkg{uj*} and \pkg{ut*} classes, as well as \pkg{ltj*} classes. @@ -39050,33 +39970,37 @@ color:\LWR@origpound\LWR@tempcolor% \InlineClass{abstractrunintitle}{\abstractname}% \@bslabeldelim}% } - +% \end{macrocode} +% +% \changes{v0.84}{2020/03/28}{\pkg{abstract}: Updated for \pkg{memoir}.} +% \begin{macrocode} \@ifclassloaded{memoir} { \renewenvironment{abstract}{% -% \titlepage - \null\vfil - \@beginparpenalty\@lowpenalty +% % \titlepage +% \null\vfil +% \@beginparpenalty\@lowpenalty + \setup@bstract \if@bsrunin \else - \if@bsstyle - \abstitlestyle{\BlockClassSingle{abstracttitle}{\abstractname}} - \else +% \if@bsstyle +% \abstitlestyle{\BlockClassSingle{abstracttitle}{\abstractname}} +% \else \ifnumber@bs \num@bs \else \begin{\absnamepos}% \abstractnamefont \BlockClassSingle{abstracttitle}{\abstractname} - \@endparpenalty\@M +% \@endparpenalty\@M \end\absnamepos% -%% \vspace{\abstitleskip}% + \vspace{\abstitleskip}% \fi - \fi - \vspace{\abstitleskip}% +% \fi +% \vspace{\abstitleskip}% \fi \put@bsintoc% \begin{@bstr@ctlist}\if@bsrunin\@bsrunintitle\fi\abstracttextfont}% - {\par\end{@bstr@ctlist}\vfil\null%\endtitlepage + {\par\end{@bstr@ctlist}%\vfil\null%\endtitlepage } }{% not memoir \if@titlepage @@ -39601,8 +40525,8 @@ color:\LWR@origpound\LWR@tempcolor% % \changes{v0.47}{2018/01/26}{\pkg{adjmulticol}: Fix: Line wrap at \HTML\ hyphen.} % \begin{macrocode} \BlockClass[% -\LWR@print@mbox{margin-left:\LWR@printlength{\LWR@templengthone}} ; % -\LWR@print@mbox{margin-right:\LWR@printlength{\LWR@templengthtwo}}% + \LWR@print@mbox{margin-left:\LWR@printlength{\LWR@templengthone}} ; % + \LWR@print@mbox{margin-right:\LWR@printlength{\LWR@templengthtwo}}% ]{\LWR@mcolstype}% } {\endBlockClass} @@ -39885,37 +40809,37 @@ color:\LWR@origpound\LWR@tempcolor% % and turns off line numbering while creating the \element{div} tags: % \begin{macrocode} \renewcommand{\algocf@Vline}[1]{% -\boolfalse{LWR@algocf@dopars}% -\begin{BlockClass}{alg2evline} -\booltrue{LWR@algocf@dopars}% -#1 -\boolfalse{LWR@algocf@dopars}% -\end{BlockClass} -\booltrue{LWR@algocf@dopars}% + \boolfalse{LWR@algocf@dopars}% + \begin{BlockClass}{alg2evline} + \booltrue{LWR@algocf@dopars}% + #1 + \boolfalse{LWR@algocf@dopars}% + \end{BlockClass} + \booltrue{LWR@algocf@dopars}% } % \end{macrocode} % % \begin{macrocode} \renewcommand{\algocf@Vsline}[1]{% -\boolfalse{LWR@algocf@dopars}% -\begin{BlockClass}{alg2evsline} -\booltrue{LWR@algocf@dopars}% -#1 -\boolfalse{LWR@algocf@dopars}% -\end{BlockClass} -\booltrue{LWR@algocf@dopars}% + \boolfalse{LWR@algocf@dopars}% + \begin{BlockClass}{alg2evsline} + \booltrue{LWR@algocf@dopars}% + #1 + \boolfalse{LWR@algocf@dopars}% + \end{BlockClass} + \booltrue{LWR@algocf@dopars}% } % \end{macrocode} % % \begin{macrocode} \renewcommand{\algocf@Noline}[1]{% -\boolfalse{LWR@algocf@dopars}% -\begin{BlockClass}{alg2enoline} -\booltrue{LWR@algocf@dopars}% -#1 -\boolfalse{LWR@algocf@dopars}% -\end{BlockClass} -\booltrue{LWR@algocf@dopars}% + \boolfalse{LWR@algocf@dopars}% + \begin{BlockClass}{alg2enoline} + \booltrue{LWR@algocf@dopars}% + #1 + \boolfalse{LWR@algocf@dopars}% + \end{BlockClass} + \booltrue{LWR@algocf@dopars}% } % \end{macrocode} % @@ -40024,6 +40948,7 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"% % \pkg{alltt} is patched for use by \pkg{lwarp}. % % \changes{v0.20}{2017/01/11}{\pkg{alltt}: Added.} +% \changes{v0.84}{2020/04/16}{\pkg{alltt}: Added print mode.} % % \codehtml % @@ -40035,11 +40960,19 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"% \AfterEndPreamble{ \LWR@traceinfo{Patching alltt.} \AtBeginEnvironment{alltt}{% -\LWR@forcenewpage -\LWR@atbeginverbatim{3}{alltt}% + \ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}% + {}% + {% + \LWR@forcenewpage + \LWR@atbeginverbatim{3}{alltt}% + }% } \AfterEndEnvironment{alltt}{% - \LWR@afterendverbatim{2}% + \ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}% + {}% + {% + \LWR@afterendverbatim{2}% + }% } } % \end{macrocode} @@ -40374,10 +41307,13 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"% % \begin{macrocode} \@ifpackageloaded{mdframed}{ \PackageError{lwarp} - {Package mdframed must be loaded after package amsthm} {% - Move \detokenize{\usepackage}{amsthm} before - \detokenize{\usepackage}{mdframed}.\MessageBreak + Package mdframed must be loaded after package amsthm.\MessageBreak + Enter 'H' for solutions% + } + {% + Move ``\protect\usepackage{amsthm}'' before + ``\protect\usepackage{mdframed}''.\MessageBreak Package amsthm may be loaded by something else,\MessageBreak which must also be moved before mdframed.% } @@ -40423,7 +41359,9 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"% \else % numbered theorem, need to check for optional arg \def\@tempa{\@oparg{\@ynthm{#2}}[]}% \fi - \AtBeginEnvironment{#2}{\edef\LWR@thisthmstyle{\@nameuse{LWR@thmstyle#2}}}% lwarp + \AtBeginEnvironment{#2}{% + \edef\LWR@thisthmstyle{\@nameuse{LWR@thmstyle#2}}% + }% lwarp }% \@tempa } @@ -40432,15 +41370,21 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"% % Patched to enclose with \CSS: % \begin{macrocode} \newcommand{\LWR@haveamsthmname}{ -\renewcommand{\thmname}[1]{\InlineClass{amsthmname\LWR@thisthmstyle}{##1}} + \renewcommand{\thmname}[1]{% + \InlineClass{amsthmname\LWR@thisthmstyle}{##1}% + } } \newcommand{\LWR@haveamsthmnumber}{ -\renewcommand{\thmnumber}[1]{\InlineClass{amsthmnumber\LWR@thisthmstyle}{##1}} + \renewcommand{\thmnumber}[1]{% + \InlineClass{amsthmnumber\LWR@thisthmstyle}{##1}% + } } \newcommand{\LWR@haveamsthmnote}{ -\renewcommand{\thmnote}[1]{\InlineClass{amsthmnote\LWR@thisthmstyle}{##1}} + \renewcommand{\thmnote}[1]{% + \InlineClass{amsthmnote\LWR@thisthmstyle}{##1}% + } } \LWR@haveamsthmname @@ -40448,15 +41392,22 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"% \LWR@haveamsthmnote % \end{macrocode} % -% Patches for \CSS: +% Patched for \CSS: % \begin{macrocode} \def\@begintheorem#1#2[#3]{% +% \end{macrocode} +% \changes{v0.84}{2020/04/07}{\pkg{amsthm}: Fix for \cs{nameref}.} +% \begin{macrocode} + \GetTitleString{#3}% lwarp + \let\@currentlabelname\GetTitleStringResult% lwarp +% \end{macrocode} +% \begin{macrocode} \item[ % \deferred@thm@head{ % \the\thm@headfont \thm@indent - \@ifempty{#1}{\let\thmname\@gobble}{\LWR@haveamsthmname}% lwarp - \@ifempty{#2}{\let\thmnumber\@gobble}{\LWR@haveamsthmnumber}% lwarp - \@ifempty{#3}{\let\thmnote\@gobble}{\LWR@haveamsthmnote}% lwarp + \@ifempty{#1}{\let\thmname\@gobble}{\LWR@haveamsthmname}% lwarp + \@ifempty{#2}{\let\thmnumber\@gobble}{\LWR@haveamsthmnumber}% lwarp + \@ifempty{#3}{\let\thmnote\@gobble}{\LWR@haveamsthmnote}% lwarp \thm@swap\swappedhead\thmhead{#1}{#2}{#3}% \the\thm@headpunct~ \thmheadnl % possibly a newline. @@ -40472,8 +41423,8 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"% \def\@thm#1#2#3{% \ifhmode\unskip\unskip\par\fi \normalfont - \LWR@forcenewpage% lwarp - \BlockClass{amsthmbody\LWR@thisthmstyle}% lwarp + \LWR@forcenewpage% lwarp + \BlockClass{amsthmbody\LWR@thisthmstyle}% lwarp \trivlist \let\thmheadnl\relax \let\thm@swap\@gobble @@ -40501,8 +41452,8 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"% \def\cref@thmoptarg[#1]#2#3#4{% \ifhmode\unskip\unskip\par\fi% \normalfont% - \LWR@forcenewpage% lwarp - \BlockClass{amsthmbody\LWR@thisthmstyle}% lwarp + \LWR@forcenewpage% lwarp + \BlockClass{amsthmbody\LWR@thisthmstyle}% lwarp \trivlist% \let\thmheadnl\relax% \let\thm@swap\@gobble% @@ -40543,9 +41494,9 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"% \def\Box{\text{\HTMLunicode{25A1}}}% UTF-8 white box \appto\LWR@restoreorigformatting{% -\LetLtxMacro\openbox\LWR@orig@openbox% -\LetLtxMacro\blacksquare\LWR@orig@blacksquare% -\LetLtxMacro\Box\LWR@orig@Box% + \LetLtxMacro\openbox\LWR@orig@openbox% + \LetLtxMacro\blacksquare\LWR@orig@blacksquare% + \LetLtxMacro\Box\LWR@orig@Box% }% appto }{}% @ifundefined }% AtBeginDocument @@ -41382,9 +42333,12 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"% % Require that \pkg{authblk} be loaded before \pkg{titling}: % \begin{macrocode} \@ifpackageloaded{titling}{ -\PackageError{lwarp-authblk} -{Package authblk must be loaded before titling} -{Titling appends authblk's author macro, so authblk must be loaded first.} + \PackageError{lwarp-authblk} + {Package authblk must be loaded before titling} + {% + Titling appends authblk's author macro, + so authblk must be loaded first.% + } } {} % \end{macrocode} @@ -41815,6 +42769,7 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"% % generating \HTML\ output. % % \changes{v0.45}{2018/01/14}{\pkg{backref}: Added.} +% \changes{v0.84}{2020/04/07}{\pkg{backref}: Fixed from \pkg{lwarp} v0.72 changes.} % % \codehtml % @@ -41824,7 +42779,13 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"% % Force the \optn{hyperref} option: % \begin{macrocode} -\def\backref{}\let\backrefxxx\hyper@section@backref +\def\backref{} + +\long\def\hyper@section@backref#1#2#3{% + \ref{#3}% +} + +\let\backrefxxx\hyper@section@backref % \end{macrocode} % \iffalse @@ -42191,7 +43152,12 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"% }{} % \end{macrocode} % +% \pkg{hyperref} emulation is loaded \cs{AtBeginDocument} to avoid an +% options clash. +% \changes{v0.84}{2020/04/24}{\pkg{biblatex}: Fixed: Requires \pkg{hyperref}.} % \begin{macrocode} +\AtBeginDocument{\RequirePackage{hyperref}} + \LWR@ProvidesPackagePass{biblatex}[2018/03/04] % \end{macrocode} % @@ -42861,27 +43827,27 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"% % % % \iffalse -%<*boxedminipage2e> +%<*boxedminipage> % \fi -% \part{lwarp-boxedminipage2e.sty} +% \part{lwarp-boxedminipage.sty} -% \section{boxedminipage2e} +% \section{boxedminipage} % % \credits{Scott Pakin} % -% \DescribePackage{boxedminipage2e} -% \pkg{boxedminipage2e} is emulated for \HTML, and used as-is for \env{lateximage}s. +% \DescribePackage{boxedminipage} +% \pkg{boxedminipage} is emulated for \HTML, and used as-is for \env{lateximage}s. % % \changes{v0.34}{2017/07/26}{\pkg{boxedminipage2e}: Added.} % \changes{v0.72}{2019/06/07}{\pkg{boxedminipage2e}: Added support for \env{lateximage}s.} % \changes{v0.73}{2019/06/24}{\pkg{boxedminipage2e}: Fix: Paragraph tags.} +% \changes{v0.84}{2020/04/23}{\pkg{boxedminipage}: Renamed from \pkg{boxedminipage2e} per author.} % % \codehtml % -% Discard all options for \pkg{lwarp-boxedminipage2e}: % \begin{macrocode} -\LWR@ProvidesPackagePass{boxedminipage2e}[2015/03/09] +\LWR@ProvidesPackagePass{boxedminipage}[2020/04/19] % \end{macrocode} % \begin{macrocode} @@ -42899,6 +43865,34 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"% % \end{macrocode} % \iffalse +%</boxedminipage> +% \fi +% +% +% +% \iffalse +%<*boxedminipage2e> +% \fi + +% \part{lwarp-boxedminipage2e.sty} + +% \section{boxedminipage2e} +% +% \credits{Scott Pakin} +% +% \DescribePackage{boxedminipage2e} +% \pkg{boxedminipage2e} has been renamed \pkg{boxedminipage} by the author. +% +% \changes{v0.84}{2020/04/23}{\pkg{boxedminipage}: Renamed from \pkg{boxedminipage2e} per author.} +% +% \codehtml +% +% Automatically loads \pkg{boxedminipage}: +% \begin{macrocode} +\LWR@ProvidesPackagePass{boxedminipage2e} +% \end{macrocode} + +% \iffalse %</boxedminipage2e> % \fi % @@ -43317,126 +44311,76 @@ s% % \pkg{caption} is patched for use by \pkg{lwarp}. % % \changes{v0.47}{2018/01/25}{\pkg{caption}: Added.} +% \changes{v0.78}{2019/10/30}{\pkg{caption}: Added warning regarding passing options.} +% \changes{v0.84}{2020/04/16}{\pkg{caption}: Simplified.} +% \changes{v0.84}{2020/04/20}{\pkg{caption}: Non-width \cs{parbox}es.} % % \codehtml % -% \changes{v0.78}{2019/10/30}{\pkg{caption}: Added warning regarding passing options.} % \begin{macrocode} \typeout{---} \typeout{Packages lwarp and caption:} \typeout{If a ``Missing \protect\begin\protect{document\protect}'' error occurs here,} -\typeout{try using: \space \protect\usepackage\protect{caption\protect}\space\protect\captionsetup{options}} +\typeout{try using: \space \protect\usepackage\protect{caption\protect}\space% + \protect\captionsetup{options}} \typeout{instead of: \protect\usepackage[options]\protect{caption\protect}.} \typeout{---} -\LWR@ProvidesPackagePass{caption}[2019/09/01] +\LWR@ProvidesPackagePass{caption}[2020/01/03] % \end{macrocode} % \begin{macrocode} -\renewcommand\caption@ibox[3]{% - \@testopt{\caption@iibox{#1}{#2}{#3}}{% -% \wd\@tempboxa% - \linewidth% lwarp - }% -% \LWR@traceinfo{caption@ibox: done}% +\long\def\caption@iibox@#1#2#3#4{% +% \setbox\@tempboxa\hbox{#4}% + \caption@iiibox{#1}{#2}{#3}% +% [\wd\@tempboxa]% + []% lwarp + [\captionbox@hj@default]% +% {\unhbox\@tempboxa}% + {{#4}}% lwarp } % \end{macrocode} % % \begin{macrocode} -\long\def\caption@iibox#1#2#3[#4]{% - \@testopt{\caption@iiibox{#1}{#2}{#3}{#4}}\captionbox@hj@default -} -% \end{macrocode} -% -% \begin{macrocode} -\long\def\caption@iiibox#1#2#3#4[#5]#6{% -% \setbox\@tempboxa\hbox{#6}% +\long\def\caption@iiiibox#1#2#3#4#5[#6][#7]#8{% \begingroup #1*% set \caption@position \caption@iftop{% - \LWR@traceinfo{caption@iiibox top}% \endgroup - \parbox[t]{#4}{% + \minipagefullwidth% + \parbox[t]{\linewidth}{% #1\relax \caption@setposition t% -% \vbox{\caption#2{#3}}% - {\caption#2{#3}}% lwarp +% #2% + {\caption#4{#5}}% % \captionbox@hrule -% \csname caption@hj@#5\endcsname -% \unhbox\@tempboxa - #6% lwarp +% \csname caption@hj@#7\endcsname + #8% }% }{% - \LWR@traceinfo{caption@iiibox bottom}% \endgroup - \parbox[b]{#4}{% +% \parbox[b]{#6}{% + \minipagefullwidth% + \parbox[b]{\linewidth}{% #1\relax \caption@setposition b% -% \csname caption@hj@#5\endcsname -% \unhbox\@tempboxa - #6% lwarp +% \csname caption@hj@#7\endcsname + #8% % \captionbox@hrule -% \vtop{\caption#2{#3}}}% - {\caption#2{#3}}% lwarp - }% +% #3 + {\caption#4{#5}}% + }% }% -\LWR@traceinfo{caption@iiibox: done}% -} - -% \def\caption@caption{% -% \caption@iftype -% {% -% \caption@checkgrouplevel\@empty\caption -% \caption@star -% {\caption@refstepcounter\@captype}% -% {\caption@dblarg{\@caption\@captype}}}% -% {\caption@Error{\noexpand\caption outside float}% -% \caption@gobble}% -% } - -\long\def\caption@@caption#1[#2]#3{% -% \end{macrocode} -% \begin{macrocode} - \ifcaption@star - \else - \caption@prepareanchor{#1}{#2}% - \memcaptioninfo{#1}{\csname the#1\endcsname}{#2}{#3}% - \@nameuse{nag@hascaptiontrue}% - \fi -% \end{macrocode} -% \begin{macrocode} - \par - \caption@beginex{#1}{#2}{#3}% - \caption@setfloatcapt{% - \caption@boxrestore - \if@minipage - \@setminipage - \fi - \caption@normalsize -% \end{macrocode} -% \changes{v0.73}{2019/07/11}{\pkg{caption}: Fix for starred captions.} -% \begin{macrocode} - \ifcaption@star - \let\caption@makeanchor\@firstofone - #3% lwarp - \else% lwarp - \@makecaption{\csname fnum@#1\endcsname}% - {\ignorespaces\caption@makeanchor{#3}}% - \fi% lwarp -% \end{macrocode} -% \changes{v0.70}{2019/03/24}{\pkg{caption}: Fix: Extra par tags.} -% \begin{macrocode} -% \par - \caption@if@minipage\@minipagetrue\@minipagefalse}% - \caption@end% } % \end{macrocode} + % \begin{noindmacro}{\caption@@@make} % \marg{caption label} \marg{caption text} % \begin{macrocode} \renewcommand\caption@@@make[2]{% \LWR@traceinfo{caption@@@make}% + \LWR@stoppars% lwarp % \sbox\@tempboxa{#1}% % \ifdim\wd\@tempboxa=\z@ % \let\caption@lsep\relax @@ -43453,7 +44397,7 @@ s% {\ifcaption@star\else \begingroup \captionlabelfont - #1% + \LWR@isolate{#1}% lwarp \endgroup \fi}% {\ifcaption@star\else @@ -43465,15 +44409,17 @@ s% \fi}% {{% \captiontextfont + \let\\\newline% lwarp % \caption@ifstrut % {\vrule\@height\ht\strutbox\@width\z@}% % {}% % \nobreak\hskip\z@skip % enable hyphenation - \caption@tfmt{#2}% + \LWR@isolate{\caption@tfmt{#2}}% lwarp % \caption@ifstrut % {\ifhmode\@finalstrut\strutbox\fi}% % {}% }}% + \LWR@startpars% lwarp \LWR@traceinfo{caption@@@make done}% } % \end{macrocode} @@ -43482,16 +44428,16 @@ s% % \begin{noindmacro}{\caption@@make@} \marg{} \marg{} % \begin{macrocode} \renewcommand{\caption@@make@}[2]{% - \caption@stepthecounter - \caption@beginhook + \caption@stepthecounter% + \caption@beginhook% \caption@@@make{#1}{#2}% - \caption@endhook + \caption@endhook% } % \end{macrocode} % \end{noindmacro} % \begin{noindmacro}{\caption@makecaption} -% \changes{v0.71}{2019/04/08}{Reduced underfull \cs{hbox} warnings.} +% \changes{v0.71}{2019/04/08}{\pkg{caption}: Reduced underfull \cs{hbox} warnings.} % \begin{macrocode} \long\def\caption@makecaption#1#2{% % \caption@iftop @@ -43502,17 +44448,50 @@ s% % {\vskip\abovecaptionskip\caption@rule}% % {\vskip\belowcaptionskip}% } + +\AtBeginDocument{ + \let\@makecaption\caption@makecaption +} % \end{macrocode} % \end{noindmacro} +% Redefined to look ahead for \cs{centering}, etc: +% \changes{v0.84}{2020/04/20}{\pkg{caption}: Improved integration.} +% \begin{macrocode} +\AtBeginDocument{ + \def\@xfloat#1[#2]{% + \caption@ORI@xfloat{#1}[#2]% + \caption@settype{#1}% + \LWR@futurenonspacelet\LWR@mynexttoken\LWR@floatalignment% + }% + \def\@xdblfloat#1[#2]{% + \caption@ORI@xfloat{#1}[#2]% + \caption@settype{#1}% + \LWR@futurenonspacelet\LWR@mynexttoken\LWR@floatalignment% + }% +} +% \end{macrocode} + + +% Add non-breakable spaces: +% \begin{macrocode} +\long\def\caption@lsep@default{.~} +\long\def\caption@lsep@colon{:~} +\long\def\caption@lsep@period{.~} +\long\def\caption@lsep@space{~} +\long\def\caption@lsep@endash{~\textendash~} +\long\def\caption@lsep@arabi{~:~} +% \end{macrocode} + % \begin{macrocode} -% \DeclareCaptionBox{none}{#2} +\DeclareCaptionBox{none}{#2} \DeclareCaptionBox{parbox}{% -#2% + #2% } + \DeclareCaptionBox{colorbox}{% -#2% + #2% } % \end{macrocode} @@ -45906,9 +46885,6 @@ name = \chemmacros_translate:n {scheme-name} % % % -% -% -% % \iffalse %<*color> % \fi @@ -45938,7 +46914,6 @@ name = \chemmacros_translate:n {scheme-name} % % % -% % \iffalse %<*colortbl> % \fi @@ -46262,6 +47237,7 @@ name = \chemmacros_translate:n {scheme-name} \PackageError{lwarp-ctable}{\MessageBreak You can, currently, use the sidecap option only with\MessageBreak memoir documents. Use topcap or botcap only} + {} \fi \fi \ifdim\@CTwidth=0pt\else @@ -46269,6 +47245,7 @@ name = \chemmacros_translate:n {scheme-name} \PackageError{lwarp-ctable}{\MessageBreak You may not use the width and maxwidth options together\MessageBreak Use either width or maxwidth} + {} \fi \fi \ifx\@CTpos\empty @@ -46276,6 +47253,7 @@ name = \chemmacros_translate:n {scheme-name} \PackageError{lwarp-ctable}{\MessageBreak You may not use the pos and sideways options together\MessageBreak Rotated tables and figures are always typeset on a separate page} + {} \fi \fi \ifx\@CTcaption\empty @@ -46283,6 +47261,7 @@ name = \chemmacros_translate:n {scheme-name} \PackageError{lwarp-ctable}{\MessageBreak You may not label a captionless table\MessageBreak Such a label can't be referenced} + {} \fi \fi % \end{macrocode} @@ -47014,6 +47993,11 @@ name = \chemmacros_translate:n {scheme-name} % \DescribePackage{easy-todo} % \pkg{easy-todo} is patched for use by \pkg{lwarp}. % +% To remove the ``P.'' heading for \HTML: +% \begin{sourceverb} +% \warpHTMLonly{\renewcommand{\todoindexpagetitle}{}} +% \end{sourceverb} +% % \changes{v0.44}{2017/11/10}{\pkg{easy-todo}: Added.} % % \codehtml @@ -47025,12 +48009,12 @@ name = \chemmacros_translate:n {scheme-name} % \begin{noindmacro}{\listoftodos} % Modified to correct buggy use of \cs{flushright}. % \begin{macrocode} -\let\LWR@origlistoftodos\listoftodos +\let\LWR@easytodo@origlistoftodos\listoftodos \renewcommand{\listoftodos}{% \begingroup \renewcommand{\flushright}{} -\LWR@origlistoftodos +\LWR@easytodo@origlistoftodos \endgroup } % \end{macrocode} @@ -47645,7 +48629,7 @@ name = \chemmacros_translate:n {scheme-name} % % \credits{John Lavagnino} % -% \DescribePackage{endnotes} Used as-is. +% \DescribePackage{endnotes} Patched for \HTML. % % \limitsendnotes % @@ -48074,85 +49058,60 @@ name = \chemmacros_translate:n {scheme-name} % \credits{Peter Wilson} % % \DescribePackage{epigraph} -% \pkg{epigraph} is emulated. +% \pkg{epigraph} is emulated for \HTML, and used as-is for print output. +% +% Use \CSS\ to format epigraphs. % % \changes{v0.42}{2017/10/27}{\pkg{epigraph}: If \progcode{FormatWP} add \HTML\ styles.} +% \changes{v0.84}{2020/04/16}{\pkg{epigraph}: Added print mode.} % % \codehtml % \begin{macrocode} -\LWR@ProvidesPackageDrop{epigraph}[2009/09/02] +\LWR@ProvidesPackagePass{epigraph}[2020/01/02] % \end{macrocode} % \changes{v0.73}{2019/06/25}{\pkg{epigraph}: Fix: Paragraph tags.} % \begin{macrocode} -\DeclareDocumentCommand{\qitem}{m m} -{ -\begin{BlockClass}{qitem} -#1 -\LWR@stoppars% -\ifbool{FormatWP} -{\begin{BlockClass}[border-top:1px solid gray]{epigraphsource}} -{\begin{BlockClass}{epigraphsource}} -#2 -\end{BlockClass} -\end{BlockClass} +\DeclareDocumentCommand{\LWR@HTML@qitem}{m m} +{% + \begin{BlockClass}{qitem}% + #1% + \LWR@stoppars% + \ifbool{FormatWP}% + {\begin{BlockClass}[border-top:1px solid gray]{epigraphsource}}% + {\begin{BlockClass}{epigraphsource}}% + #2% + \end{BlockClass}% + \end{BlockClass}% } +\LWR@formatted{qitem} % \end{macrocode} % \changes{v0.47}{2018/01/26}{\pkg{epigraph}: Fix: Line wrap at \HTML\ hyphen.} % \begin{macrocode} -\DeclareDocumentCommand{\epigraph}{m m} -{ -\begin{LWR@BlockClassWP}{\LWR@print@mbox{text-align:right}}{}{epigraph} -\qitem{#1}{#2} -\end{LWR@BlockClassWP} +\DeclareDocumentCommand{\LWR@HTML@epigraph}{m m} +{% + \begin{LWR@BlockClassWP}{\LWR@print@mbox{text-align:right}}{}{epigraph}% + \qitem{#1}{#2}% + \end{LWR@BlockClassWP}% } +\LWR@formatted{epigraph} -\DeclareDocumentEnvironment{epigraphs}{} -{\LWR@BlockClassWP{\LWR@print@mbox{text-align:right}}{}{epigraph}} -{\endLWR@BlockClassWP} +\DeclareDocumentEnvironment{LWR@HTML@epigraphs}{} + {\LWR@BlockClassWP{\LWR@print@mbox{text-align:right}}{}{epigraph}} + {\endLWR@BlockClassWP} +\LWR@formattedenv{epigraphs} % \end{macrocode} % -% Use \CSS\ to format epigraphs. -% -% The following are null commands for source compatibility: -% \begin{macrocode} -\newenvironment*{flushepinormal}{}{} -% \end{macrocode} % -% \changes{v0.45}{2017/12/22}{\pkg{epigraph}: Support for \pkg{memoir}.} +% The following cannot be used in print mode while generating \HTML: % \begin{macrocode} -\@ifclassloaded{memoir}{ -\setlength{\epigraphwidth}{.5\linewidth} -\renewcommand{\textflush}{flushepinormal} \renewcommand{\epigraphhead}[2][0]{#2} \renewcommand{\dropchapter}[1]{} \renewcommand*{\undodrop}{} -}{% not memoir -\newlength{\epigraphwidth} -\setlength{\epigraphwidth}{.5\linewidth} -\newcommand{\textflush}{flushepinormal} -\newcommand{\epigraphflush}{flushright} -\newcommand{\sourceflush}{flushright} -\newcommand*{\epigraphsize}{\small} -\newlength{\epigraphrule} -\newlength{\beforeepigraphskip} -\newlength{\afterepigraphskip} -\newcommand{\epigraphhead}[2][0]{#2} -\newcommand{\dropchapter}[1]{} -\newcommand*{\undodrop}{} -}% not memoir - -\let\cleartoevenpage\relax% also in nextpage -\newcommand{\cleartoevenpage}[1][]{} % \end{macrocode} % -% \changes{v0.79}{2020/01/06}{\pkg{epigraph}: Updated to v1.5e.} -% \begin{macrocode} -\newif\ifepigraphnoindent -\newcommand\epigraphnoindent{\epigraphnoindenttrue} -% \end{macrocode} % % \iffalse %</epigraph> @@ -49977,10 +50936,15 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space % \end{macrocode} % % Float-related macros required by \pkg{lwarp}: +% \changes{v0.84}{2020/04/09}{\pkg{fixme}: Added section name.} % \begin{macrocode} \newcommand{\ext@fixme}{lox} -\renewcommand{\l@fixme}[2]{\hypertocfloat{1}{fixme}{lox}{#1}{#2}} +\renewcommand{\l@fixme}[2]{% + \hypertocfloat{1}{fixme}{lox}% + {\LWR@nameref{\BaseJobname-autopage-\arabic{LWR@nextautopage}} --- #1} + {#2} +} % \end{macrocode} % % Other modifications: @@ -50189,27 +51153,27 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space % % \begin{macrocode} \NewDocumentCommand{\newfloat}{m m m o}{% -\IfValueTF{#4}% -{\DeclareFloatingEnvironment[fileext=#3,within=#4]{#1}}% -{\DeclareFloatingEnvironment[fileext=#3]{#1}}% + \IfValueTF{#4}% + {\DeclareFloatingEnvironment[fileext=#3,within=#4]{#1}}% + {\DeclareFloatingEnvironment[fileext=#3]{#1}}% % \end{macrocode} % Remember the float style: % \changes{v0.57}{2018/05/14}{\pkg{float}: Added float styles.} % \begin{macrocode} -\csedef{LWR@floatstyle@#1}{\LWR@floatstyle}% + \csedef{LWR@floatstyle@#1}{\LWR@floatstyle}% % \end{macrocode} % \pkg{newfloat} package automatically creates the \cs{listof} command % for new floats, but \pkg{float} does not, % so remove \cs{listof} here in case it is manually created later. % \begin{macrocode} -\cslet{listof#1s}\relax% -\cslet{listof#1es}\relax% + \cslet{listof#1s}\relax% + \cslet{listof#1es}\relax% % \end{macrocode} % Likesize, \pkg{newfloat} also creates \cs{l@<type>}, but \pkg{float} does not, % so remove it here: % \changes{v0.57}{2018/05/26}{\pkg{float}: Fix: Do not pre-define \cs{l@name}.} % \begin{macrocode} -\cslet{l@#1}\relax% + \cslet{l@#1}\relax% } % \end{macrocode} % \end{noindmacro} @@ -50217,9 +51181,15 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space % \begin{noindmacro}{\floatname} \marg{type} \marg{name} % % Sets the text name of the float, such as ``Figure''. +% Avoids trying to set a recursive name, from \pkg{trivfloat}. +% \changes{v0.84}{2020/04/08}{\pkg{float}: Fix: Recursive name.} % \begin{macrocode} \NewDocumentCommand{\floatname}{m +m}{% - \SetupFloatingEnvironment{#1}{name=#2}% + \def\LWR@tempone{#2}% + \def\LWR@temptwo{\@nameuse{#1name}}% + \ifdefequal{\LWR@tempone}{\LWR@temptwo}{}{% + \SetupFloatingEnvironment{#1}{name=#2}% + }% } % \end{macrocode} % \end{noindmacro} @@ -50310,7 +51280,7 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space }% {marginblock}% }% - \captionsetup{type=#2}% + \renewcommand*{\@captype}{#2}% } {% \endLWR@BlockClassWP% @@ -50410,8 +51380,8 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space \AtBeginDocument{ \@ifpackageloaded{subcaption} -{\booltrue{LWR@subcaptionloaded}} -{\boolfalse{LWR@subcaptionloaded}} + {\booltrue{LWR@subcaptionloaded}} + {\boolfalse{LWR@subcaptionloaded}} } % \end{macrocode} @@ -50672,9 +51642,9 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space % inside a \CSS\ \element{div} of class |floatfoot|. % \begin{macrocode} \NewDocumentCommand{\floatfoot}{s +m}{% -\begin{BlockClass}{floatfoot} -#2 -\end{BlockClass} + \begin{BlockClass}{floatfoot} + #2 + \end{BlockClass} } % \end{macrocode} % \end{noindmacro} @@ -50695,19 +51665,19 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space % \end{macrocode} % The row of floats is placed into a \element{div} of class |floatrow|: % \begin{macrocode} -\LWR@forcenewpage -\BlockClass{floatrow} + \LWR@forcenewpage + \BlockClass{floatrow} % \end{macrocode} % While inside the floatrow, |LWR@insubfloatrow| is set true, % which tells \cs{floatbox} to use \cs{subfigure} or \cs{subtable}. % \begin{macrocode} -\begingroup -\booltrue{LWR@insubfloatrow} + \begingroup% + \booltrue{LWR@insubfloatrow}% } -{ -\endgroup -\endBlockClass -\boolfalse{LWR@insubfloatrow} +{% + \endgroup% + \endBlockClass% + \boolfalse{LWR@insubfloatrow}% } % \end{macrocode} % \end{noindenvironment} @@ -51141,6 +52111,7 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space % Swashes and figure styles are ignored for \HTML. % % \changes{v0.72}{2019/05/27}{\pkg{fontaxes}: Added.} +% \changes{v0.84}{2020/04/13}{\pkg{fontaxes}: Moved sscshape to core. \cs{FilenameNullify}.} % % \codehtml % @@ -51149,29 +52120,17 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space % \end{macrocode} % % \begin{macrocode} -\newrobustcmd{\LWR@HTML@sscshape}{\LWR@HTML@scshape} -\LWR@formatted{sscshape} -\newcommand*{\LWR@null@sscshape}{} - -\newrobustcmd{\LWR@HTML@textssc}[1]{\textsc{#1}} -\LWR@formatted{textssc} -\newcommand*{\LWR@null@textssc}[1]{#1} - \ifdef{\LWR@HTML@swshape}{}{% duplicated by nfssext-cfr \newcommand{\LWR@HTML@swshape}{} \LWR@formatted{swshape} - \newcommand*{\LWR@null@swshape}{} \newcommand{\LWR@HTML@textsw}[1]{#1} \LWR@formatted{textsw} - \newcommand*{\LWR@null@textsw}[1]{#1} -} -\appto{\LWR@nullfonts}{% -\LetLtxMacro\sscshape\LWR@null@sscshape% -\LetLtxMacro\textssc\LWR@null@textssc% -\LetLtxMacro\swshape\LWR@null@swshape% -\LetLtxMacro\textsw\LWR@null@textsw% + \FilenameNullify{% + \LetLtxMacro\swshape\@empty% + \LetLtxMacro\textsw\firstofone% + } } % \end{macrocode} % @@ -51538,7 +52497,9 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space % \end{macrocode} % \begin{macrocode} -\BeforeBeginEnvironment{forest}{\begin{lateximage}[forest]} +\BeforeBeginEnvironment{forest}{% + \begin{lateximage}[-forest-~\PackageDiagramAltText]% +} \AfterEndEnvironment{forest}{\end{lateximage}} @@ -51546,8 +52507,9 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space \forest@config{#2}% \IfBooleanTF{#1}{% \PackageError{lwarp-forest}% - {Starred \Forest is not supported}% - {Lwarp uses an environment for images, but \Forest* cannot work in an environment.}% + {\protect\Forest* is not supported}% + {Lwarp uses an environment for images,\MessageBreak + but \protect\Forest* cannot work in an environment.}% \let\forest@next\forest@env% }{\let\forest@next\forest@group@env}% \begin{lateximage}[-forest-~\PackageDiagramAltText]% lwarp @@ -52489,9 +53451,8 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space \define@key{igraph}{scale}{% \ifthenelse{\equal{#1}{1}}{}{% must expand #1 \PackageWarning{lwarp}{% - It is recommended to use\MessageBreak - [width=xx\protect\linewidth]\MessageBreak - instead of [scale=yy],% + It is recommended to use ``[width=xx\protect\linewidth]''\MessageBreak + instead of ``[scale=yy]'',% }% }% \renewcommand*{\LWR@igxscale}{#1}% @@ -53126,7 +54087,7 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space \AtBeginDocument{ \newcommand{\LWR@HTML@reflectbox}[1]{% -\scalebox{-1}[1]{#1}% + \scalebox{-1}[1]{#1}% }% \reflectbox \LWR@formatted{reflectbox} @@ -53146,7 +54107,7 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space \AtBeginDocument{ \NewDocumentCommand{\LWR@HTML@resizebox}{s m m m}{% -#4% + #4% } \LWR@formatted{resizebox} @@ -53754,7 +54715,7 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak} % \begin{macrocode} \NewDocumentCommand{\LWR@hyperdefb}{m m +m}{% \LWR@ensuredoingapar% - \LWR@sublabel{#1.#2}% + \LWR@label@createtag{#1.#2}% #3% \endgroup% } @@ -54774,7 +55735,7 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak} % \end{macrocode} % % (It is hard to patch this macro, so the entire thing is redefined here, -% with the \pkg{lwarp} modificaitions identified in comments.) +% with the \pkg{lwarp} modifications identified in comments.) % % \begin{macrocode} \RenewDocumentEnvironment{karnaugh-map}{s O{4} O{4} O{1} O{$X_1X_0$} O{$X_3X_2$} O{$X_5X_4$}} {% @@ -55217,7 +56178,7 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak} {float:right; width:2in; margin:10pt}% {}% {marginblock}% - \captionsetup{type=#2}% + \renewcommand*{\@captype}{#2}% \minipage{\LWR@usersmarginparwidth}% \setlength{\marginparwidth}{.95\LWR@usersmarginparwidth}% } @@ -55634,7 +56595,7 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak} % \cs{lettrine} \oarg{keys} \marg{letter} \marg{additional text} % \begin{macrocode} \DeclareDocumentCommand{\lettrine}{o m m}{% -\InlineClass{lettrine}{#2}\InlineClass{lettrinetext}{#3} % extra space + \InlineClass{lettrine}{#2}\InlineClass{lettrinetext}{#3} % extra space } \newcounter{DefaultLines} @@ -55976,17 +56937,17 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak} % produce the \element{pre}, then % reenable line numbers. % \begin{macrocode} -\LWR@traceinfo{About to create verbatim.}% -\let\lsthk@EveryPar\relax% -\LWR@forcenewpage -\LWR@atbeginverbatim{2}{programlisting}% + \LWR@traceinfo{About to create verbatim.}% + \let\lsthk@EveryPar\relax% + \LWR@forcenewpage% + \LWR@atbeginverbatim{2}{programlisting}% -\let\lsthk@EveryPar\LWR@origlsthkEveryPar% + \let\lsthk@EveryPar\LWR@origlsthkEveryPar% \else% % \end{macrocode} % Inline, so open a \element{span}: % \begin{macrocode} -\ifbool{LWR@verbtags}{\LWR@htmltag{span class="inlineprogramlisting"}}{}% + \ifbool{LWR@verbtags}{\LWR@htmltag{span class="inlineprogramlisting"}}{}% \fi% } @@ -56030,6 +56991,7 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak} % % Patched for \pkg{lwarp}. % \begin{macrocode} + \def\lst@MakeCaption#1{% \LWR@traceinfo{MAKING CAPTION at #1}% \lst@ifdisplaystyle @@ -56094,9 +57056,9 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak} % \begin{macrocode} % \lst@maketitle\lst@title % (AS) \LWR@traceinfo{Making title: \lst@title}% -\begin{BlockClass}{lstlistingtitle}% lwarp -\lst@maketitle\lst@title% lwarp -\end{BlockClass}% lwarp +\begin{BlockClass}{lstlistingtitle}% lwarp +\lst@maketitle\lst@title% lwarp +\end{BlockClass}% lwarp \fi \LWR@traceinfo{About to assign label: !\lst@label!}% \ifx\lst@label\@empty\else @@ -56118,6 +57080,11 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak} \fi \LWR@traceinfo{DONE WITH CAPTION at #1}% } + +\renewcommand{\lst@maketitle}[1]{% + \LWR@isolate{#1}% +}% + % \end{macrocode} % \end{noindmacro} % @@ -56308,13 +57275,20 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak} % not at each caption. % % Options [c], [l], and [r] are ignored. +% +% \changes{v0.84}{2020/04/20}{\pkg{caption} now optional.} +% % \begin{macrocode} \newenvironment{longtable*}[2][]{% \LWR@floatbegin{table}% - \setcaptiontype{\LTcaptype}% - \caption@setoptions{longtable}% - \caption@setoptions{@longtable}% - \caption@LT@setup% + \ifdef{\setcaptiontype}{% caption package: + \setcaptiontype{\LTcaptype}% + \caption@setoptions{longtable}% + \caption@setoptions{@longtable}% + \caption@LT@setup% + }{% w/o caption package: + \renewcommand*{\@captype}{\LTcaptype}% + }% \booltrue{LWR@starredlongtable}% \boolfalse{LWR@longtable@havehead}% \let\captionlistentry\LWR@LTcaptionlistentry% @@ -56324,10 +57298,14 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak} \newenvironment{longtable}[2][]{% \LWR@floatbegin{table}% - \setcaptiontype{\LTcaptype}% - \caption@setoptions{longtable}% - \caption@setoptions{@longtable}% - \caption@LT@setup% + \ifdef{\setcaptiontype}{% caption package: + \setcaptiontype{\LTcaptype}% + \caption@setoptions{longtable}% + \caption@setoptions{@longtable}% + \caption@LT@setup% + }{% w/o caption package: + \renewcommand*{\@captype}{\LTcaptype}% + }% \refstepcounter{\LTcaptype}% \boolfalse{LWR@longtable@havehead}% \let\captionlistentry\LWR@LTcaptionlistentry% @@ -56345,7 +57323,7 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak} % Error for heads which should have been in \cs{warpprintonly}: % \begin{macrocode} \newcommand*{\LWR@longtable@headerror}{% - \PackageError{lwarp} + \PackageError{lwarp-longtable} {For longtable:\MessageBreak 1: Keep either one of an \protect\endhead\space or \protect\endfirsthead\space\MessageBreak @@ -58138,6 +59116,11 @@ endinnercode={\LWR@stoppars}, \newcommand*{\LWR@mdframedstart}{% \LWR@traceinfo{LWR@mdframedstart start}% % \end{macrocode} +% Warn if starting a frame inside a \element{span}: +% \changes{v0.84}{2020/04/22}{\pkg{mdframed}: Warn inside a \element{span}.} +% \begin{macrocode} + \LWR@spanwarninvalid{mdframe}% +% \end{macrocode} % Turn off paragraph handling during the generation of % the encapsulating tags: % \begin{macrocode} @@ -60047,20 +61030,6 @@ background: % \begin{macrocode} \LWR@htmltag{td rowspan="#2" % % \end{macrocode} -% The vertical alignment, if given: -% \changes{v0.79}{2020/01/17}{\pkg{multirow}: Fix: Centered vertical alignment.} -% \begin{macrocode} -\ifstrequal{#1}{c}{style="\LWR@print@mbox{vertical-align:middle}" }{}% -\ifstrequal{#1}{b}{style="\LWR@print@mbox{vertical-align:bottom}" }{}% -\ifstrequal{#1}{t}{style="\LWR@print@mbox{vertical-align:top}" }{}% -% \end{macrocode} -% The left/right border, if given: -% \begin{macrocode} -\ifdefvoid{\LWR@multirowborder}{}{% -style="\LWR@print@mbox{border-\LWR@multirowborder:} 2px dotted black ; % -\LWR@print@mbox{padding-\LWR@multirowborder:} 2px" % -}% -% \end{macrocode} % A class adds the column spec and the rule: % \begin{macrocode} class="td% @@ -60082,6 +61051,27 @@ class="td% % \changes{v0.42}{2017/10/26}{\pkg{multirow}: If \progcode{FormatWP} add cell alignment.} % \begin{macrocode} \LWR@tdstartstyles% +% \end{macrocode} +% The vertical alignment, if given: +% \changes{v0.79}{2020/01/17}{\pkg{multirow}: Fix: Centered vertical alignment.} +% \changes{v0.84}{2020/04/16}{Fix: Multirow style.} +% \begin{macrocode} +\ifstrequal{#1}{c}{\LWR@tdaddstyle\LWR@print@mbox{vertical-align:middle}}{}% +\ifstrequal{#1}{b}{\LWR@tdaddstyle\LWR@print@mbox{vertical-align:bottom}}{}% +\ifstrequal{#1}{t}{\LWR@tdaddstyle\LWR@print@mbox{vertical-align:top}}{}% +% \end{macrocode} +% The left/right border, if given: +% \changes{v0.84}{2020/04/16}{Fix: Multirow style.} +% \begin{macrocode} +\ifdefvoid{\LWR@multirowborder}{}{% + \LWR@tdaddstyle% + \LWR@print@mbox{border-\LWR@multirowborder:} 2px dotted black ; % + \LWR@print@mbox{padding-\LWR@multirowborder:} 2px% +}% +% \end{macrocode} +% +% Additional style elements: +% \begin{macrocode} \LWR@addcmidrulewidth% \LWR@addcdashline% \LWR@addtabularrulecolors% @@ -60871,9 +61861,10 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak % % % Macros which are present in the \pkg{lwarp} core are commented out here. +% \changes{v0.84}{2020/04/13}{\pkg{nfssext-cfr}: Improved.} % \begin{macrocode} \newrobustcmd{\LWR@HTML@lnstyle}{} -\newrobustcmd{\LWR@HTML@osstyle}{} +\newrobustcmd{\LWR@HTML@osstyle}{\LWR@HTML@scshape} \newrobustcmd{\LWR@HTML@instyle}{} \newrobustcmd{\LWR@HTML@sustyle}{} \newrobustcmd{\LWR@HTML@swstyle}{} @@ -60890,7 +61881,7 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak \newrobustcmd{\LWR@HTML@qtstyle}{} \newrobustcmd{\LWR@HTML@shstyle}{} \newrobustcmd{\LWR@HTML@swashstyle}{} -\newrobustcmd{\LWR@HTML@tmstyle}{} +\newrobustcmd{\LWR@HTML@tmstyle}{\renewcommand*{\LWR@f@family}{tt}} \newrobustcmd{\LWR@HTML@tvstyle}{\renewcommand*{\LWR@f@family}{tt}} \newrobustcmd{\LWR@HTML@tstyle}{} \newrobustcmd{\LWR@HTML@lstyle}{} @@ -60914,13 +61905,13 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak \newrobustcmd{\LWR@HTML@exwidth}{} \newrobustcmd{\LWR@HTML@uxwidth}{} \newrobustcmd{\LWR@HTML@mbweight}{\renewcommand*{\LWR@f@series}{md}} -\newrobustcmd{\LWR@HTML@dbweight}{\renewcommand*{\LWR@f@series}{bf}} -\newrobustcmd{\LWR@HTML@sbweight}{\renewcommand*{\LWR@f@series}{bf}} +\newrobustcmd{\LWR@HTML@dbweight}{\renewcommand*{\LWR@f@series}{db}} +\newrobustcmd{\LWR@HTML@sbweight}{\renewcommand*{\LWR@f@series}{sb}} % \newrobustcmd{\LWR@HTML@ebweight}{\renewcommand*{\LWR@f@series}{eb}} -\newrobustcmd{\LWR@HTML@ubweight}{\renewcommand*{\LWR@f@series}{eb}} +\newrobustcmd{\LWR@HTML@ubweight}{\renewcommand*{\LWR@f@series}{ub}} % \newrobustcmd{\LWR@HTML@lgweight}{\renewcommand*{\LWR@f@series}{lg}} -\newrobustcmd{\LWR@HTML@elweight}{\renewcommand*{\LWR@f@series}{lg}} -\newrobustcmd{\LWR@HTML@ulweight}{\renewcommand*{\LWR@f@series}{lg}} +\newrobustcmd{\LWR@HTML@elweight}{\renewcommand*{\LWR@f@series}{el}} +\newrobustcmd{\LWR@HTML@ulweight}{\renewcommand*{\LWR@f@series}{ul}} % \newrobustcmd{\LWR@HTML@itshape}{} % \newrobustcmd{\LWR@HTML@scshape}{} % \newrobustcmd{\LWR@HTML@upshape}{} @@ -60981,9 +61972,9 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak % \LWR@formatted{lgweight} \LWR@formatted{elweight} \LWR@formatted{ulweight} -% \LWR@formatted{itshape} -% \LWR@formatted{scshape} -% \LWR@formatted{upshape} +\LWR@formatted{itshape}% adapt to the new print version +\LWR@formatted{scshape}% adapt to the new print version +\LWR@formatted{upshape}% adapt to the new print version \LWR@formatted{dfshape} \ifdef{\LWR@HTML@swshape}{}{% duplicated by fontaxes @@ -60991,127 +61982,69 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak } \LWR@formatted{ornament} - - -\newcommand{\LWR@null@lnstyle}{} -\newcommand{\LWR@null@osstyle}{} -\newcommand{\LWR@null@instyle}{} -\newcommand{\LWR@null@sustyle}{} -\newcommand{\LWR@null@swstyle}{} -\newcommand{\LWR@null@pstyle}{} -\newcommand{\LWR@null@tistyle}{} -\newcommand{\LWR@null@ostyle}{} -\newcommand{\LWR@null@postyle}{} -\newcommand{\LWR@null@ltstyle}{} -\newcommand{\LWR@null@ofstyle}{} -\newcommand{\LWR@null@altstyle}{} -\newcommand{\LWR@null@regstyle}{} -\newcommand{\LWR@null@embossstyle}{} -\newcommand{\LWR@null@ornamentalstyle}{} -\newcommand{\LWR@null@qtstyle}{} -\newcommand{\LWR@null@shstyle}{} -\newcommand{\LWR@null@swashstyle}{} -\newcommand{\LWR@null@tmstyle}{} -\newcommand{\LWR@null@tvstyle}{} -\newcommand{\LWR@null@tstyle}{} -\newcommand{\LWR@null@lstyle}{} -\newcommand{\LWR@null@tlstyle}{} -\newcommand{\LWR@null@plstyle}{} -\newcommand{\LWR@null@tostyle}{} -% \newcommand{\LWR@null@sishape}{} -\newcommand{\LWR@null@olshape}{} -\newcommand{\LWR@null@scolshape}{} -\newcommand{\LWR@null@ushape}{} -\newcommand{\LWR@null@scushape}{} -\newcommand{\LWR@null@uishape}{} -\newcommand{\LWR@null@rishape}{} -\newcommand{\LWR@null@regwidth}{} -\newcommand{\LWR@null@nwwidth}{} -\newcommand{\LWR@null@cdwidth}{} -\newcommand{\LWR@null@ecwidth}{} -\newcommand{\LWR@null@ucwidth}{} -\newcommand{\LWR@null@etwidth}{} -\newcommand{\LWR@null@epwidth}{} -\newcommand{\LWR@null@exwidth}{} -\newcommand{\LWR@null@uxwidth}{} -\newcommand{\LWR@null@mbweight}{} -\newcommand{\LWR@null@dbweight}{} -\newcommand{\LWR@null@sbweight}{} -% \newcommand{\LWR@null@ebweight}{} -\newcommand{\LWR@null@ubweight}{} -% \newcommand{\LWR@null@lgweight}{} -\newcommand{\LWR@null@elweight}{} -\newcommand{\LWR@null@ulweight}{} -% \newcommand{\LWR@null@itshape}{} -% \newcommand{\LWR@null@scshape}{} -% \newcommand{\LWR@null@upshape}{} -\newcommand{\LWR@null@dfshape}{} - -\ifdef{\LWR@HTML@swshape}{}{% duplicated by fontaxes - \newcommand{\LWR@null@swshape}{} -} - -\newcommand{\LWR@null@ornament}[1]{} - -\appto{\LWR@nullfonts}{% -\LetLtxMacro\lnstyle\LWR@null@lnstyle% -\LetLtxMacro\osstyle\LWR@null@osstyle% -\LetLtxMacro\instyle\LWR@null@instyle% -\LetLtxMacro\sustyle\LWR@null@sustyle% -\LetLtxMacro\swstyle\LWR@null@swstyle% -\LetLtxMacro\pstyle\LWR@null@pstyle% -\LetLtxMacro\tistyle\LWR@null@tistyle% -\LetLtxMacro\ostyle\LWR@null@ostyle% -\LetLtxMacro\postyle\LWR@null@postyle% -\LetLtxMacro\ltstyle\LWR@null@ltstyle% -\LetLtxMacro\ofstyle\LWR@null@ofstyle% -\LetLtxMacro\altstyle\LWR@null@altstyle% -\LetLtxMacro\regstyle\LWR@null@regstyle% -\LetLtxMacro\embossstyle\LWR@null@embossstyle% -\LetLtxMacro\ornamentalstyle\LWR@null@ornamentalstyle% -\LetLtxMacro\qtstyle\LWR@null@qtstyle% -\LetLtxMacro\shstyle\LWR@null@shstyle% -\LetLtxMacro\swashstyle\LWR@null@swashstyle% -\LetLtxMacro\tmstyle\LWR@null@tmstyle% -\LetLtxMacro\tvstyle\LWR@null@tvstyle% -\LetLtxMacro\tstyle\LWR@null@tstyle% -\LetLtxMacro\lstyle\LWR@null@lstyle% -\LetLtxMacro\tlstyle\LWR@null@tlstyle% -\LetLtxMacro\plstyle\LWR@null@plstyle% -\LetLtxMacro\tostyle\LWR@null@tostyle% -% \LetLtxMacro\sishape\LWR@null@sishape -\LetLtxMacro\olshape\LWR@null@olshape% -\LetLtxMacro\scolshape\LWR@null@scolshape% -\LetLtxMacro\ushape\LWR@null@ushape% -\LetLtxMacro\scushape\LWR@null@scushape% -\LetLtxMacro\uishape\LWR@null@uishape% -\LetLtxMacro\rishape\LWR@null@rishape% -\LetLtxMacro\regwidth\LWR@null@regwidth% -\LetLtxMacro\nwwidth\LWR@null@nwwidth% -\LetLtxMacro\cdwidth\LWR@null@cdwidth% -\LetLtxMacro\ecwidth\LWR@null@ecwidth% -\LetLtxMacro\ucwidth\LWR@null@ucwidth% -\LetLtxMacro\etwidth\LWR@null@etwidth% -\LetLtxMacro\epwidth\LWR@null@epwidth% -\LetLtxMacro\exwidth\LWR@null@exwidth% -\LetLtxMacro\uxwidth\LWR@null@uxwidth% -\LetLtxMacro\mbweight\LWR@null@mbweight% -\LetLtxMacro\dbweight\LWR@null@dbweight% -\LetLtxMacro\sbweight\LWR@null@sbweight% -% \LetLtxMacro\ebweight\LWR@null@ebweight% -\LetLtxMacro\ubweight\LWR@null@ubweight% -% \LetLtxMacro\lgweight\LWR@null@lgweight% -\LetLtxMacro\elweight\LWR@null@elweight% -\LetLtxMacro\ulweight\LWR@null@ulweight% -% \LetLtxMacro\itshape\LWR@null@itshape% -% \LetLtxMacro\scshape\LWR@null@scshape% -% \LetLtxMacro\upshape\LWR@null@upshape% -\LetLtxMacro\dfshape\LWR@null@dfshape% -\LetLtxMacro\swshape\LWR@null@swshape% -\LetLtxMacro\ornament\LWR@null@ornament% -} - -\newrobustcmd{\LWR@HTML@textln}[1]{#1} +% \end{macrocode} +% +% \changes{v0.84}{2020/04/11}{\pkg{nfssext-cfr}: \cs{FilenameNullify}.} +% \begin{macrocode} +\FilenameNullify{% + \LetLtxMacro\lnstyle\@empty% + \LetLtxMacro\osstyle\@empty% + \LetLtxMacro\instyle\@empty% + \LetLtxMacro\sustyle\@empty% + \LetLtxMacro\swstyle\@empty% + \LetLtxMacro\pstyle\@empty% + \LetLtxMacro\tistyle\@empty% + \LetLtxMacro\ostyle\@empty% + \LetLtxMacro\postyle\@empty% + \LetLtxMacro\ltstyle\@empty% + \LetLtxMacro\ofstyle\@empty% + \LetLtxMacro\altstyle\@empty% + \LetLtxMacro\regstyle\@empty% + \LetLtxMacro\embossstyle\@empty% + \LetLtxMacro\ornamentalstyle\@empty% + \LetLtxMacro\qtstyle\@empty% + \LetLtxMacro\shstyle\@empty% + \LetLtxMacro\swashstyle\@empty% + \LetLtxMacro\tmstyle\@empty% + \LetLtxMacro\tvstyle\@empty% + \LetLtxMacro\tstyle\@empty% + \LetLtxMacro\lstyle\@empty% + \LetLtxMacro\tlstyle\@empty% + \LetLtxMacro\plstyle\@empty% + \LetLtxMacro\tostyle\@empty% +% \LetLtxMacro\sishape\@empty% + \LetLtxMacro\olshape\@empty% + \LetLtxMacro\scolshape\@empty% + \LetLtxMacro\ushape\@empty% + \LetLtxMacro\scushape\@empty% + \LetLtxMacro\uishape\@empty% + \LetLtxMacro\rishape\@empty% + \LetLtxMacro\regwidth\@empty% + \LetLtxMacro\nwwidth\@empty% + \LetLtxMacro\cdwidth\@empty% + \LetLtxMacro\ecwidth\@empty% + \LetLtxMacro\ucwidth\@empty% + \LetLtxMacro\etwidth\@empty% + \LetLtxMacro\epwidth\@empty% + \LetLtxMacro\exwidth\@empty% + \LetLtxMacro\uxwidth\@empty% + \LetLtxMacro\mbweight\@empty% + \LetLtxMacro\dbweight\@empty% + \LetLtxMacro\sbweight\@empty% +% \LetLtxMacro\ebweight\@empty% + \LetLtxMacro\ubweight\@empty% +% \LetLtxMacro\lgweight\@empty% + \LetLtxMacro\elweight\@empty% + \LetLtxMacro\ulweight\@empty% +% \LetLtxMacro\itshape\@empty% +% \LetLtxMacro\scshape\@empty% +% \LetLtxMacro\upshape\@empty% + \LetLtxMacro\dfshape\@empty% + \LetLtxMacro\swshape\@empty% + \LetLtxMacro\ornament\@gobble% +} + +\newrobustcmd{\LWR@HTML@textln}[1]{\InlineClass{textln}{#1}} \newrobustcmd{\LWR@HTML@textos}[1]{\textsc{#1}} \newrobustcmd{\LWR@HTML@textin}[1]{#1} \newrobustcmd{\LWR@HTML@textsu}[1]{#1} @@ -61131,15 +62064,15 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak \newrobustcmd{\LWR@HTML@textorn}[1]{#1} \newrobustcmd{\LWR@HTML@textqt}[1]{#1} \newrobustcmd{\LWR@HTML@textsh}[1]{#1} -\newrobustcmd{\LWR@HTML@texttm}[1]{#1} +\newrobustcmd{\LWR@HTML@texttm}[1]{\texttt{#1}} \newrobustcmd{\LWR@HTML@texttv}[1]{\texttt{#1}} -\newrobustcmd{\LWR@HTML@textl}[1]{#1} -\newrobustcmd{\LWR@HTML@texto}[1]{#1} -\newrobustcmd{\LWR@HTML@textp}[1]{#1} -\newrobustcmd{\LWR@HTML@textt}[1]{#1} +\newrobustcmd{\LWR@HTML@textl}[1]{\InlineClass{textln}{#1}} +\newrobustcmd{\LWR@HTML@texto}[1]{\textsc{#1}} +\newrobustcmd{\LWR@HTML@textp}[1]{\InlineClass{textp}{#1}} +\newrobustcmd{\LWR@HTML@textt}[1]{\InlineClass{textt}{#1}} \newrobustcmd{\LWR@HTML@textpl}[1]{#1} \newrobustcmd{\LWR@HTML@textpo}[1]{\textsc{#1}} -\newrobustcmd{\LWR@HTML@texttl}[1]{#1} +\newrobustcmd{\LWR@HTML@texttl}[1]{\InlineClass{textln}{#1}} \newrobustcmd{\LWR@HTML@textto}[1]{\textsc{#1}} \newrobustcmd{\LWR@HTML@textol}[1]{#1} \newrobustcmd{\LWR@HTML@textswash}[1]{#1} @@ -61156,14 +62089,14 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak \newrobustcmd{\LWR@HTML@textex}[1]{#1} \newrobustcmd{\LWR@HTML@textux}[1]{#1} \newrobustcmd{\LWR@HTML@textrw}[1]{#1} -\newrobustcmd{\LWR@HTML@textmb}[1]{\textmd{#1}} -\newrobustcmd{\LWR@HTML@textdb}[1]{\textbf{#1}} -\newrobustcmd{\LWR@HTML@textsb}[1]{\textbf{#1}} -% \newrobustcmd{\LWR@HTML@texteb}[1]{#1} -\newrobustcmd{\LWR@HTML@textub}[1]{\texteb{#1}} -% \newrobustcmd{\LWR@HTML@textlg}[1]{#1} -\newrobustcmd{\LWR@HTML@textel}[1]{\textlg{#1}} -\newrobustcmd{\LWR@HTML@textul}[1]{\textlg{#1}} +\newrobustcmd{\LWR@HTML@textmb}[1]{{\LWR@HTML@mbweight\InlineClass{textmb}{#1}}} +\newrobustcmd{\LWR@HTML@textdb}[1]{{\LWR@HTML@dbweight\InlineClass{textdb}{#1}}} +\newrobustcmd{\LWR@HTML@textsb}[1]{{\LWR@HTML@sbweight\InlineClass{textsb}{#1}}} +% \newrobustcmd{\LWR@HTML@texteb}[1]}{#1} +\newrobustcmd{\LWR@HTML@textub}[1]{{\LWR@HTML@ubweight\InlineClass{textub}{#1}}} +% \newrobustcmd{\LWR@HTML@textlg}[1]}{#1} +\newrobustcmd{\LWR@HTML@textel}[1]{{\LWR@HTML@elweight\InlineClass{textel}{#1}}} +\newrobustcmd{\LWR@HTML@textul}[1]{{\LWR@HTML@ulweight\InlineClass{textul}{#1}}} \LWR@formatted{textln} \LWR@formatted{textos} @@ -61215,110 +62148,60 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak \LWR@formatted{textel} \LWR@formatted{textul} -\newrobustcmd{\LWR@null@textln}[1]{#1} -\newrobustcmd{\LWR@null@textos}[1]{#1} -\newrobustcmd{\LWR@null@textin}[1]{#1} -\newrobustcmd{\LWR@null@textsu}[1]{#1} -% \newrobustcmd{\LWR@null@textsi}[1]{#1} -\newrobustcmd{\LWR@null@textdf}[1]{#1} - -\ifdef{\LWR@HTML@swshape}{}{% duplicated by fontaxes - \newrobustcmd{\LWR@null@textsw}[1]{#1} -} - -\newrobustcmd{\LWR@null@textti}[1]{#1} -\newrobustcmd{\LWR@null@textlt}[1]{#1} -\newrobustcmd{\LWR@null@textof}[1]{#1} -\newrobustcmd{\LWR@null@textalt}[1]{#1} -\newrobustcmd{\LWR@null@textreg}[1]{#1} -\newrobustcmd{\LWR@null@emboss}[1]{#1} -\newrobustcmd{\LWR@null@textorn}[1]{#1} -\newrobustcmd{\LWR@null@textqt}[1]{#1} -\newrobustcmd{\LWR@null@textsh}[1]{#1} -\newrobustcmd{\LWR@null@texttm}[1]{#1} -\newrobustcmd{\LWR@null@texttv}[1]{#1} -\newrobustcmd{\LWR@null@textl}[1]{#1} -\newrobustcmd{\LWR@null@texto}[1]{#1} -\newrobustcmd{\LWR@null@textp}[1]{#1} -\newrobustcmd{\LWR@null@textt}[1]{#1} -\newrobustcmd{\LWR@null@textpl}[1]{#1} -\newrobustcmd{\LWR@null@textpo}[1]{#1} -\newrobustcmd{\LWR@null@texttl}[1]{#1} -\newrobustcmd{\LWR@null@textto}[1]{#1} -\newrobustcmd{\LWR@null@textol}[1]{#1} -\newrobustcmd{\LWR@null@textswash}[1]{#1} -\newrobustcmd{\LWR@null@textu}[1]{#1} -\newrobustcmd{\LWR@null@textscu}[1]{#1} -\newrobustcmd{\LWR@null@textui}[1]{#1} -\newrobustcmd{\LWR@null@textri}[1]{#1} -\newrobustcmd{\LWR@null@textnw}[1]{#1} -\newrobustcmd{\LWR@null@textcd}[1]{#1} -\newrobustcmd{\LWR@null@textec}[1]{#1} -\newrobustcmd{\LWR@null@textuc}[1]{#1} -\newrobustcmd{\LWR@null@textet}[1]{#1} -\newrobustcmd{\LWR@null@textep}[1]{#1} -\newrobustcmd{\LWR@null@textex}[1]{#1} -\newrobustcmd{\LWR@null@textux}[1]{#1} -\newrobustcmd{\LWR@null@textrw}[1]{#1} -\newrobustcmd{\LWR@null@textmb}[1]{#1} -\newrobustcmd{\LWR@null@textdb}[1]{#1} -\newrobustcmd{\LWR@null@textsb}[1]{#1} -% \newrobustcmd{\LWR@null@texteb}[1]{#1} -\newrobustcmd{\LWR@null@textub}[1]{#1} -% \newrobustcmd{\LWR@null@textlg}[1]{#1} -\newrobustcmd{\LWR@null@textel}[1]{#1} -\newrobustcmd{\LWR@null@textul}[1]{#1} - -\appto{\LWR@nullfonts}{% -\LetLtxMacro\textln\LWR@null@textln% -\LetLtxMacro\textos\LWR@null@textos% -\LetLtxMacro\textin\LWR@null@textin% -\LetLtxMacro\textsu\LWR@null@textsu% -% \LetLtxMacro\textsi\LWR@null@textsi% -\LetLtxMacro\textdf\LWR@null@textdf% -\LetLtxMacro\textsw\LWR@null@textsw% -\LetLtxMacro\textti\LWR@null@textti% -\LetLtxMacro\textlt\LWR@null@textlt% -\LetLtxMacro\textof\LWR@null@textof% -\LetLtxMacro\textalt\LWR@null@textalt% -\LetLtxMacro\textreg\LWR@null@textreg% -\LetLtxMacro\emboss\LWR@null@emboss% -\LetLtxMacro\textorn\LWR@null@textorn% -\LetLtxMacro\textqt\LWR@null@textqt% -\LetLtxMacro\textsh\LWR@null@textsh% -\LetLtxMacro\texttm\LWR@null@texttm% -\LetLtxMacro\texttv\LWR@null@texttv% -\LetLtxMacro\textl\LWR@null@textl% -\LetLtxMacro\texto\LWR@null@texto% -\LetLtxMacro\textp\LWR@null@textp% -\LetLtxMacro\textt\LWR@null@textt% -\LetLtxMacro\textpl\LWR@null@textpl% -\LetLtxMacro\textpo\LWR@null@textpo% -\LetLtxMacro\texttl\LWR@null@texttl% -\LetLtxMacro\textto\LWR@null@textto% -\LetLtxMacro\textol\LWR@null@textol% -\LetLtxMacro\textswash\LWR@null@textswash% -\LetLtxMacro\textu\LWR@null@textu% -\LetLtxMacro\textscu\LWR@null@textscu% -\LetLtxMacro\textui\LWR@null@textui% -\LetLtxMacro\textri\LWR@null@textri% -\LetLtxMacro\textnw\LWR@null@textnw% -\LetLtxMacro\textcd\LWR@null@textcd% -\LetLtxMacro\textec\LWR@null@textec% -\LetLtxMacro\textuc\LWR@null@textuc% -\LetLtxMacro\textet\LWR@null@textet% -\LetLtxMacro\textep\LWR@null@textep% -\LetLtxMacro\textex\LWR@null@textex% -\LetLtxMacro\textux\LWR@null@textux% -\LetLtxMacro\textrw\LWR@null@textrw% -\LetLtxMacro\textmb\LWR@null@textmb% -\LetLtxMacro\textdb\LWR@null@textdb% -\LetLtxMacro\textsb\LWR@null@textsb% -% \LetLtxMacro\texteb\LWR@null@texteb% -\LetLtxMacro\textub\LWR@null@textub% -% \LetLtxMacro\textlg\LWR@null@textlg% -\LetLtxMacro\textel\LWR@null@textel% -\LetLtxMacro\textul\LWR@null@textul% +% \end{macrocode} +% +% \changes{v0.84}{2020/04/11}{\pkg{nfssext-cfr}: \cs{FilenameNullify}.} +% \begin{macrocode} +\FilenameNullify{% + \LetLtxMacro\textln\@firstofone% + \LetLtxMacro\textos\@firstofone% + \LetLtxMacro\textin\@firstofone% + \LetLtxMacro\textsu\@firstofone% +% \LetLtxMacro\textsi\@firstofone% + \LetLtxMacro\textdf\@firstofone% + \LetLtxMacro\textsw\@firstofone% + \LetLtxMacro\textti\@firstofone% + \LetLtxMacro\textlt\@firstofone% + \LetLtxMacro\textof\@firstofone% + \LetLtxMacro\textalt\@firstofone% + \LetLtxMacro\textreg\@firstofone% + \LetLtxMacro\emboss\@firstofone% + \LetLtxMacro\textorn\@firstofone% + \LetLtxMacro\textqt\@firstofone% + \LetLtxMacro\textsh\@firstofone% + \LetLtxMacro\texttm\@firstofone% + \LetLtxMacro\texttv\@firstofone% + \LetLtxMacro\textl\@firstofone% + \LetLtxMacro\texto\@firstofone% + \LetLtxMacro\textp\@firstofone% + \LetLtxMacro\textt\@firstofone% + \LetLtxMacro\textpl\@firstofone% + \LetLtxMacro\textpo\@firstofone% + \LetLtxMacro\texttl\@firstofone% + \LetLtxMacro\textto\@firstofone% + \LetLtxMacro\textol\@firstofone% + \LetLtxMacro\textswash\@firstofone% + \LetLtxMacro\textu\@firstofone% + \LetLtxMacro\textscu\@firstofone% + \LetLtxMacro\textui\@firstofone% + \LetLtxMacro\textri\@firstofone% + \LetLtxMacro\textnw\@firstofone% + \LetLtxMacro\textcd\@firstofone% + \LetLtxMacro\textec\@firstofone% + \LetLtxMacro\textuc\@firstofone% + \LetLtxMacro\textet\@firstofone% + \LetLtxMacro\textep\@firstofone% + \LetLtxMacro\textex\@firstofone% + \LetLtxMacro\textux\@firstofone% + \LetLtxMacro\textrw\@firstofone% + \LetLtxMacro\textmb\@firstofone% + \LetLtxMacro\textdb\@firstofone% + \LetLtxMacro\textsb\@firstofone% +% \LetLtxMacro\texteb\@firstofone% + \LetLtxMacro\textub\@firstofone% +% \LetLtxMacro\textlg\@firstofone% + \LetLtxMacro\textel\@firstofone% + \LetLtxMacro\textul\@firstofone% } \providecommand*{\zeroslash}{0} @@ -61756,7 +62639,6 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak % % % Discard all options for \pkg{lwarp-nowidow}: - % \codehtml % \begin{macrocode} \LWR@ProvidesPackageDrop{nowidow}[2011/09/20] @@ -61844,8 +62726,22 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak % \codehtml % % Some disabled options: +% \changes{v0.84}{2020/04/06}{\pkg{ntheorem}: Warning if \optn{thref}.} % \begin{macrocode} -\DeclareOption{thref}{} +\DeclareOption{thref}{ + \AtEndDocument{ + \PackageWarningNoLine{lwarp}{% + Lwarp uses cleveref, which takes over ntheorem's\MessageBreak + referencing, including + \protect\label \space and \protect\thref.\MessageBreak + Cleveref does not accept ntheorem's optional\MessageBreak + argument for \protect\label, so it will appear\MessageBreak + in the text. It is recommended to remove the\MessageBreak + thref option, \protect\usepackage{cleveref} instead,\MessageBreak + and remove any trailing optional arguments for \protect\label% + }% + } +} \newbool{LWR@ntheoremmarks} @@ -62946,7 +63842,14 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak }% \setkeys{LWRparcols}{#1}% } - {\end{LWR@setvirtualpage}} + {% +% \end{macrocode} +% +% \changes{v0.84}{2020/04/21}{\pkg{parcolumns}: Fixed: Missing \cs{colplacechunks}.} +% \begin{macrocode} + \colplacechunks% + \end{LWR@setvirtualpage}% + } \newcommand{\LWR@parcolumns@onecol}[1]{% \ifbool{LWR@parcolumns@started}% @@ -63069,8 +63972,8 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak } \AtBeginDocument{ -\crefname{parnotemark}{paragraph note}{paragraph notes}% -\Crefname{parnotemark}{Paragraph note}{Paragraph notes} + \crefname{parnotemark}{paragraph note}{paragraph notes} + \Crefname{parnotemark}{Paragraph note}{Paragraph notes} } % \end{macrocode} % @@ -65221,7 +66124,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf', \xpatchcmd{\endquoting}{\quo@endtext} {\quo@endtext\end{LWR@blocktextcurrentfont}\LWR@stoppars} {} - {\LWR@patcherror{imakeidx}{endquoting}} + {\LWR@patcherror{quoting}{endquoting}} % \end{macrocode} % \iffalse @@ -65307,21 +66210,142 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf', % \changes{v0.38}{2017/08/26}{\pkg{realscripts}: Added.} % \changes{v0.42}{2017/10/16}{\pkg{realscripts}: Fix for subscripts in a \env{lateximage}.} % \changes{v0.47}{2018/01/26}{\pkg{realscripts}: Fix: Line wrap at \HTML\ hyphen.} +% \changes{v0.84}{2020/04/10}{\pkg{realscripts}: Fixed starred \cs{textsuperscript}, +% \cs{textsubscript}.} +% \changes{v0.84}{2020/04/13}{\pkg{realscripts}: Improved supersub scripts.} +% \changes{v0.84}{2020/04/13}{\pkg{realscripts}: Added print mode.} % % \codehtml % % \begin{macrocode} -\LWR@ProvidesPackageDrop{realscripts}[2016/02/13] +\LWR@ProvidesPackagePass{realscripts}[2016/02/13] % \end{macrocode} % +% +% The following are copied verbatim from the original, +% but given new names, since \pkg{xparse} definitions should not be \cs{let}. % \begin{macrocode} -\let\realsuperscript\textsuperscript -\let\realsubscript\textsubscript +\ExplSyntaxOn -\let\fakesuperscript\textsuperscript -\let\fakesubscript\textsubscript +\DeclareDocumentCommand \LWR@print@realsubscript {m} { + \fontspec_if_fontspec_font:TF { + \fontspec_if_opentype:TF + { \fontspec_if_feature:nTF {+subs} + { {\addfontfeature{VerticalPosition=Inferior}#1} } + { \fontspec_if_feature:nTF {+sinf} + { {\addfontfeature{VerticalPosition=ScientificInferior}#1} } + { \fakesubscript{#1} } + } + } + { \fontspec_if_aat_feature:nnTF {10} {2} + { {\addfontfeature{VerticalPosition=Inferior}#1} } + { \fakesubscript{#1} } + } + } + { \fakesubscript{#1} } +} + +\DeclareDocumentCommand \LWR@HTML@realsubscript {m} { + \LWR@HTML@textsubscript{#1} +} + +\LWR@formatted{realsubscript} + + +\DeclareDocumentCommand \LWR@print@realsuperscript {m} { + \fontspec_if_fontspec_font:TF + { + \fontspec_if_opentype:TF + { \fontspec_if_feature:nTF {+sups} + { {\addfontfeature{VerticalPosition=Superior}#1} } + { \fakesuperscript{#1} } + } + { \fontspec_if_aat_feature:nnTF {10} {1} + { {\addfontfeature{VerticalPosition=Superior}#1} } + { \fakesuperscript{#1} } + } + } + { \fakesuperscript{#1} } +} + +\DeclareDocumentCommand \LWR@HTML@realsuperscript {m} { + \LWR@HTML@textsuperscript{#1} +} + +\LWR@formatted{realsuperscript} + + +\DeclareDocumentCommand \LWR@print@textsubsuperscript {s O{l} mm} { + \leavevmode + \group_begin: + \IfBooleanTF #1 + { + \hbox_set:Nn \l_tmpa_box {\textsubscript*{#3}} + \hbox_set:Nn \l_tmpb_box {\textsuperscript*{#4}} + } + { + \hbox_set:Nn \l_tmpa_box {\textsubscript{#3}} + \hbox_set:Nn \l_tmpb_box {\textsuperscript{#4}} + } + \hbox_set:Nn \l_tmpa_box + { \box_move_down:nn \subsupersep {\box_use:N \l_tmpa_box} } + \hbox_set:Nn \l_tmpb_box + { \box_move_up:nn \subsupersep {\box_use:N \l_tmpb_box} } + \str_case:nnF {#2} + { + {l}{\use_i:nnn} + {c}{\use_ii:nnn} + {r}{\use_iii:nnn} + } + { + \PackageWarning{realscripts}{ + Unknown~alignment~option~`#2'. \MessageBreak + One~ of~ `l',~ `c',~ `r',~ only + } + \use_i:nnn + } + { + \hbox_overlap_right:n { \box_use:N \l_tmpa_box } + \hbox_overlap_right:n { \box_use:N \l_tmpb_box } + \skip_horizontal:n { + \dim_max:nn {\box_wd:N \l_tmpa_box} {\box_wd:N \l_tmpb_box} + } + } + { + \dim_compare:nTF { \box_wd:N \l_tmpa_box > \box_wd:N \l_tmpb_box } + { + \skip_horizontal:n { + 0.5\box_wd:N \l_tmpa_box-0.5\box_wd:N \l_tmpb_box + } + \box_use:N \l_tmpb_box + \skip_horizontal:n { + -0.5\box_wd:N \l_tmpa_box-0.5\box_wd:N \l_tmpb_box + } + \box_use:N \l_tmpa_box + } + { + \skip_horizontal:n { + 0.5\box_wd:N \l_tmpb_box-0.5\box_wd:N \l_tmpa_box + } + \box_use:N \l_tmpa_box + \skip_horizontal:n { + -0.5\box_wd:N \l_tmpb_box-0.5\box_wd:N \l_tmpa_box + } + \box_use:N \l_tmpb_box + } + } + { + \skip_horizontal:n { + \dim_max:nn {\box_wd:N \l_tmpa_box} {\box_wd:N \l_tmpb_box} + } + \hbox_overlap_left:n { \box_use:N \l_tmpa_box } + \hbox_overlap_left:n { \box_use:N \l_tmpb_box } + } + \group_end: +} + +\ExplSyntaxOff -\newlength{\subsupersep} \newcommand*{\LWR@realscriptsalign}{} @@ -65339,18 +66363,23 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf', }{}% } -\DeclareDocumentCommand \textsubsuperscript {s O{l} mm} {% +\DeclareDocumentCommand \LWR@HTML@textsubsuperscript {s O{l} mm} {% \LWR@setrealscriptsalign{#2}% \InlineClass[\LWR@realscriptsalign]{supsubscript}{% \textsuperscript{#4}\textsubscript{#3}% }% } +\LWR@formatted{textsubsuperscript} -\DeclareDocumentCommand \textsupersubscript {s O{l} mm} {% - \LWR@setrealscriptsalign{#2}% - \InlineClass[\LWR@realscriptsalign]{supsubscript}{% - \textsubscript{#4}\textsuperscript{#3}% - }% +\FilenameNullify{% + \RenewDocumentCommand{\textsuperscript}{s m}{}% + \RenewDocumentCommand{\textsubscript}{s m}{}% + \renewcommand{\fakesubscript}[1]{}% + \renewcommand{\fakesuperscript}[1]{}% + \renewcommand{\realsubscript}[1]{}% + \renewcommand{\realsuperscript}[1]{}% + \renewcommand{\textsubsuperscript}[2]{}% + \renewcommand{\textsupersubscript}[2]{}% } % \end{macrocode} % @@ -65874,12 +66903,14 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf', % \pkg{rotfloat} is emulated. % % \changes{v0.34}{2017/07/25}{\pkg{rotfloat}: Added.} +% \changes{v0.84}{2020/04/08}{\pkg{rotfloat}: Fix: Requires \pkg{rotating}.} % % \codehtml % \begin{macrocode} \LWR@ProvidesPackageDrop{rotfloat}[2004/01/04] \RequirePackage{float} +\RequirePackage{rotating} % \end{macrocode} % % @@ -66086,11 +67117,12 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf', % % \changes{v0.44}{2017/11/20}{\pkg{scrextend}: Added.} % \changes{v0.47}{2018/01/26}{\pkg{scrextend}: Fix: Line wrap at \HTML\ hyphen.} +% \changes{v0.84}{2020/03/28}{\pkg{scrextend}: Updated to v3.29.} % % \codehtml % % \begin{macrocode} -\LWR@ProvidesPackageDrop{scrextend}[2018/03/30] +\LWR@ProvidesPackageDrop{scrextend}[2020/01/24] % \end{macrocode} % % \begin{macrocode} @@ -66105,23 +67137,90 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf', \DeclareDocumentCommand{\useseriesofkomafont}{m}{} \DeclareDocumentCommand{\useshapeofkomafont}{m}{} +\providecommand*{\coverpagetopmargin}{} +\providecommand*{\coverpagebottommargin}{} +\providecommand*{\coverpageleftmargin}{} +\providecommand*{\coverpagerightmargin}{} + +% \end{macrocode} +% +% Title page: +% \changes{v0.84}{2020/03/28}{\pkg{scrextend}: Added \cs{titlehead}, \cs{subject}, +% \cs{subtitle}, \cs{published}.} +% \begin{macrocode} \AtBeginDocument{ \let\LWR@koma@orig@maketitle\maketitle \DeclareDocumentCommand{\maketitle}{o}{\LWR@koma@orig@maketitle} } +\DeclareDocumentCommand{\@maketitle}{}{% + \ifdefvoid{\@titlehead}{}{% + \begin{BlockClass}{titlehead}% + \@titlehead% + \end{BlockClass}% + }% + \ifdefvoid{\@subject}{}{% + \begin{BlockClass}{subject}% + \@subject% + \end{BlockClass}% + }% + \LWR@stoppars% + \LWR@htmltag{\LWR@tagtitle}% + \@title% + \LWR@htmltag{\LWR@tagtitleend}% + \ifdefvoid{\@subtitle}{}{% + \begin{BlockClass}{subtitle}% + \@subtitle% + \end{BlockClass}% + }% + \LWR@startpars% + \begin{BlockClass}{author}% +% \end{macrocode} +% \begin{macrocode} + \renewcommand*{\cr}{}% + \renewcommand*{\crcr}{}% + \renewcommand*{\noalign}{}% +% \end{macrocode} +% \begin{macrocode} + \renewcommand{\and}{% + \end{BlockClass}% + \begin{BlockClass}{oneauthor}% + }% + \begin{BlockClass}{oneauthor}% + \@author% + \end{BlockClass}% + \end{BlockClass}% + \begin{BlockClass}{titledate}% + \@date% + \end{BlockClass}% + \ifdefvoid{\@published}{}{% + \begin{BlockClass}{published}% + \@published% + \end{BlockClass}% + }% +} + +\AddSubtitlePublished + \DeclareDocumentCommand{\extratitle}{m}{} -\DeclareDocumentCommand{\titlehead}{m}{} -\DeclareDocumentCommand{\subject}{m}{} +\DeclareDocumentCommand{\frontispiece}{m}{} + +\def\@titlehead{}% +\DeclareDocumentCommand{\titlehead}{m}{\gdef\@titlehead{#1}}% + +\def\@subject{}% +\DeclareDocumentCommand{\subject}{m}{\gdef\@subject{#1}}% + +% \subtitle and \published are defined by \AddSubtitlePublished + \DeclareDocumentCommand{\publishers}{m}{\published{#1}} + \DeclareDocumentCommand{\uppertitleback}{m}{} \DeclareDocumentCommand{\lowertitleback}{m}{} \DeclareDocumentCommand{\dedication}{m}{} \DeclareDocumentCommand{\ifthispageodd}{m m}{#1} -\DeclareDocumentCommand{\titlepagestyle}{}{} - \DeclareDocumentCommand{\cleardoublepageusingstyle}{m}{} \DeclareDocumentCommand{\cleardoubleemptypage}{}{} \DeclareDocumentCommand{\cleardoubleplainpage}{}{} @@ -67139,16 +68238,17 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf', % % \begin{noindmacro}{\sidecaption} * \oarg{entry} \oarg{offset} \marg{text} % \changes{v0.47}{2018/01/30}{\pkg{sidenotes}: Fix for \SVG\ math in captions.} +% \changes{v0.84}{2020/04/16}{\pkg{sidenotes}: \cs{sidecaption} not long arg.} % \begin{macrocode} -\RenewDocumentCommand \sidecaption {s o o +m} +\RenewDocumentCommand \sidecaption {s o o m} { \LWR@stoppars \begingroup - \captionsetup{style=sidecaption} + \captionsetup{style=sidecaption}% \IfBooleanTF{#1} { % starred \begin{BlockClass}[border:none ; box-shadow:none]{marginblock} - \caption*{#4} + \caption*{#4}% \end{BlockClass} } { % unstarred @@ -67172,11 +68272,11 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf', % \begin{macrocode} \NewDocumentEnvironment{KFLTsidenotes@marginfloat}{O{-1.2ex} m} {% start -\LWR@BlockClassWP{float:right; width:2in; margin:10pt}{}{marginblock}% -\captionsetup{type=#2}% + \LWR@BlockClassWP{float:right; width:2in; margin:10pt}{}{marginblock}% + \renewcommand*{\@captype}{#2}% } {% -\endLWR@BlockClassWP% + \endLWR@BlockClassWP% } \RenewDocumentEnvironment{marginfigure}{o} @@ -68278,6 +69378,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf', % \pkg{slantsc} is emulated for \HTML, and used as-is for print output. % % \changes{v0.72}{2019/05/27}{\pkg{slantsc}: Added.} +% \changes{v0.84}{2020/04/11}{\pkg{slantsc}: \cs{FilenameNullfiy}.} % % \codehtml % @@ -68289,10 +69390,8 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf', \newcommand*{\LWR@HTML@noscshape}{} \LWR@formatted{noscshape} -\newcommand*{\LWR@null@noscshape}{} - -\appto{\LWR@nullfonts}{% -\LetLtxMacro\noscshape\LWR@null@noscshape% +\FilenameNullify{% + \LetLtxMacro\noscshape\@empty% } % \end{macrocode} % @@ -69482,23 +70581,18 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf', % In print mode the minipages are used to place the items next to each other. % In \HTML\ they are placed side-by-side automatically. % \begin{macrocode} -\ifdef{\subcaption@minipage}{ - \xpatchcmd{\subcaption@minipage} - {\minipage} - {\minipagefullwidth\minipage} - {} - {\LWR@patcherror{subcaption}{subcaption@minipage}} -}{} +\xpretocmd{\subcaption@iiminipage} + {\minipagefullwidth} + {} + {\LWR@patcherror{subcaption}{subcaption@iiminipage}} % \end{macrocode} % % Likewise for a \cs{subcaptionbox}: % \begin{macrocode} -\ifdef{\subcaptionbox}{ - \xpretocmd{\subcaptionbox} - {\minipagefullwidth} - {} - {\LWR@patcherror{subcaption}{subcaptionbox}} -}{} +\xpretocmd{\subcaptionbox} + {\minipagefullwidth} + {} + {\LWR@patcherror{subcaption}{subcaptionbox}} % \end{macrocode} % % \iffalse @@ -69758,7 +70852,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf', % comes from the |sub@<label>|: % \begin{macrocode} \renewcommand{\sf@subref}[1]{% -\LWR@subnewref{#1}{sub@#1}% + \LWR@subnewref{#1}{sub@#1}% } % \end{macrocode} % \end{noindmacro} @@ -70754,7 +71848,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf', % \changes{v0.62}{2018/11/17}{\pkg{textcomp}: Fix conflict with \pkg{xunicode}.} % \begin{macrocode} \providecommand*{\LWR@HTML@textcircled}[1]{% -\InlineClass[border: 1px solid \LWR@currenttextcolor]{textcircled}{#1}% + \InlineClass[border: 1px solid \LWR@currenttextcolor]{textcircled}{#1}% } \LWR@formatted{capitalcedilla} @@ -70770,6 +71864,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf', \LWR@formatted{capitalbreve} \LWR@formatted{capitalmacron} \LWR@formatted{capitaldotaccent} + \LWR@formatted{textcircled} % \end{macrocode} % Nullify \pkg{textcomp} macros when generating filenames: @@ -72221,16 +73316,18 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf', % then initilize: % % \changes{v0.39}{2017/09/03}{\pkg{titling}: Removed extraneous \protect\env{center} environments.} +% \changes{v0.84}{2020/04/22}{\pkg{titling}: \cs{AtBeginDocument}.} % \begin{macrocode} +\AtBeginDocument{ + \pretitle{} + \posttitle{} -\pretitle{} -\posttitle{} - -\preauthor{} -\postauthor{} + \preauthor{} + \postauthor{} -\predate{} -\postdate{} + \predate{} + \postdate{} +} % \end{macrocode} % % @@ -72244,7 +73341,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf', % Redefine the footnote mark: % % \begin{macrocode} -\def\@makefnmark{\textsuperscript{\@thefnmark}} + \def\@makefnmark{\textsuperscript{\@thefnmark}}% % \end{macrocode} % % \begin{center} @@ -72258,11 +73355,11 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf', % Redefine the footnote text: % % \begin{macrocode} -\long\def\@makefntext##1{% + \long\def\@makefntext##1{% % \end{macrocode} % Make the footnote mark and some extra horizontal space for the tags: % \begin{macrocode} -\makethanksmark~% + \makethanksmark~% % \end{macrocode} % \begin{center} % \begin{minipage}{.7\linewidth} @@ -72274,8 +73371,8 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf', % % Print the text: % \begin{macrocode} -##1% -}% \@makefntext + ##1% + }% \@makefntext } % \end{macrocode} % \end{macro} @@ -72306,32 +73403,32 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf', % \end{macrocode} % An \HTML\ titlepage \element{div} is used for all classes. % \begin{macrocode} -\begin{titlepage} + \begin{titlepage} % \end{macrocode} % Select which kind of footnote marks to use: % \begin{macrocode} -\@bsmarkseries + \@bsmarkseries % \end{macrocode} % Set up special patches: % \begin{macrocode} -\LWR@maketitlesetup + \LWR@maketitlesetup % \end{macrocode} % Typeset the title, etc: % \begin{macrocode} -\@maketitle + \@maketitle % \end{macrocode} % Immediately generate any \cs{thanks} footnotes: % \changes{v0.73}{2019/06/25}{\pkg{titling}: Fix: Paragraph tags.} % \begin{macrocode} -\LWR@stoppars\@thanks\LWR@startpars + \LWR@stoppars\@thanks\LWR@startpars % \end{macrocode} % Close the \HTML\ titlepage div: % \begin{macrocode} -\end{titlepage} + \end{titlepage} % \end{macrocode} % Reset the footnote counter: % \begin{macrocode} -\@bscontmark + \@bscontmark } % \end{macrocode} % \end{macro} @@ -73073,21 +74170,21 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf', % \begin{macrocode} \DeclareDocumentCommand{\newlistof}{o m m m} {% -\IfValueTF{#1} -{\newlistentry[#1]{#2}{#3}{0}} -{\newlistentry{#2}{#3}{0}} -\@namedef{ext@#2}{#3} -\@ifundefined{c@#3depth}{\newcounter{#3depth}}{} -\setcounter{#3depth}{1} -\@namedef{cftmark#3}{} -\@namedef{listof#2}{\listof{#2}{#4}} -\@namedef{@cftmake#3title}{} -\expandafter\newlength\csname cftbefore#3titleskip\endcsname -\expandafter\newlength\csname cftafter#3titleskip\endcsname -\@namedef{cft#3titlefont}{} -\@namedef{cftafter#3title}{} -\@namedef{cft#3prehook}{} -\@namedef{cft#3posthook}{} + \IfValueTF{#1}% + {\newlistentry[#1]{#2}{#3}{0}}% + {\newlistentry{#2}{#3}{0}}% + \@namedef{ext@#2}{#3}% + \@ifundefined{c@#3depth}{\newcounter{#3depth}}{}% + \setcounter{#3depth}{1}% + \@namedef{cftmark#3}{}% + \@namedef{listof#2}{\listof{#2}{#4}}% + \@namedef{@cftmake#3title}{}% + \expandafter\newlength\csname cftbefore#3titleskip\endcsname% + \expandafter\newlength\csname cftafter#3titleskip\endcsname% + \@namedef{cft#3titlefont}{}% + \@namedef{cftafter#3title}{}% + \@namedef{cft#3prehook}{}% + \@namedef{cft#3posthook}{}% } % \end{macrocode} % \end{noindmacro} @@ -73438,7 +74535,6 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf', % % \codehtml % -% Discard all options for \pkg{lwarp-transparent}: % \begin{macrocode} \LWR@ProvidesPackagePass{transparent}[2019/11/29] % \end{macrocode} @@ -74391,11 +75487,12 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf', % \begin{macrocode} \LWR@restoreoriglists% % \end{macrocode} -% \DescribePackage{verse}\DescribeClass{memoir}\gindex{memoir=\pkg{memoir}>verse} +% \DescribePackage{verse} +% \DescribeClass{memoir}% % The \pkg{verse} or \pkg{memoir} packages can place stanza numbers to the left % with their \cs{flagverse} command. \DescribeMacro{\flagverse} -% Do not allow them to go into the left margin, which would cause \prog{pdfcrop} -% to crop the entire page further to the left: +% The following does not allow them to go into the left margin, +% which would cause \prog{pdfcrop} to crop the entire page further to the left. % \DescribeLength{\vleftskip} % \begin{macrocode} \ifdef{\vleftskip}{% @@ -75100,37 +76197,37 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf', \NewDocumentEnvironment{wrapfigure}{o m o m} {% -\begin{LWR@setvirtualpage}*% -\LWR@subwrapfigure{#2}{#4}% -\captionsetup{type=figure}% + \begin{LWR@setvirtualpage}*% + \LWR@subwrapfigure{#2}{#4}% + \renewcommand*{\@captype}{figure}% } {% -\endLWR@BlockClassWP% -\end{LWR@setvirtualpage}% + \endLWR@BlockClassWP% + \end{LWR@setvirtualpage}% } \NewDocumentEnvironment{wraptable}{o m o m} {% -\begin{LWR@setvirtualpage}*% -\LWR@subwrapfigure{#2}{#4}% -\captionsetup{type=table}% + \begin{LWR@setvirtualpage}*% + \LWR@subwrapfigure{#2}{#4}% + \renewcommand*{\@captype}{table}% } {% -\endLWR@BlockClassWP% -\end{LWR@setvirtualpage}% + \endLWR@BlockClassWP% + \end{LWR@setvirtualpage}% } \NewDocumentEnvironment{wrapfloat}{m o m o m} {% -\begin{LWR@setvirtualpage}*% -\LWR@subwrapfigure{#3}{#5}% -\captionsetup{type=#1}% + \begin{LWR@setvirtualpage}*% + \LWR@subwrapfigure{#3}{#5}% + \renewcommand*{\@captype}{#1}% } {% -\endLWR@BlockClassWP% -\end{LWR@setvirtualpage}% + \endLWR@BlockClassWP% + \end{LWR@setvirtualpage}% } \newlength{\wrapoverhang} @@ -75562,7 +76659,7 @@ padding:\LWR@printlength{\fboxsep}% } \AtBeginDocument{ -\LWR@formatted{colorbox} + \LWR@formatted{colorbox} } % \end{macrocode} % \end{macro} @@ -75599,7 +76696,7 @@ padding:\LWR@printlength{\fboxsep}% } \AtBeginDocument{ -\LWR@formatted{colorboxBlock} + \LWR@formatted{colorboxBlock} } % \end{macrocode} % \end{macro} @@ -75635,7 +76732,7 @@ padding:\LWR@printlength{\fboxsep}% } \AtBeginDocument{ -\LWR@formatted{fcolorbox} + \LWR@formatted{fcolorbox} } % \end{macrocode} % \end{macro} @@ -75688,7 +76785,7 @@ padding:\LWR@printlength{\fboxsep}% } \AtBeginDocument{ -\LWR@formatted{fcolorboxBlock} + \LWR@formatted{fcolorboxBlock} } % \end{macrocode} % \end{macro} @@ -76520,8 +77617,12 @@ height:\LWR@printlength{\LWR@tempheight}% % % The \pkg{lwarp} core uses the following to disable CJK \pkg{xpinyin} for % filenames, side\TOC, and footnotes. +% +% \changes{v0.84}{2020/04/21}{\pkg{xpinyin}: Disables pinyin when null fonts.} % \begin{macrocode} \renewcommand*{\LWR@disablepinyin}{\disablepinyin} + +\FilenameNullify{\LWR@disablepinyin} % \end{macrocode} % % \iffalse @@ -77136,12 +78237,14 @@ height:\LWR@printlength{\LWR@tempheight}% % \changes{v0.73}{2019/07/10}{\pkg{lwarp-patch-komascript}: Fix for captions.} % \begin{macrocode} \AtBeginDocument{ +\AtBeginDocument{ \LetLtxMacro\captionbelow\caption \LetLtxMacro\captionabove\caption \LetLtxMacro\captionofbelow\captionof \LetLtxMacro\captionofabove\captionof } +} \RenewDocumentEnvironment{captionbeside}{o m o o o s} {} @@ -77247,10 +78350,10 @@ height:\LWR@printlength{\LWR@tempheight}% \RequirePackage{lwarp-parskip} \RequirePackage{lwarp-setspace}% req'd \RequirePackage{lwarp-showidx} -\RequirePackage{lwarp-subcaption}% req'd for \subfloat % \end{macrocode} -% \changes{v0.83}{2020/03/27}{\pkg{lwarp-patch-memoir}: No longer require \pkg{subfigure}.} +% \changes{v0.83}{2020/03/27}{\pkg{lwarp-patch-memoir}: No longer requires \pkg{subfigure}.} +% \changes{v0.84}{2020/04/05}{\pkg{lwarp-patch-memoir}: No longer requires \pkg{subcaption}.} % ^^A Not sure why this is here: % \begin{macrocode} @@ -77267,14 +78370,52 @@ height:\LWR@printlength{\LWR@tempheight}% % \end{macrocode} % % -% \subsection{Preliminary setup} +% \subsection{Label handling} +% +% Insert the \pkg{lwarp} label mechanism into the \pkg{memoir} package mechanism: % -% Bypass the \pkg{memoir} package mechanism: +% \begin{itemize} +% \item \cs{@mem@old@label} is the \LaTeX\ definition of \cs{label}. +% \item \cs{LWR@orig@label} adds the \pkg{memoir} definition. +% \item \pkg{lwarp}'s \cs{LWR@new@label} uses \cs{LWR@orig@label}. +% \item Want \pkg{memoir}'s \cs{label} to use \pkg{lwarp}'s \cs{label}, +% which then would use \LaTeX's \cs{label}. +% \item So: +% \begin{itemize} +% \item \cs{@mem@old@label} becomes \cs{LWR@new@label}. +% \item \cs{LWR@orig@label} becomes \cs{@mem@old@label}. +% \end{itemize} +% \item \pkg{cleveref} then encapsulates all the above. +% \item For a subcaption, \pkg{cleveref} modifies \pkg{memoir}'s \cs{sf@memsub@label}. +% \end{itemize} +% \changes{v0.84}{2020/04/05}{\pkg{lwarp-patch-memoir}: Fix: \cs{label}.} % \begin{macrocode} -\LetLtxMacro\LWR@orig@label\@mem@old@label +\let\LWR@orig@label\@mem@old@label +\let\@mem@old@label\LWR@new@label +% \end{macrocode} +% +% Patches for subfloats to support additional \pkg{lwarp} labels: +% \begin{macrocode} +\AtBeginDocument{ + \renewcommand*{\sf@@memsub@label}[1]{% + \@bsphack + \sf@@memsub@label@hook{#1}% + \@memoldlabel{#1}% + \LWR@label@createtag{sub@#1}% + \protected@write\@auxout{}{% + \string\newlabel{sub@#1}% + {{\@nameuse{@@thesub\@captype}}% + {\thepage}}}% + \LWR@write@lwarplabel{sub@#1}% + \@esphack + } +} % \end{macrocode} % +% +% \subsection{Page layout} +% % \pkg{memoir} already set the page size to a default, % so it must be forced large for \pkg{lwarp}'s use, % to avoid tag overflows off the page. @@ -77284,9 +78425,6 @@ height:\LWR@printlength{\LWR@tempheight}% \setulmarginsandblock{1in}{1in}{*} % \end{macrocode} % -% -% \subsection{Page layout} -% % \changes{v0.83}{2020/03/27}{\pkg{lwarp-patch-memoir}: Updated for new sizes.} % \begin{macrocode} \renewcommand*{\stockavi}{} @@ -77495,8 +78633,11 @@ height:\LWR@printlength{\LWR@tempheight}% \renewcommand\titlingpageend[2]{} % \end{macrocode} % +% % \subsection{Abstracts} % \begin{macrocode} +% \newlength{\absindent} +% \newlength{\absparsep} \renewcommand*{\abstractcol}{} \renewcommand*{\abstractintoc}{} \renewcommand*{\abstractnum}{} @@ -77722,10 +78863,15 @@ height:\LWR@printlength{\LWR@tempheight}% \renewcommand*{\makeheadposition}[5]{} \renewcommand{\makepsmarks}[2]{} \renewcommand*{\makeheadfootstrut}[3]{} - -\renewcommand{\createplainmark}[3]{} +% \end{macrocode} +% +% \changes{v0.84}{2020/04/06}{\pkg{lwarp-patch-memoir}: Creates mark macros.} +% \begin{macrocode} +\renewcommand{\createmark}[5]{\csdef{#1mark}[1]{}} +\renewcommand{\createplainmark}[3]{\csdef{#1mark}{}} +% \end{macrocode} +% \begin{macrocode} \renewcommand{\memUChead}[1]{} -\renewcommand{\createmark}[5]{} \renewcommand*{\clearplainmark}[1]{} \renewcommand*{\clearmark}[1]{} \renewcommand{\addtopsmarks}[3]{} @@ -78031,15 +79177,51 @@ height:\LWR@printlength{\LWR@tempheight}% \DeclareRobustCommand{\cftpagenumberson}[1]{} % \end{macrocode} % +% % \subsection{Floats and captions} % +% +% \begin{noindmacro}{\@xfloat} +% \begin{noindmacro}{\@xdblfloat} +% Reestablish \pkg{lwarp}'s takeover the float handing, +% which \pkg{memoir} tried to grab: +% +% \changes{v0.84}{2020/04/20}{\pkg{lwarp-patch-memoir}: Use \LaTeX\ captions.} +% \begin{macrocode} +\AtBeginDocument{ +\def\@xfloat #1[#2]{% + \LWR@floatbegin{#1}[#2] + \normalsize + \@nameuse{#1adjustment}% + \LWR@futurenonspacelet\LWR@mynexttoken\LWR@floatalignment% +} +\def\@xdblfloat #1[#2]{% + \LWR@floatbegin{#1}[#2] + \normalsize + \@nameuse{#1adjustment}% + \LWR@futurenonspacelet\LWR@mynexttoken\LWR@floatalignment% +} +} +% \end{macrocode} +% \end{noindmacro} +% \end{noindmacro} +% +% % \begin{noindmacro}{\newfloat} \oarg{1: within} \marg{2: type} % \marg{3: ext} \marg{4: capname} % \begin{macrocode} \RenewDocumentCommand{\newfloat}{o m m m}{% - \IfValueTF{#1}% - {\DeclareFloatingEnvironment[fileext=#3,within=#1,name={#4}]{#2}}% - {\DeclareFloatingEnvironment[fileext=#3,name={#4}]{#2}}% + \def\LWR@tempone{#4}% + \def\LWR@temptwo{\@nameuse{#2name}}% + \ifdefequal{\LWR@tempone}{\LWR@temptwo}{% recursive name, already defined + \IfValueTF{#1}% + {\DeclareFloatingEnvironment[fileext=#3,within=#1]{#2}}% + {\DeclareFloatingEnvironment[fileext=#3]{#2}}% + }{% not recursive name + \IfValueTF{#1}% + {\DeclareFloatingEnvironment[fileext=#3,within=#1,name={#4}]{#2}}% + {\DeclareFloatingEnvironment[fileext=#3,name={#4}]{#2}}% + }% % \end{macrocode} % \pkg{newfloat} package automatically creates the \cs{listof} command % for new floats, but \pkg{float} does not, @@ -78091,7 +79273,7 @@ height:\LWR@printlength{\LWR@tempheight}% \NewDocumentEnvironment{KFLTmemoir@marginfloat}{O{-1.2ex} m} {% start \LWR@BlockClassWP{float:right; width:2in; margin:10pt}{}{marginblock}% - \captionsetup{type=#2}% + \renewcommand*{\@captype}{#2}% } {% \endLWR@BlockClassWP% @@ -78125,17 +79307,15 @@ height:\LWR@printlength{\LWR@tempheight}% \renewcommand{\flegtocfigure}{} % \end{macrocode} % -% \cs{subfloat} is from the \pkg{subcaption} package. -% \changes{v0.83}{2020/03/27}{\pkg{lwarp-patch-memoir}: Use \pkg{subcaption} instead of \pkg{subfig}.} +% \changes{v0.84}{2020/04/05}{\pkg{lwarp-patch-memoir}: No longer uses \pkg{subcaption}.} % \begin{macrocode} -\renewcommand{\subcaption}[2][]{% - \ifblank{#1}{\subfloat[#2]{}}{\subfloat[#1][#2]{}}% +\renewcommand{\@makesubfloatcaption}[2]{% + \minipagefullwidth + \begin{minipage}{\linewidth}% + #1 \ignorespaces #2 \unskip% + \end{minipage} } -\renewcommand{\contsubcaption}{\ContinuedFloat\subcaption} - -\LetLtxMacro\subcaptionref\subref - \renewcommand*{\tightsubcaptions}{} \renewcommand*{\loosesubcaptions}{} @@ -78162,11 +79342,18 @@ height:\LWR@printlength{\LWR@tempheight}% % \newif\ifscapmargleft \scapmargleftfalse \renewcommand*{\setsidecappos}[1]{} - +% \end{macrocode} +% +% +% \begin{noindenvironment}{sidecontcaption} +% \changes{v0.84}{2020/04/20}{\pkg{lwarp-patch-memoir}: \pkg{caption} now optional, removed dup caption.} +% \begin{macrocode} \RenewDocumentEnvironment{sidecontcaption}{m o} {} {% - \ContinuedFloat% + \ifdef{\ContinuedFloat}% + {\ContinuedFloat}% + {\addtocounter{\@captype}{-1}}% \caption{#1}% % \end{macrocode} % Without \cs{@captype}, the section is referred to instead. @@ -78174,6 +79361,9 @@ height:\LWR@printlength{\LWR@tempheight}% \IfValueT{#2}{\label[\@captype]{#2}}% } % \end{macrocode} +% \end{noindenvironment} +% +% % \cs{sidenamedlegend} does not appear to use the \TOC\ argument. % \begin{macrocode} \renewenvironment{sidenamedlegend}[2][]{ @@ -78207,7 +79397,7 @@ height:\LWR@printlength{\LWR@tempheight}% } % \end{macrocode} % -% \subsection{Page notes} +% \subsection{Footnotes and page notes} % % \begin{macrocode} \renewcommand*{\feetabovefloat}{} @@ -78216,7 +79406,7 @@ height:\LWR@printlength{\LWR@tempheight}% \renewcommand*{\verbfootnote}[2][]{% \PackageError{lwarp,memoir}% - {Verbatim footnotes are not yet supported by lwarp.}% + {Verbatim footnotes are not yet supported by lwarp}% {This may be improved some day.}% } @@ -78228,7 +79418,7 @@ height:\LWR@printlength{\LWR@tempheight}% \renewcommand*{\newfootnoteseries}[1]{% \PackageError{lwarp,memoir}% - {Memoir footnote series are not yet supported by lwarp.}% + {Memoir footnote series are not yet supported by lwarp}% {This may be improved some day.}% } @@ -78285,18 +79475,61 @@ height:\LWR@printlength{\LWR@tempheight}% \renewcommand*{\sidefootmarkstyle}[1]{} \renewcommand*{\sidefoottextfont}{} \renewcommand*{\sidefootform}{} - +% \end{macrocode} +% +% \changes{v0.84}{2020/03/31}{\pkg{lwarp-patch-memoir}: Fixed pagenotes.} +% \begin{macrocode} \renewcommand*{\continuousnotenums}{\pncontopttrue}% from pagenote \renewcommand*{\notepageref}{} \renewcommand*{\prenotetext}{} \renewcommand*{\postnotetext}{} -\renewcommand*{\idtextinnotes}[1]{} -\renewcommand*{\printpageinnotes}[1]{} -\renewcommand*{\printpageinnoteshyperref}[1]{} +\LetLtxMacro\printpageinnoteshyperref\printpageinnotes \renewcommand*{\foottopagenote}{} \renewcommand*{\pagetofootnote}{} % \end{macrocode} % +% \begin{noindmacro}{\m@m@wrpnote} +% \begin{noindmacro}{\startnoteentrystart} +% To have \pkg{cleveref} work with page note labels, +% the following patch writes \cs{thepagenote} and also adds |\arabic{pagenote}| +% to the first argument written to the \filenm{.ent} file: +% \begin{sourcedisplay} +% \cs{startnoteentry}\textred{\{}\{\cs{thepagenote}\}\{\cs{arabic}\{pagenote\}\}\textred{\}} \dots +% \end{sourcedisplay} +% The arabic value is required for \pkg{cleveref}. +% \cs{thepagenote} becomes |\@firstoftwo#1| and +% the arabic value becomes |\@secondoftwo#1|. +% +% Note that for print mode,\watchout[\cs{nameref}] +% \cs{nameref} print the section name where the page notes are +% declared in the text, but for \HTML\ it prints the name where the page notes are printed. +% \changes{v0.84}{2020/04/02}{\pkg{lwarp-patch-memoir}: Improved \pkg{cleveref} support.} +% \begin{macrocode} +\xpatchcmd{\m@m@wrpnote} + {\string\startnoteentry{\thepagenote}} + {\string\startnoteentry{{\thepagenote}{\arabic{pagenote}}}} + {} + {\LWR@patcherror{memoir}{m@m@wrpnote}} + +\renewcommand\startnoteentrystart[4]{% + \prenoteinnotes% + \noteidinnotes{\@firstoftwo#1}{#2}% + \@ifmtarg{#2}{% +% \phantomsection\def\@currentlabel{#1}% original + \def\@currentlabel{\@firstoftwo#1}% lwarp + \def\cref@currentlabel{% lwarp + [pagenote][\@secondoftwo#1][]\@firstoftwo#1% lwarp + }% lwarp + }{}% + \pagenoteanchor{#4}% + \pageinnotes{#3}% + \prenotetext% +} +% \end{macrocode} +% \end{noindmacro} +% \end{noindmacro} +% +% % \subsection{Decorative text} % % \begin{macrocode} @@ -78345,12 +79578,10 @@ height:\LWR@printlength{\LWR@tempheight}% \renewenvironment{qshade}{\shaded}{\endshaded} % \end{macrocode} % -% Use the \pkg{comment} package: +% \changes{v0.84}{2020/03/30}{\pkg{lwarp-patch-memoir}: Uses \pkg{memoir}'s +% \cs{newcomment}, \cs{commentsoff}, \cs{commentson}.} +% % \begin{macrocode} -\renewcommand*{\commentsoff}[1]{\includecomment{#1}} -\renewcommand*{\commentson}[1]{\excludecomment{#1}} -\LetLtxMacro\renewcomment\commentson - \renewcommand*{\setverbatimfont}[1]{} \renewcommand*{\tabson}[1]{} \renewcommand*{\tabsoff}{} @@ -78429,6 +79660,7 @@ height:\LWR@printlength{\LWR@tempheight}% % \subsection{Back matter} % \label{sec:memoirbackmatter} % +% \begin{noindmacro}{\@@wrindexhyp} % Redefined to write the |LWR@autoindex| counter instead of |page|. % Note that \pkg{memoir} has two versions, depending on the use of \pkg{hyperref}. % \begin{macrocode} @@ -78444,7 +79676,9 @@ height:\LWR@printlength{\LWR@tempheight}% \endgroup \@esphack}% % \end{macrocode} +% \end{noindmacro} % +% \begin{noindmacro}{\@@wrspindexhyp} % \label{sec:specialindex} % \cs{specialindex} behaves like a regular \cs{index}, pointing to where % \cs{specialindex} is used. @@ -78464,8 +79698,10 @@ height:\LWR@printlength{\LWR@tempheight}% }% \AtBeginDocument % \end{macrocode} +% \end{noindmacro} +% \begin{noindmacro}{\@spindex} % Patched to append |_html| to the file: % \changes{v0.83}{2020/03/26}{\pkg{lwarp-patch-memoir}: Fixed: \cs{specialindex}.} % \begin{macrocode} @@ -78483,8 +79719,10 @@ height:\LWR@printlength{\LWR@tempheight}% \@sanitize \@wrspindex}} % \end{macrocode} +% \end{noindmacro} +% \begin{noindmacro}{\makeindex} % Patched to use |_html| filename and \cs{BaseJobname}: % \changes{v0.58}{2018/06/22}{\pkg{lwarp-patch-memoir}: Fix for multiple indexes.} % \begin{macrocode} @@ -78501,7 +79739,9 @@ height:\LWR@printlength{\LWR@tempheight}% \fi} \catcode`\_=8% % \end{macrocode} +% \end{noindmacro} +% \begin{noindmacro}{\printindex} % Patched to use |_html| filename and \cs{BaseJobname}. % This will later be patched by the \pkg{lwarp} core. % \changes{v0.58}{2018/06/22}{\pkg{lwarp-patch-memoir}: Fix for multiple indexes.} @@ -78510,6 +79750,7 @@ height:\LWR@printlength{\LWR@tempheight}% \renewcommand{\printindex}[1][\BaseJobname]{\@input@{#1_html.ind}} \catcode`\_=8% % \end{macrocode} +% \end{noindmacro} % % \begin{macrocode} \DeclareDocumentCommand{\newblock}{}{} @@ -78643,50 +79884,102 @@ height:\LWR@printlength{\LWR@tempheight}% \endgroup% } % \end{macrocode} -% ^^A *8* todo: + % \begin{macrocode} % only in ccaption, not in memoir: % \LetLtxMacro\longbitwonumcaption\bitwonumcaption% % \LetLtxMacro\longbionenumcaption\bitwonumcaption% % \LetLtxMacro\longbicaption\bicaption% - -\RenewDocumentCommand{\subtop}{O{} O{} m}{% - \subfloat[#1][#2]{#3}% -} - -\RenewDocumentCommand{\subbottom}{O{} O{} m}{% - \subfloat[#1][#2]{#3}% -} % \end{macrocode} % -% \changes{v0.83}{2020/03/27}{\pkg{lwarp-patch-memoir}: Fixed: \cs{contsubtop}, \cs{contsubbottom}.} +% Patches for subfloats to support additional \pkg{lwarp} labels: % \begin{macrocode} -\renewcommand{\contsubtop}{% - \ContinuedFloat - \subtop% -} +\renewcommand{\@memsubbody}{% + \bgroup + \let\label=\memsub@label + \ifdonemaincaption\else + \advance\csname c@\@captype\endcsname\@ne + \fi + % \refstepcounter{sub\@captype}\@contkeep% +% \leavevmode% lwarp + \@ifnextchar [% + {\@memsubfig}% + {\@memsubfig[\@empty]}} -\renewcommand{\contsubbottom}{% - \ContinuedFloat - \subbottom% +\renewcommand{\@memcontsubbody}{% + \bgroup + \let\label=\memsub@label + \@contset + % \refstepcounter{sub\@captype}\@contkeep% +% \leavevmode% lwarp + \@ifnextchar [% + {\@memsubfig}% + {\@memsubfig[\@empty]}} + + +\long\def\@memsubfloat#1[#2][#3]#4{% +% \@tempcnta=\@ne +% \if@tightsubcap +% \if@minipage +% \@tempcnta=\z@ +% \else +% \ifdim\lastskip=\z@ +% \@tempcnta=\@ne +% \else +% \@tempcnta=\tw@ +% \fi +% \fi +% \fi +% \if@contbotsub +% \def\subfig@top{\subfloattopskip}% +% \def\subfig@bottom{\subfloatbottomskip}% +% \else +% \def\subfig@top{\subfloatbottomskip}% +% \def\subfig@bottom{\subfloattopskip}% +% \fi +% \setbox\@tempboxa \hbox{#4}% +% \@tempdima=\wd\@tempboxa +% \vbox + \bgroup% + \mem@step@subcounter% +% \vbox + \LWR@stoppars% + \minipagefullwidth% lwarp + \begin{minipage}{\linewidth}% lwarp + \bgroup +% \ifcase\@tempcnta +% \@minipagefalse +% \or +% \vspace{\subfig@top} +% \or +% \ifdim \lastskip=\z@ \else +% \@tempskipb\subfig@top\@xaddvskip +% \fi +% \fi + \if@contbotsub + #4% \box\@tempboxa + \egroup + \ifx \@empty#3\relax \else +% \vskip\subfloatcapskip + \@memsubcaption{#1}{#2}{#3}% + \fi + \else + \ifx \@empty#3\relax \else + \@memsubcaption{#1}{#2}{#3}% +% \vskip\subfloatcapskip +% \vskip\subfloatcaptopadj + \fi\egroup + #4% \box\@tempboxa + \fi +% \vspace{\subfig@bottom} + \end{minipage}% lwarp + \LWR@startpars% lwarp + \egroup +\egroup } % \end{macrocode} -% \begin{macrocode} -\renewcommand{\subconcluded}{} - -\let\contsubtable\contsubtop -\let\contsubfigure\contsubbottom -% \end{macrocode} -% ^^A *8* todo: -% ^^A tocloft stuff -% \begin{macrocode} -\newcommand{\newfloatentry}[4][\@empty]{TODO: newfloatentry} -\newcommand{\newfloatlist}[5][\@empty]{TODO: newfloatlist} -\newcommand{\newfloatenv}[4][\@empty]{TODO: newfloatenv} -\DeclareRobustCommand{\newfloatpagesoff}[1]{} -\DeclareRobustCommand{\newfloatpageson}[1]{} -\newcommand{\setnewfloatindents}[3]{} -% \end{macrocode} +% +% \changes{v0.84}{2020/04/05}{\pkg{lwarp-patch-memoir}: \cs{contsubtop}, etc. now as-is.} % % % \subsection{Final patchwork} @@ -78702,6 +79995,8 @@ height:\LWR@printlength{\LWR@tempheight}% % \fi % % +% +% % \addtocontents{toc}{\protect\setcounter{tocdepth}{0}} % % @@ -78831,8 +80126,8 @@ height:\LWR@printlength{\LWR@tempheight}% \end{BlockClass} }{% \PackageError{lwarp-common-multimedia} - {File '#2' not found} - {Perhaps an incorrect path?} + {File '#2' not found} + {Perhaps an incorrect path?} }% } % \end{macrocode} @@ -78938,11 +80233,13 @@ height:\LWR@printlength{\LWR@tempheight}% \newcommand*{\LWR@multimedia@percenterror}{% \PackageError{lwarp-media9} {% - Do not use a percent comment - between\MessageBreak + Do not use a percent comment between\MessageBreak \protect\includemedia\space arguments% } - {Percent is changed to a regular character to allow its use inside a URL.} + {% + Percent is changed to a regular character\MessageBreak + to allow its use inside a URL.% + } } % \end{macrocode} % \end{noindmacro} diff --git a/Master/texmf-dist/source/latex/lwarp/lwarp.ins b/Master/texmf-dist/source/latex/lwarp/lwarp.ins index dc5805e34b3..eded7a542a4 100644 --- a/Master/texmf-dist/source/latex/lwarp/lwarp.ins +++ b/Master/texmf-dist/source/latex/lwarp/lwarp.ins @@ -86,6 +86,7 @@ version 2005/12/01 or later. \file{lwarp-booktabs.sty}{\from{lwarp.dtx}{booktabs}} \file{lwarp-bophook.sty}{\from{lwarp.dtx}{bophook}} \file{lwarp-bounddvi.sty}{\from{lwarp.dtx}{bounddvi}} +\file{lwarp-boxedminipage.sty}{\from{lwarp.dtx}{boxedminipage}} \file{lwarp-boxedminipage2e.sty}{\from{lwarp.dtx}{boxedminipage2e}} \file{lwarp-braket.sty}{\from{lwarp.dtx}{braket}} \file{lwarp-breakurl.sty}{\from{lwarp.dtx}{breakurl}} |