diff options
author | Karl Berry <karl@freefriends.org> | 2020-03-25 21:11:36 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-03-25 21:11:36 +0000 |
commit | 019026f69bab4296c0d65e507b13b3904b866382 (patch) | |
tree | abed3bd3b078534234d42938579bca78e906b0ad /Master/texmf-dist/source/latex/lwarp/lwarp.dtx | |
parent | ed06debf5f768921e0fe0fd466866d881c2d4ea6 (diff) |
lwarp (25mar20)
git-svn-id: svn://tug.org/texlive/trunk@54546 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/lwarp/lwarp.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/lwarp/lwarp.dtx | 2083 |
1 files changed, 1407 insertions, 676 deletions
diff --git a/Master/texmf-dist/source/latex/lwarp/lwarp.dtx b/Master/texmf-dist/source/latex/lwarp/lwarp.dtx index d0f16200b96..a4c164964e2 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/04 v0.81 Allows LaTeX to directly produce HTML5 output.] +%<package> [2020/03/25 v0.82 Allows LaTeX to directly produce HTML5 output.] % %<*driver> \documentclass{ltxdoc} @@ -778,6 +778,10 @@ if \texttt{FileDepth} allows: \cs{ForceHTMLPage} \\ \cs{theendnotes} \end{sourcedisplay} + +If using \brand{MathJax}, see \cref{sec:limitsfootnotes} +\watchout[\cs{endnotemark}]\margintag{numbering} +regarding the use of \cs{endnotemark} and \cs{endnotetext}. } @@ -913,6 +917,31 @@ due to the limited number of symbols which are available. \limitsperpage +If using \brand{MathJax}, after each math expression with a \cs{footnotemark}, +\watchout[MathJax, \cs{footnotemark}] +adjust the \ctr{footnote} counter by the number of \cs{footnotemark}s: +\begin{sourcedisplay} +\cs{[} (math expression with \textgreen{two} instances of \cs{footnotemark}) \cs{]} \\ +\textred{\cs{warpHTMLonly}\{}\cs{addtocounter}\{footnote\}\{\textgreen{2}\}\textred{\}} +\end{sourcedisplay} +Similarly for \pkg{endnotes}, but \emph{not} \pkg{sidenotes}. + +Also for \brand{MathJax}, \cs{footnotename} is used for a \cs{footnotemark} +if the actual footnote number is not known. +To redefine it, provide it before loading \pkg{lwarp}: +\begin{sourcedisplay} +\cs{providecommand}\{\cs{footnotename}\}\{something\} \\ +\cs{usepackage}\{lwarp\} +\end{sourcedisplay} +Similar for \pkg{sidenotes}. +For \pkg{endnotes}: +\begin{sourcedisplay} +\cs{def}\cs{endnotename}\{something\}\% \cs{def} allows name to start with "end" +\end{sourcedisplay} + +For the \pkg{pagenote} package, there is no \cs{pagenotename} to define, +since there is no \cs{pagenotemark} command. + The \pkg{footmisc} \optn{stable} option is emulated by \pkg{lwarp}. \margintag{\pkg{footmisc}} @@ -1124,7 +1153,7 @@ which defaults to: Math may be rendered \margintag{Math rendering} as \SVG\ graphics or using the \brand{MathJax} JavaScript display engine. -\gindex{JavaScript=\brand{JavaScript}>MathJax=\brand{MathJax}} +\gindex{JavaScript=\brand{JavaScript}>mathjax=\brand{MathJax}} Rendering math as images creates a new \SVG\ file for each expression, \margintag{\SVG\ files} @@ -1198,8 +1227,8 @@ before and after each image. The popular \brand{MathJax} alternative (\url{mathjax.org}) may be used to display math. \margintag{\brand{MathJax} math option} \DescribeProgram{MathJax} -\gindex{math>MathJax=\brand{MathJax} summary} -\gindex{MathJax=\brand{MathJax}>summary} +\gindex{math>mathjax=\brand{MathJax} summary} +\gindex{mathjax=\brand{MathJax}>summary} When \brand{MathJax} is enabled, math is rendered twice: \begin{enumerate} @@ -1214,8 +1243,8 @@ seamlessly integrating with the rest of the \LaTeX\ code. \subsubsection{Customizing \brand{MathJax}} \label{sec:limitscustomizemathjax} -\gindex{MathJax=\brand{MathJax}>custom functions} -\gindex{math>MathJax=\brand{MathJax} custom functions} +\gindex{mathjax=\brand{MathJax}>custom functions} +\gindex{math>mathjax=\brand{MathJax} custom functions} \limitscustomizemathjax \subsubsection{\brand{MathJax} limitations} @@ -1225,30 +1254,33 @@ Limitations when using \brand{MathJax} include: \begin{itemize} \item \brand{MathJax} does not support \cs{multicolumn} or \pkg{multirow}. \trouble[\cs{multicolumn}, \pkg{multirow}]% - {multicolumn=\cs{multicolumn}>MathJax=\brand{MathJax}} - \trouble{multirow=\pkg{multirow}>MathJax=\brand{MathJax}} - \trouble{array=\env{array}>MathJax=\brand{MathJax}} - \trouble{MathJax=\brand{MathJax}>multicolumn=\cs{multicolumn}} - \trouble{MathJax=\brand{MathJax}>multirow=\cs{multirow}} + {multicolumn=\cs{multicolumn}>mathjax=\brand{MathJax}} + \trouble{multirow=\pkg{multirow}>mathjax=\brand{MathJax}} + \trouble{array=\env{array}>mathjax=\brand{MathJax}} + \trouble{mathjax=\brand{MathJax}>multicolumn=\cs{multicolumn}} + \trouble{mathjax=\brand{MathJax}>multirow=\cs{multirow}} These may be used in text \env{tabular}s or \SVG\ math, but in \brand{MathJax} math \env{array}s they are emulated. \cs{multicolumn} only fills a single cell, resulting in a short row. \cs{multirow} simply prints its text on the first line. \item \brand{MathJax} does not support subequations. - \trouble[subequations]{MathJax=\brand{MathJax}>subequations}% + \trouble[subequations]{mathjax=\brand{MathJax}>subequations}% \trouble{math>subequations}% This may be improved by parsing the \LaTeX{} math expression to manually insert tags, but this has not yet been done. -\item Footnotes inside equations are not yet supported while using \brand{MathJax}. - \watchout[footnotes in math] - \pkg{lwarp} provides a basic emulation for \brand{MathJax}. +\item Footnotes are emulated when used inside a \brand{MathJax} expression. + \watchout[footnotes] + For an equation with a single footnote, the correct footnote number is used. + For non-equations, \cs{footnotename} is used instead, since the actual + number cannot be tracked. + See \cref{sec:limitsfootnotes} regarding the use of footnotes with \brand{MathJax}. \item Inside a \brand{MathJax} expression, - \trouble[references in math]{MathJax=\brand{MathJax}>references} - \trouble{cross reference>MathJax=\brand{MathJax}} - \trouble{reference>MathJax=\brand{MathJax}} + \trouble[references]{mathjax=\brand{MathJax}>references} + \trouble{cross reference>mathjax=\brand{MathJax}} + \trouble{reference>mathjax=\brand{MathJax}} references to equations work within the same \HTML\ web page, but do not work when referring to an equation in a different \HTML\ web page. Outside of a \brand{MathJax} expression, in the text body, references work @@ -1274,7 +1306,7 @@ Limitations when using \brand{MathJax} include: render the horizontal alignment of the math and text following after on the same line. \item Other math-related macros and packages are not directly supported by \brand{MathJax}, - \trouble[other macros and packages]{MathJax=\brand{MathJax}>unsupported packages} + \trouble[other macros and packages]{mathjax=\brand{MathJax}>unsupported packages} including \cs{ensuremath} and \pkg{bigdelim}, and occasionally-used macros such as \cs{relax}. While using \brand{MathJax}, \pkg{lwarp} provides emulation @@ -1282,9 +1314,9 @@ Limitations when using \brand{MathJax} include: \pkg{nicefrac}, \pkg{siunitx}, and \pkg{units}. \item Starred macros are generally not supported - \trouble[starred macros]{starred macros>MathJax=\brand{MathJax}} - \trouble{math>starred macros and MathJax=\brand{MathJax}} - \trouble{MathJax=\brand{MathJax}>starred macros} + \trouble[starred macros]{starred macros>mathjax=\brand{MathJax}} + \trouble{math>starred macros and mathjax=\brand{MathJax}} + \trouble{mathjax=\brand{MathJax}>starred macros} by MathJax or the \pkg{lwarp} emulations. \end{itemize} } @@ -1376,7 +1408,7 @@ Examples: \textred{\cs{end}\{warpMathJax\}} \end{sourcedisplay} To avoid a slowdown in compile speed, use -\trouble[slow compilation]{MathJax=\brand{MathJax}>slow compilation} +\trouble[slow compilation]{mathjax=\brand{MathJax}>slow compilation} \trouble{compiling>slow \brand{MathJax}} the \env{warpMathJax} environment to prevent its contents from being processed in print or \SVG\ math output. @@ -1463,7 +1495,7 @@ Or, use a short name for the \TOC\ entry without the math, or use \cs{texorpdfst \watchout[italic correction] If using \brand{MathJax}: - \trouble[\brand{MathJax}]{MathJax=\brand{MathJax}>mathtools=\pkg{mathtools}} + \trouble[\brand{MathJax}]{mathjax=\brand{MathJax}>mathtools=\pkg{mathtools}} \begin{itemize} \item Starred macros are not available. Starred environments do work. \item \pkg{mathtools} \optn{disallowspaces} does not work for \brand{MathJax}. @@ -1502,8 +1534,8 @@ wrap both inside a single \env{lateximage}: \newcommand{\limitschemformula}{% \pkg{chemformula} works best without \brand{MathJax}. -\trouble[\pkg{chemformula} with \brand{MathJax}]{MathJax=\brand{MathJax}>chemformula=\pkg{chemformula}} -\trouble{chemformula=\pkg{chemformula}>MathJax=\brand{MathJax}} +\trouble[\pkg{chemformula} with \brand{MathJax}]{mathjax=\brand{MathJax}>chemformula=\pkg{chemformula}} +\trouble{chemformula=\pkg{chemformula}>mathjax=\brand{MathJax}} If \brand{MathJax} is used, \cs{displaymathother} must be used before \env{array}, and then \cs{displaymathnormal} may be used after. @@ -2098,8 +2130,8 @@ or the packages \pkg{multirow}, \pkg{longtable}, \pkg{supertabular}, or \pkg{xta \end{tabular} \end{sourcedisplay} \item \brand{MathJax} does not support \pkg{multirow}, so it is emulated - \trouble[MathJax]{MathJax=\brand{MathJax}>multirow=\cs{multirow}} - \trouble{multirow=\pkg{multirow}>MathJax=\brand{MathJax}} + \trouble[MathJax]{mathjax=\brand{MathJax}>multirow=\cs{multirow}} + \trouble{multirow=\pkg{multirow}>mathjax=\brand{MathJax}} to only print its text on the first row. \cs{multirow} works as expected in text \env{tabular}s or \SVG\ math. \end{itemize} @@ -2625,8 +2657,8 @@ generating the \SVG\ image. For text mode, \pkg{lwarp} uses an emulation which provides a very effective \HTML\ interpretation of \pkg{siunitx}. For math expressions while using \brand{MathJax}, -\trouble{siunitx=\pkg{siunitx}>MathJax=\brand{MathJax}} -\trouble[MathJax]{MathJax=\brand{MathJax}>siunitx=\pkg{siunitx}} +\trouble{siunitx=\pkg{siunitx}>mathjax=\brand{MathJax}} +\trouble[MathJax]{mathjax=\brand{MathJax}>siunitx=\pkg{siunitx}} a limited emulation is used. Most functions work reasonably well, but many options cannot be emulated. \pkg{siunitx} macros with more than one optional value cannot absorb the second optional @@ -2893,7 +2925,7 @@ This boolean may be tested by the user for later use. %<*package> % \fi % -% \CheckSum{42916} +% \CheckSum{43557} % % \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 @@ -3017,6 +3049,7 @@ This boolean may be tested by the user for later use. % \changes{v0.79}{2020/02/01}{\ 2020/02/01} % \changes{v0.80}{2020/02/19}{\ 2020/02/19} % \changes{v0.81}{2020/03/04}{\ 2020/03/04} +% \changes{v0.82}{2020/03/25}{\ 2020/03/25} @@ -3239,6 +3272,25 @@ This boolean may be tested by the user for later use. % % \begin{description} % \needspace{2\baselineskip} +% \item[v0.82:] \brand{MathJax} notes, \pkg{xpinyin} improvements, various updates. +% \begin{itemize} +% \item Improved footnotes with \brand{MathJax}. +% \margintag{\brand{MathJax}} +% \item Added \brand{MathJax} emulation for \pkg{endnotes}, \pkg{marginnote}, +% \pkg{nccfoots}, \pkg{pagenote}, \pkg{parnotes}, \pkg{sidenotes}. +% \item \pkg{xpinyin}: Added pinyin with modern \HTML. +% \margintag{packages} +% \item \pkg{luatexko}: Added \cs{dotemph}, \cs{ruby}, \cs{uline}, etc. +% \item \pkg{soul}: Fixed \cs{<}. +% \item \pkg{chemfig}: Updated to v1.5. +% \item \pkg{draftwatermark}: Updated to v2.0. +% \item \pkg{ulem}: Fixed: \cs{dashuline}. +% \item \pkg{amsmath}: Fixed: \cs{intertext} with \brand{MathJax}. +% \item \pkg{endnotes}: Fixed: Marks in print mode. +% \item \pkg{tocvsec2}, \pkg{tableof}: Verified to work as-is. +% \item Added \pkg{etoc} (nullified). +% \end{itemize} +% \needspace{2\baselineskip} % \item[v0.81:] \brand{MathJax} speedup and additional emulations. % \begin{itemize} % \item Improved warning regarding \SVG\ math sizing \Slash baselines and @@ -4120,590 +4172,590 @@ This boolean may be tested by the user for later use. % \pkg{chemfig}, \pkg{chemformula}, \pkg{chemmacros}, \pkg{chemnum}, \pkg{chemgreek}, % \pkg{epstopdf-base}, \pkg{grid}, \pkg{ltxgrid}. % \end{itemize} -% \needspace{2\baselineskip} -% \item[v0.50:] Improved \SVG\ math. -% \begin{itemize} -% \item \SVG\ math and other \env{lateximage}s now are -% converted to \SVG\ using \margintag{\SVG\ math} -% parallel background tasks, utilizing all available \acro{CPU} cores. -% \item Inline \SVG\ math image file names now are MD5 hashes made from -% their source \LaTeX\ code. -% Identical inline math expressions, such as multiple instance of \$x\$, -% now share a single image file. -% This reduces the number of images to store, transmit, process, and display. -% Each image file is only converted to \SVG\ a single time, and reused if it -% already exists. -% Display math and other forms of \SVG\ image such as \env{picture} and -% \tikz\ still use individual image files which are recreated each time -% \cmds{lwarpmk limages} is run. -% \item Fixes: SVG math and/or \cs{underline} in a sectioning file name. -% \item Improved \SVG\ display math and tags. -% \item Improved \SVG\ math and \pkg{siunitx} \attribute{alt} tags. -% \item Improved \pkg{siunitx} units. -% \item Fix: \cs{ensuremath} with MathJax now creates a \env{lateximage}. -% \item Fix: \cs{centering}, etc. in \SVG\ math, \env{lateximage}, \tikz. -% \item Fix: Made various macros robust, -% additionally fixing \pkg{authblk}.\margintag{misc. fixes} -% \item Fix: \pkg{ntheorem} if neither \optn{standard} nor \optn{amsthm} selected. -% \item Fix: \pkg{listings}: Improved column alignment. -% \item Fix: Load \pkg{fontspec} if necessary. -% \item Added \pkg{xy}, \pkg{epstopdf}, \pkg{diagbox}, \pkg{pbox}, \margintag{packages} -% \pkg{bytefield}, \pkg{axodraw2}, \pkg{phfqit}, -% \pkg{schemata}, -% \pkg{dblfloatfix}, \pkg{nonfloat}, \pkg{morefloats}. -% \end{itemize} -% \needspace{2\baselineskip} -% \item[v0.49:] \ -% \begin{itemize} -% \item Added \pkg{xcolor} \cs{rowcolors}.\margintag{tabular} -% \item Fix: \cs{noalign} inside a \env{tabular}. -% \item Fix: \cs{eqref} in a caption.\margintag{math} -% \item Fix: Incorrect \PDF\ font size changes -% caused occasional \HTML\ corruption.\margintag{misc fixes} -% \item Fix: \pkg{printlen} changes are now grouped for \HTML\ output. -% \item Added \pkg{vwcol}, \pkg{vertbars}, \pkg{hyphenat}, \margintag{packages} -% \pkg{lineno}, \pkg{fnlineno}, \pkg{figsize}, \pkg{hypdestopt}, \pkg{pagegrid}, -% \pkg{pdfrender}, \pkg{luacolor}, \pkg{resizegather}. -% \end{itemize} -% \needspace{2\baselineskip} -% \item[v0.48:] \ -% \begin{itemize} -% \item Added some documentation -% \margintag{documentation} -% regarding converting an existing document. See \cref{sec:convertexisting}. -% \item Updated compatibility for new \pkg{cleveref} v0.21.\margintag{\pkg{cleveref}} -% \item Fix: Ignores optional tabular column arguments.\margintag{tabular} -% \item Added \cs{leftline}, \cs{centerline}, -% \cs{rightline}.\margintag{minor updates} -% \item Lists have improved font control via \cs{makelabel}. -% \item Print-mode \env{lateximage} now boxed to the natural width of its -% multiline contents. -% \item \env{abstract} now allows an optional name, as required by some classes. -% \item Fix: Improved spacing, \cs{mbox}, and font sizes -% with \SVG\ math, \tikz.\margintag{math} -% \item \pkg{siunitx}: Improved \SVG\ math, fraction compatibility, color output. -% \item Fix: LOF/LOT links.\margintag{misc. fixes} -% \item Fix: Virtual page size grouping caused excessive \PDF\ page breaks. -% \item Fix: Parsing similar package names in a -% single \cs{usepackage}. -% \item Fix: Adapts to classes without \cs{part}. -% \item Fix: \cs{newline} in \cs{title} was causing |<br>| in window title. -% \item Fix: \cs{maketitle} with \cs{cr}, \cs{crcr}, \cs{noalign}, -% for \pkg{IEEEtran} class. -% \item Fix: \pkg{xfrac} neutralized \env{BlockClass} and others. -% \item Fix: \pkg{todonotes} and \pkg{luatodonotes}: Improved \cs{todototoc}. -% \item Added \pkg{colortbl}, \margintag{packages} -% \pkg{chapterbib}, \pkg{acro}, \pkg{acronym}, -% \pkg{hypernat}, \pkg{hypcap}, \pkg{stfloats}, -% \pkg{vmargin}, \pkg{fancyheadings}. -% \item \pkg{fancyref}: Now directly supported. -% \end{itemize} -% \needspace{2\baselineskip} -% \item[v0.47:] \ -% \begin{itemize} -% \item Improved \SVG\ math baseline and sizing.\margintag{math} -% \item Fixes: \SVG math in captions, subcaptions, \cs{nameref}. -% \item Fixes: Line wrap at hyphen in \HTML\ output. -% \item Added \pkg{endheads}, \pkg{multitoc}, \pkg{sectionbreak}, -% \pkg{blowup}, \pkg{xurl}.\margintag{packages} -% \end{itemize} -% \needspace{2\baselineskip} -% \item[v0.46:] \ -% \begin{itemize} -% \item \cs{PrintStack} changed to \cs{LWRPrintStack}.\watchout[name change] -% \item Fix: Empty lines between \env{tabular} rows.\margintag{misc. fixes} -% \item Fix: Stack unnesting. -% \item Fix: SVG math and \env{lateximage}s in numerous situations. -% \item Fix: Spaces in \cs{usepackage}. -% \item Fix: Now allows \brand{MathJax} inside \env{verse}. -% \end{itemize} -% \needspace{2\baselineskip} -% \item[v0.45:] \ -% \begin{itemize} -% \item Improved \prog{MiKTeX} install instructions. -% \margintag{documentation} -% \item Improved graphics and \pkg{epstopdf} instructions. -% \item Updates to the \nameref{sec:introduction}. -% \item Added \pkg{memoir}, \pkg{memhfixc}. -% See \cref{sec:limitsmemoir}.\margintag{memoir} -% \item Fix: Now allows underscores in labels.\margintag{cross-references} -% \item Fix: \cs{\_} and |\<blank>| in section/file names. -% \item Fix: Now allows \brand{MathJax} inside \env{tabbing}.\margintag{math} -% \item Fix: Bibliography \cs{em} names.\margintag{bibliography} -% \item Added \pkg{cite}, \pkg{natbib}, \pkg{backref}. -% (Also works as-is with \pkg{biblatex}.) -% \item Fix: Empty lines between \env{tabular} rows.\margintag{misc. fixes} -% \item Fix: ``Improper \cs{prevdepth}'' with minipages, lists. -% \item Fix: Incorrect \SVG\ math and |lateximage|s with \pkg{subfig}. -% \item Fix: Lateximages from incorrect pages with Mathjax. -% \item Fix: Missing sidetoc if using \pkg{listings}. -% \item Fix: Added an \pkg{array} emulation package. -% \item Added -% \pkg{subfigure}, \pkg{prettyref}, \margintag{packages} -% \pkg{hanging}, \pkg{midpage}, -% \pkg{flafter}, \pkg{fltrace}, \pkg{changebar}, \pkg{endfloat}, -% \pkg{continue}, \pkg{fwlw}, \pkg{turnthepage}, \pkg{footnpag}, -% \pkg{pagesel}, \pkg{textfit}, \pkg{titleref}. -% \end{itemize} -% \needspace{2\baselineskip} -% \item[v0.44:] \ -% \begin{itemize} -% \item Added \pkg{koma-script} classes (except \pkg{scrlttr2}, \pkg{scrjura}). -% \margintag{\pkg{koma-script}} -% \item Added \pkg{scrextend}, -% \pkg{scrlayer}, \pkg{scrlayer-notecolumn}, \pkg{scrlayer-scrpage}, -% \pkg{scrhack}, \pkg{tocstyle}, \pkg{tocbasic}. -% \item Added \cs{HTMLTitle}. -% \margintag{\HTML\ title and author} -% Fixed web page title if \cs{HTMLTitle} empty and no \cs{title} given and -% not using \pkg{titling} package. -% \item Fixed web page author if \cs{HTMLauthor} is empty and \cs{author} is not given. -% \item If using \prog{pdflatex}, automatically loads T1 and \UTF-8 encodings. -% \margintag{encodings} -% (Additional \pkg{fontenc} encodings may be loaded after \pkg{lwarp}.) -% \item Added \env{list} and \env{trivlist} environments, \pkg{hang}.\margintag{lists} -% \item Fix: \cs{multicolumn} alignment if formatting for a word processor. -% \margintag{tabular} -% \item Added \pkg{ltxtable}. -% \item Fix: \brand{MathJax} combined with \env{lateximage}s.\margintag{math} -% \item \pkg{algorithmicx}: Improved comment symbol and floating. -% \item Completed \pkg{todonotes} and \pkg{luatodonotes}. -% \margintag{\pkg{packages}} -% \item Added \pkg{todo}, \pkg{easy-todo}, \pkg{fixmetodonotes}, \pkg{fixme}. -% \item Added \pkg{soulutf8}, \pkg{soulpos}, \pkg{cancel}. -% \item Added \pkg{section}, \pkg{fancyref}, \pkg{ifoddpage}. -% \item Added \pkg{preview}, \pkg{atbegshi}, \pkg{watermark}. -% \item Improved \pkg{tocloft} \cs{newlistof} and \cs{newlistentry}. -% \end{itemize} -% \needspace{2\baselineskip} -% \item[v0.43:] \ -% \begin{itemize} -% \item Docs: Reorganized \HTML\ customization, added an \HTML\ settings table. -% See \cref{sec:htmlsettings}. -% \item Added \progcode{FootnoteDepth} to control the placement -% \margintag{footnotes} -% of pending footnotes before section breaks. -% By default, pending footnotes are printed before -% each \cs{subparagraph} or higher. -% \item Fix: Expansion in section name. \margintag{sectioning} -% \item Fix: Ignore spaces in tabular column specification. -% \margintag{\env{tabular}} -% \item Fix: Tabular rules at bottom or when finishing incomplete rows. -% \item Fix: \cs{multicolumn} at/bang/before/after specifications, trim, -% and vertical rules. -% \item Fix: \pkg{supertabular} and \pkg{xtab} column misalignment. -% \item Fix: \env{equation*}. -% \margintag{math} -% \item Fix: \SVG\ math in a section name. -% \item Fix: \cs{ref} and \cs{eqref} in \SVG\ math. -% \item Added \pkg{todonotes} and \pkg{luatodonotes} (but only |disabled|). -% \margintag{packages} -% \item Added \pkg{breakurl}. -% \item \pkg{hyperref}: Fix: Several macros were made robust, \cs{Gauge} added. -% \end{itemize} -% \needspace{2\baselineskip} -% \item[v0.42:] \ -% \begin{itemize} -% \item Added \TeX\ development support page. -% (See page \pageref{sec:supportinglatex}.) -% \margintag{Support \TeX!} -% \item Improved assitance for word-processor conversions when -% \margintag{word-processor conversion} -% boolean |FormatWP| is set |true|. -% See \cref{sec:wordprocessorconversion}. -% \begin{itemize} -% \item \textred{The} \watchout[name change] -% \textred{boolean |FormatWordProcessor| has -% been renamed |FormatWP|.} -% \item \textred{The} \watchout[name change] -% \textred{boolean |HTMLMarkFloats| has -% been renamed |WPMarkFloats|.} -% \item New booleans control whether to place additional -% marks around minipages, at the table of contents, -% at the \LOF\ and \LOT, and whether to -% print math as \LaTeX\ source for copy/paste into the -% \prog{LibreOffice Writer TeXMaths} extension. -% \item Improved formatting for numerous objects. -% See \cref{sec:wordprocessorconversion}. -% \end{itemize} -% \item Add: \env{tabbing} environment. -% \margintag{\env{tabbing}} -% \item Add: \pkg{overpic} package. See \cref{sec:overpic}. -% \margintag{\pkg{overpic}} -% \item Fix: Text copy/paste of \AmS\ math environment numbers and names. -% \margintag{math} -% \item Improved \cs{ensuremath}. -% \item \brand{MathJax} with \pkg{siunitx}: Updated script and documentation. -% \item \pkg{textcomp}: Improved \cs{textinterrobangdown}. -% \margintag{symbols} -% \item \pkg{realscripts}: Fix for subscripts in a \env{lateximage}. -% \item \pkg{morewrites}: Enforces loading before \pkg{lwarp}. -% \margintag{load order} -% \end{itemize} -% \needspace{2\baselineskip} -% \item[v0.41:] \ -% \begin{itemize} -% \item Added tabular vertical rules, subject to some limitations. -% \margintag{\env{tabular}} -% See the rules section of \cref{sec:limitstabular}. -% \item Improved \pkg{booktabs}: Width and trim are honored. -% \item Added \cs{mcolrowcell} for empty cells inside a \cs{multicolumnrow}. -% \watchout[new syntax] -% \textred{Use \cs{mcolrowcell} instead of \cs{mrowcell} for two-dimensional -% cells created by \cs{multicolumnrow}.} -% Continue to use \cs{mrowcell} for empty cells in a \cs{multirow}. -% See \cref{sec:multicolumnmultirow} on \cpageref{sec:multicolumnmultirow}. -% \item Fix: Unfinished tabular rows are automatically filled. -% \item Fix for tabular column specifiers while using \pkg{babel-french}. -% (\cs{NoAutoSpacing} is activated then nullified inside the tabular, -% due to a conflict with the tabular column parsing code.) -% \end{itemize} -% \item[v0.40:] \ -% \begin{itemize} -% \item \pkg{graphics} and \pkg{graphicx} have been moved from the -% \margintag{\pkg{graphics}, \pkg{graphicx}} -% \pkg{lwarp} core, and are only loaded if requested with \cs{usepackage}. -% \item Improved \pkg{graphics} \cs{graphicspath} support. -% \margintag{\cs{includegraphics} path} -% Multiple image directories may now be used. -% \textred{Refer to |.pdf| files without a file extension} -% \watchout[image file extensions] -% to allow the \HTML\ version -% to use a |.svg|, |.png|, |.jpg|, or |.gif| version instead. -% See \cref{sec:limitsgraphics}. -% \item \pkg{grffile} is now directly supported instead of emulated. -% \item Fix for \pkg{bigdelim}, and improved documentation. -% \margintag{\pkg{bigdelim}} -% See \cref{sec:bigdelim}. -% \item Improved \LaTeX\ and \pkg{textcomp} symbols.\margintag{\pkg{symbols}} -% \item Fix for \LaTeX\ logos and \cs{InlineClass}, etc. inside a \env{lateximage}. -% \margintag{\pkg{fixes}} -% \item Fix for \pkg{xltxtra} with \XeLaTeX. -% \item Fixes for \pkg{tocbibind} with \cs{simplechapter}, etc. -% \item Fixes for \cs{multicolumnrow} and \cs{nullfonts} with older versions -% of \pkg{multirow} and \pkg{xparse}. -% \item Added \cs{underline}. -% \item Added \pkg{adjmulticol}.\margintag{margins} -% \item Added \pkg{cuted}, \pkg{midfloat}.\margintag{columns} -% \item Added \pkg{pfnote}, \pkg{fnpos}, \pkg{dblfnote}.\margintag{footnotes} -% \item Added \pkg{stabular}, \pkg{tabls}.\margintag{tabular} -% \item Added \pkg{sectsty}, \pkg{anonchap}, \pkg{quotchap}.\margintag{sectioning} -% \end{itemize} -% \needspace{2\baselineskip} -% \item[v0.39:] \ -% \begin{itemize} -% \item Improved the titlepage \HTML\ code, \cs{thanks} notes, -% \margintag{title pages} -% and \cs{maketitle}. -% \pkg{titling} is no longer required, but is still supported. -% The \cs{published} and \cs{subtitle} fields are no longer provided, -% \watchout[\cs{published} and \cs{subtitle}] -% but \cs{AddSubtitlePublished} replicates them using \pkg{titling}. -% See \cref{sec:publishedsubtitle}. -% \pkg{authblk} is added, and should be loaded before \pkg{titling}. -% \watchout[load order] -% See \cref{sec:titles}. -% \item \cs{multirow} now supports the new optional |vpos| argument. -% \margintag{tabular} -% \item Added \cs{multicolumnrow} for combined -% \margintag{multi column/row cell} -% \cs{multicolumn} and \cs{multirow}. -% See \cref{sec:multicolumnmultirow}. -% \item Tabular special cases: -% \begin{itemize} -% \item Added \cs{TabularMacro} to mark custom macros -% \watchout[macros inside tabular] -% inside tabular data cells, avoiding row corruption. -% See \cref{sec:limitstabular}. -% \item Added \cs{ResumeTabular} for use when a \env{tabular} environment -% \watchout[tabular defined inside another environment] -% is defined inside another environment. -% See \cref{sec:limitstabular}. -% \end{itemize} -% \item Added \pkg{supertabular}, \pkg{xtab}, \pkg{bigstrut}, \pkg{bigdelim}. -% \margintag{tabular} -% \item Added \pkg{fullwidth}.\margintag{margins} -% \item Added \pkg{addlines}, \pkg{anysize}, \pkg{a4}, \pkg{a4wide}, \pkg{a5comb}, -% \margintag{page layout} -% \pkg{textarea}, \pkg{zwpagelayout}, \pkg{typearea}, \pkg{ebook}. -% \end{itemize} -% \item[v0.38:] \ -% \begin{itemize} -% \item Added \cmds{lwarpmk print1} and \cmds{lwarpmk html1} actions to -% \margintag{forced single-pass compile} -% force a compile of the project a single time. -% Useful when multiple passes are not needed, -% or changes were not detected. -% \item Added \cs{ForceHTMLPage} and \cs{ForceHTMLTOC} to force -% \margintag{starred sections} -% a starred sectional unit onto its own \HTML\ page -% and with its own \TOC\ entry. -% See \cref{sec:forcesectionstar}. -% \item Modified the tutorial to use the new \cs{ForceHTMLPage} -% \margintag{updated tutorial} -% and \cs{ForceHTMLTOC} macros. -% \item Added \pkg{appendix}, \pkg{tocbibind}, \pkg{fncychap}, \pkg{fix2col}. -% \margintag{packages} -% \item Added \pkg{relsize}, \pkg{scalefnt}.\margintag{font size} -% \item Added \pkg{realscripts}, \pkg{metalogo}, \pkg{xltxtra}. -% \item Added \pkg{grffile}, \pkg{romanbar}. -% \item Added \pkg{arabicfront}, \pkg{chappg}, \pkg{nonumonpart}, \pkg{nopageno}, -% \margintag{page numbering} -% \pkg{romanbarpagenumber}. -% \item Docs: Improved description of the use of front/back matter. -% \margintag{front \& back matter} -% See \cref{sec:frontbackmatter}. -% \item Fix: \pkg{color} requests \pkg{xcolor}. -% \item Fix: \cs{part} for \pkg{article} class. -% \end{itemize} -% \needspace{2\baselineskip} -% \item[v0.37:] \ -% \begin{itemize} -% \item \cs{include} now maintains independent |.aux| files -% \margintag{\cs{include} for \HTML} -% for \HTML\ versions. -% \item \pkg{comment}, used by \pkg{lwarp}, now maintains -% \margintag{\prog{latexmk}} -% independent cut files for print and \HTML\ versions, helping \prog{latexmk} to -% better know whether to recompile. -% \item Improved support for \LaTeX\ accents, -% \margintag{accents and symbols} -% \pkg{textcomp}, \pkg{siunitx} symbols. -% \item Improved \pkg{babel-french} handling for -% \margintag{\pkg{babel-french}} -% load order and \textasciitilde\ tilde. -% \end{itemize} -% \item[v0.36:] \ -% \begin{itemize} -% \item Recorganized the documentation section regarding special cases and limitations. -% (\Cref{sec:limitations}) -% \item Improved source formatting. -% \item \cs{fbox} and related now use \cs{fboxsep} and \cs{fboxrule}. -% \margintag{boxes and frames} -% \item \cs{makebox} and \cs{framebox} now use width and position. -% \item \cs{fcolorbox} and related now work inside a \env{lateximage}. -% \item \pkg{babel-french}: Improvements for French variants, load order, -% \margintag{\pkg{babel-french}} -% footnotes, ellipses. -% \item Improved footnote numbering. -% \margintag{footnotes} -% \env{lateximage} footnotes now appear as regular footnotes to match -% the numbering of the print version. -% Also fixed a regression with \brand{MathJax}. -% \item Improved \pkg{siunitx} units. -% \margintag{\pkg{siunitx}} -% \item Fix for filenames while using \brand{MathJax}. -% \item Fix for \cs{rule} when \pkg{xcolor} is not loaded. -% \item Added \pkg{transparent}, \pkg{upref}. -% \end{itemize} -% \item[v0.35:] Fix: \cs{textbf} and related. -% \item[v0.34:] \ -% \begin{itemize} -% \item \env{BlockClass}'s optional argument has been moved -% \watchout[Optional arguments] -% in front of the mandatory argument: -% \begin{sourcedisplay} -% |BlockClass[style]{class}| \quad \textrm{(NEW)} -% \end{sourcedisplay} -% instead of: -% \begin{sourcedisplay} -% |BlockClass{class}[style]| \quad \textrm{(OLD)} -% \end{sourcedisplay} -% This change makes it more consistent with \LaTeX\ standards, -% and avoids problems with space between arguments. -% \item Likewise, \cs{InlineClass}'s optional argument now -% \watchout[Optional arguments] -% comes before the mandatory arguments: -% \begin{sourcedisplay} -% |\InlineClass[style]{class}{text}| -% \end{sourcedisplay} -% \item Improved compatibility between spans, minipages, lists, -% \margintag{spans with minipages} -% frames, and math. -% Handles minipages and lists inside an \HTML\ span, -% such as an \cs{fbox} containing a minipage, -% although with minimal \HTML\ fomatting. -% See \cref{sec:minipages}. -% \cs{fboxBlock} is added to frame minipages, tables, -% \margintag{framing minipages} -% and lists with full \HTML\ formatting -% but no longer inline, and behaves as \cs{fbox} for print output. -% The \env{fminipage} environment is added for framed minipages, -% as an environment with full \HTML\ formatting, -% and draws a framed minipage in print output. -% See \cref{sec:framedminipages}. -% \cs{fbox} and minipages now often work in \SVG\ math and \env{lateximage}s. -% \brand{MathJax} supports \cs{fbox}, but not \cs{fboxBlock} nor \env{fminipage}. -% \item Improved compatibility between \env{lateximage} and -% \margintag{\env{lateximage}, \SVG\ math, \env{tabular}} -% \env{minipage}, \cs{parbox}, \cs{makebox}, \cs{fbox}, \cs{framebox}, -% \cs{raisebox}, \cs{scalebox}, \cs{reflectbox}, \env{tabular}, \pkg{booktabs}. -% \item Improved font control for \env{lateximage}es and \SVG\ math. -% \item Added the \env{eqnarray} environments.\margintag{\env{eqnarray}} -% \item \pkg{fancyvrb} is no longer required (preloaded), -% \margintag{verbatim packages} -% but is still supported. -% \item Added \pkg{verbatim} and \pkg{moreverb}. -% \item Added \pkg{fancybox}, \pkg{boxedminipage2e} and \pkg{shadow}. -% \margintag{framing packages} -% \item \pkg{enumitem} is no longer required, but is still supported. -% \margintag{list packages} -% \item Added \pkg{enumerate} and \pkg{paralist}. -% \item \pkg{titleps} is no longer required, but is still supported. -% \item Added \pkg{crop}. -% \item Added \pkg{rotfloat}, \pkg{marginfit}, -% and several minor packages; see the change log. -% \item Adds fixed-width \HTML\ spaces around punctuation -% \margintag{\pkg{babel-french}} -% when using \pkg{babel-french}. -% \LuaTeX\ does not yet use the extra punctuation spacing. -% \end{itemize} -% \needspace{2\baselineskip} -% \item[v0.33:] \ -% \begin{itemize} -% \item Tabular |@| and |!| columns now havetheir own \HTML\ columns. -% \item |&| catcode changes are localized, perhaps causing errors -% about the tab alignment character |&|, -% so any definitions of macros or environments -% which themselves contain \env{tabular} and |&| must be enclosed within \cs{StartDefiningTabulars} -% and \cs{StopDefiningTabulars} (previously called \cs{EndDefiningTabulars}. -% See \cref{sec:localizingcatcodes}. -% This change is not required for the routine use of tables, -% but only when a table is defined inside another macro or environment, -% and while also using the |&| character inside the definition. -% This may include the use inside conditional expressions. -% \item Several math environments were incorrectly placed inline. -% Also, for \pkg{amsmath} with \SVG\ math, the \optn{fleqn} option has been removed, -% resulting in improved spacing for aligned equations. -% \item Bug fixes; see the changelog. -% \end{itemize} -% \item[v0.32:] Bug fixes; no source changes needed: -% \begin{itemize} -% \item \prog{lwarpmk} has been adjusted to work with the latest \prog{luatex}. -% \item Spaces in the \cs{usepackage} and \cs{RequirePackage} package lists are now accepted and ignored. -% \item Fix for the \pkg{glossaries} package and \cs{glo@name}. -% \end{itemize} -% \item[v0.31:] Bug fix; no source changes needed: -% \begin{itemize} -% \item Improved compatibility with \pkg{keyfloat}, -% including the new \env{keywrap} environment. -% \end{itemize} -% \needspace{2\baselineskip} -% \item[v0.30:] \ -% \begin{itemize} -% \item \pkg{lwarp-newproject} has been removed, and its functions -% \watchout[\pkg{lwarp-newproject}] -% have been combined with \pkg{lwarp}. -% -% To modify existing documents, remove from the document source: -% \begin{sourceverb} -% \usepackage{lwarp-newproject} -% \end{sourceverb} -% -% The \pkg{lwarp} package now produces the configuration files during -% print output, and also accepts the option \optn{lwarpmk} if desired. -% -% \item A number of macros -% \watchout[HTML setup changes.] -% related to \HTML\ settings have been converted to options, and -% other macros and options have been renamed to create a consistent syntax: -% \begin{center} -% \begin{tabular}{cc} -% \toprule -% Old Macro & New Package Option \\ \midrule -% \cs{HomeHTMLFileName} & |HomeHTMLFilename| \\ -% \cs{HTMLFileName} & |HTMLFilename| \\ -% \cs{useLatexmk} & |latexmk| \\ -% \cs{warpOSwindows} & |OSWindows| \\[2.5ex] \toprule -% Old Package Option & New Package Option \\ \midrule -% \optn{lwarpmklang} & \optn{xindyLanguage} \\ -% (new) & \optn{xindyStyle} \\[2.5ex] \toprule -% Old Macro & New Macro \\ \midrule -% \cs{MetaLanguage} & \cs{HTMLLanguage} \\ -% \cs{HTMLauthor} & \cs{HTMLAuthor} \\ -% \cs{NewHTMLdescription} & \cs{HTMLDescription} \\ -% \cs{SetFirstPageTop} & \cs{HTMLFirstPageTop} \\ -% \cs{SetPageTop} & \cs{HTMLPageTop} \\ -% \cs{SetPageBottom} & \cs{HTMLPageBottom} \\ -% \cs{NewCSS} & \cs{CSSFilename} \\ -% \bottomrule -% \end{tabular} -% \end{center} -% -% \needspace{2\baselineskip} -% \item Per the above changes, in existing documents, -% modify the package load of \pkg{lwarp}, such as: -% \begin{sourceverb} -% \usepackage[ -% HomeHTMLFilename=index, -% HTMLFilename={}, -% xindyLanguage=english -% ]{lwarp} -% \end{sourceverb} -% -% \item The file |lwarp_html.xdy| has been renamed |lwarp.xdy|. -% To update each document's project: -% \begin{enumerate} -% \item Make the changes shown above. -% \item Recompile the document in print mode. -% This updates the project's configuration files, and also generates the -% new file |lwarp.xdy|. -% \item The old file |lwarp_html.xdy| may be deleted. -% \end{enumerate} -% -% \item The new \pkg{lwarp} package option \optn{xindyStyle} may be used to tell -% \prog{lwarpmk} to use a custom |.xdy| file instead of |lwarp.xdy|. -% See \cref{sec:modifyxindy}. -% -% \item Improvements in index processing: -% \begin{itemize} -% \item \prog{xindy}'s language is now used for index processing -% as well as glossary. -% \item Print mode without \prog{latexmk} now uses \prog{xindy} instead of \prog{makeindex}. -% \item \prog{texindy}/\prog{xindy} usage depends on \prog{pdflatex} vs \prog{xelatex}, \prog{lualatex}. -% \item For \prog{pdflatex} and \prog{texindy}, the \optn{-C utf8} option is used. This is -% supported in modern distributions, but a customized \filenm{lwarpmk.lua} may -% need to be created for use with older distributions. -% \end{itemize} -% -% \end{itemize} -% -% \needspace{2\baselineskip} -% -% \item[v0.29:] \ -% \begin{itemize} -% \item Add: \optn{lwarpmklang} option for \pkg{lwarp-newproject} and \pkg{lwarp}. -% Sets the language to use while processing the glossary. -% (As of v0.30, this has been changed to the \optn{IndexLanguage} option.) -% (As of v0.54, this has been changed to the \optn{xindyLanguage} option.) -% \item Fix: \cs{includegraphics} when no optional arguments. -% \end{itemize} -% \item[v0.28:] \ -% \begin{itemize} -% \item \cs{HTMLAuthor} \marg{name} assigns \HTML\ meta author if non-empty. -% Defaults to \cs{theauthor}. -% \item Booean |HTMLDebugComments| controls whether \HTML\ comments are -% added for closing \element{div}s, opening and closing sections, etc. -% \item Boolean |FormatEPUB| changes \HTML\ output for easy \EPUB\ conversion -% via an external program. -% Removes per-file headers, footers, and nav. Adds footnotes per chapter/section. -% \item Boolean |FormatWordProcessor| changes \HTML\ output for easier conversion -% by a word processor. Removes headers and nav, prints footnotes per section, -% and also forces single-file output and turns off \HTML\ debug comments. -% Name changed to |FormatWP| as of v0.42. -% \item Boolean |HTMLMarkFloats| adds text marks around floats only if the boolean -% |FormatWordProcessor| is |true|. -% These make it easier to identify float boundaries, -% which are to be manually converted to word-processor frames. -% Name changed to |WPMarkFloats| as of v0.42. -% \item Updated for the new \brand{MathJax} \acro{CDN} repository. -% \item Adds \pkg{tabulary}. -% \item Supports the options syntax for \pkg{graphics}. -% \item Improved index references, now pointing exactly to their target. -% \item Adds \pkg{glossaries}. -% \prog{lwarpmk} is modified to add |printglosssary| and |htmlglossary| actions. -% \end{itemize} -% +% ^^A \needspace{2\baselineskip} +% ^^A \item[v0.50:] Improved \SVG\ math. +% ^^A \begin{itemize} +% ^^A \item \SVG\ math and other \env{lateximage}s now are +% ^^A converted to \SVG\ using \margintag{\SVG\ math} +% ^^A parallel background tasks, utilizing all available \acro{CPU} cores. +% ^^A \item Inline \SVG\ math image file names now are MD5 hashes made from +% ^^A their source \LaTeX\ code. +% ^^A Identical inline math expressions, such as multiple instance of \$x\$, +% ^^A now share a single image file. +% ^^A This reduces the number of images to store, transmit, process, and display. +% ^^A Each image file is only converted to \SVG\ a single time, and reused if it +% ^^A already exists. +% ^^A Display math and other forms of \SVG\ image such as \env{picture} and +% ^^A \tikz\ still use individual image files which are recreated each time +% ^^A \cmds{lwarpmk limages} is run. +% ^^A \item Fixes: SVG math and/or \cs{underline} in a sectioning file name. +% ^^A \item Improved \SVG\ display math and tags. +% ^^A \item Improved \SVG\ math and \pkg{siunitx} \attribute{alt} tags. +% ^^A \item Improved \pkg{siunitx} units. +% ^^A \item Fix: \cs{ensuremath} with MathJax now creates a \env{lateximage}. +% ^^A \item Fix: \cs{centering}, etc. in \SVG\ math, \env{lateximage}, \tikz. +% ^^A \item Fix: Made various macros robust, +% ^^A additionally fixing \pkg{authblk}.\margintag{misc. fixes} +% ^^A \item Fix: \pkg{ntheorem} if neither \optn{standard} nor \optn{amsthm} selected. +% ^^A \item Fix: \pkg{listings}: Improved column alignment. +% ^^A \item Fix: Load \pkg{fontspec} if necessary. +% ^^A \item Added \pkg{xy}, \pkg{epstopdf}, \pkg{diagbox}, \pkg{pbox}, \margintag{packages} +% ^^A \pkg{bytefield}, \pkg{axodraw2}, \pkg{phfqit}, +% ^^A \pkg{schemata}, +% ^^A \pkg{dblfloatfix}, \pkg{nonfloat}, \pkg{morefloats}. +% ^^A \end{itemize} +% ^^A \needspace{2\baselineskip} +% ^^A \item[v0.49:] \ +% ^^A \begin{itemize} +% ^^A \item Added \pkg{xcolor} \cs{rowcolors}.\margintag{tabular} +% ^^A \item Fix: \cs{noalign} inside a \env{tabular}. +% ^^A \item Fix: \cs{eqref} in a caption.\margintag{math} +% ^^A \item Fix: Incorrect \PDF\ font size changes +% ^^A caused occasional \HTML\ corruption.\margintag{misc fixes} +% ^^A \item Fix: \pkg{printlen} changes are now grouped for \HTML\ output. +% ^^A \item Added \pkg{vwcol}, \pkg{vertbars}, \pkg{hyphenat}, \margintag{packages} +% ^^A \pkg{lineno}, \pkg{fnlineno}, \pkg{figsize}, \pkg{hypdestopt}, \pkg{pagegrid}, +% ^^A \pkg{pdfrender}, \pkg{luacolor}, \pkg{resizegather}. +% ^^A \end{itemize} +% ^^A \needspace{2\baselineskip} +% ^^A \item[v0.48:] \ +% ^^A \begin{itemize} +% ^^A \item Added some documentation +% ^^A \margintag{documentation} +% ^^A regarding converting an existing document. See \cref{sec:convertexisting}. +% ^^A \item Updated compatibility for new \pkg{cleveref} v0.21.\margintag{\pkg{cleveref}} +% ^^A \item Fix: Ignores optional tabular column arguments.\margintag{tabular} +% ^^A \item Added \cs{leftline}, \cs{centerline}, +% ^^A \cs{rightline}.\margintag{minor updates} +% ^^A \item Lists have improved font control via \cs{makelabel}. +% ^^A \item Print-mode \env{lateximage} now boxed to the natural width of its +% ^^A multiline contents. +% ^^A \item \env{abstract} now allows an optional name, as required by some classes. +% ^^A \item Fix: Improved spacing, \cs{mbox}, and font sizes +% ^^A with \SVG\ math, \tikz.\margintag{math} +% ^^A \item \pkg{siunitx}: Improved \SVG\ math, fraction compatibility, color output. +% ^^A \item Fix: LOF/LOT links.\margintag{misc. fixes} +% ^^A \item Fix: Virtual page size grouping caused excessive \PDF\ page breaks. +% ^^A \item Fix: Parsing similar package names in a +% ^^A single \cs{usepackage}. +% ^^A \item Fix: Adapts to classes without \cs{part}. +% ^^A \item Fix: \cs{newline} in \cs{title} was causing |<br>| in window title. +% ^^A \item Fix: \cs{maketitle} with \cs{cr}, \cs{crcr}, \cs{noalign}, +% ^^A for \pkg{IEEEtran} class. +% ^^A \item Fix: \pkg{xfrac} neutralized \env{BlockClass} and others. +% ^^A \item Fix: \pkg{todonotes} and \pkg{luatodonotes}: Improved \cs{todototoc}. +% ^^A \item Added \pkg{colortbl}, \margintag{packages} +% ^^A \pkg{chapterbib}, \pkg{acro}, \pkg{acronym}, +% ^^A \pkg{hypernat}, \pkg{hypcap}, \pkg{stfloats}, +% ^^A \pkg{vmargin}, \pkg{fancyheadings}. +% ^^A \item \pkg{fancyref}: Now directly supported. +% ^^A \end{itemize} +% ^^A \needspace{2\baselineskip} +% ^^A \item[v0.47:] \ +% ^^A \begin{itemize} +% ^^A \item Improved \SVG\ math baseline and sizing.\margintag{math} +% ^^A \item Fixes: \SVG math in captions, subcaptions, \cs{nameref}. +% ^^A \item Fixes: Line wrap at hyphen in \HTML\ output. +% ^^A \item Added \pkg{endheads}, \pkg{multitoc}, \pkg{sectionbreak}, +% ^^A \pkg{blowup}, \pkg{xurl}.\margintag{packages} +% ^^A \end{itemize} +% ^^A \needspace{2\baselineskip} +% ^^A \item[v0.46:] \ +% ^^A \begin{itemize} +% ^^A \item \cs{PrintStack} changed to \cs{LWRPrintStack}.\watchout[name change] +% ^^A \item Fix: Empty lines between \env{tabular} rows.\margintag{misc. fixes} +% ^^A \item Fix: Stack unnesting. +% ^^A \item Fix: SVG math and \env{lateximage}s in numerous situations. +% ^^A \item Fix: Spaces in \cs{usepackage}. +% ^^A \item Fix: Now allows \brand{MathJax} inside \env{verse}. +% ^^A \end{itemize} +% ^^A \needspace{2\baselineskip} +% ^^A \item[v0.45:] \ +% ^^A \begin{itemize} +% ^^A \item Improved \prog{MiKTeX} install instructions. +% ^^A \margintag{documentation} +% ^^A \item Improved graphics and \pkg{epstopdf} instructions. +% ^^A \item Updates to the \nameref{sec:introduction}. +% ^^A \item Added \pkg{memoir}, \pkg{memhfixc}. +% ^^A See \cref{sec:limitsmemoir}.\margintag{memoir} +% ^^A \item Fix: Now allows underscores in labels.\margintag{cross-references} +% ^^A \item Fix: \cs{\_} and |\<blank>| in section/file names. +% ^^A \item Fix: Now allows \brand{MathJax} inside \env{tabbing}.\margintag{math} +% ^^A \item Fix: Bibliography \cs{em} names.\margintag{bibliography} +% ^^A \item Added \pkg{cite}, \pkg{natbib}, \pkg{backref}. +% ^^A (Also works as-is with \pkg{biblatex}.) +% ^^A \item Fix: Empty lines between \env{tabular} rows.\margintag{misc. fixes} +% ^^A \item Fix: ``Improper \cs{prevdepth}'' with minipages, lists. +% ^^A \item Fix: Incorrect \SVG\ math and |lateximage|s with \pkg{subfig}. +% ^^A \item Fix: Lateximages from incorrect pages with Mathjax. +% ^^A \item Fix: Missing sidetoc if using \pkg{listings}. +% ^^A \item Fix: Added an \pkg{array} emulation package. +% ^^A \item Added +% ^^A \pkg{subfigure}, \pkg{prettyref}, \margintag{packages} +% ^^A \pkg{hanging}, \pkg{midpage}, +% ^^A \pkg{flafter}, \pkg{fltrace}, \pkg{changebar}, \pkg{endfloat}, +% ^^A \pkg{continue}, \pkg{fwlw}, \pkg{turnthepage}, \pkg{footnpag}, +% ^^A \pkg{pagesel}, \pkg{textfit}, \pkg{titleref}. +% ^^A \end{itemize} +% ^^A \needspace{2\baselineskip} +% ^^A \item[v0.44:] \ +% ^^A \begin{itemize} +% ^^A \item Added \pkg{koma-script} classes (except \pkg{scrlttr2}, \pkg{scrjura}). +% ^^A \margintag{\pkg{koma-script}} +% ^^A \item Added \pkg{scrextend}, +% ^^A \pkg{scrlayer}, \pkg{scrlayer-notecolumn}, \pkg{scrlayer-scrpage}, +% ^^A \pkg{scrhack}, \pkg{tocstyle}, \pkg{tocbasic}. +% ^^A \item Added \cs{HTMLTitle}. +% ^^A \margintag{\HTML\ title and author} +% ^^A Fixed web page title if \cs{HTMLTitle} empty and no \cs{title} given and +% ^^A not using \pkg{titling} package. +% ^^A \item Fixed web page author if \cs{HTMLauthor} is empty and \cs{author} is not given. +% ^^A \item If using \prog{pdflatex}, automatically loads T1 and \UTF-8 encodings. +% ^^A \margintag{encodings} +% ^^A (Additional \pkg{fontenc} encodings may be loaded after \pkg{lwarp}.) +% ^^A \item Added \env{list} and \env{trivlist} environments, \pkg{hang}.\margintag{lists} +% ^^A \item Fix: \cs{multicolumn} alignment if formatting for a word processor. +% ^^A \margintag{tabular} +% ^^A \item Added \pkg{ltxtable}. +% ^^A \item Fix: \brand{MathJax} combined with \env{lateximage}s.\margintag{math} +% ^^A \item \pkg{algorithmicx}: Improved comment symbol and floating. +% ^^A \item Completed \pkg{todonotes} and \pkg{luatodonotes}. +% ^^A \margintag{\pkg{packages}} +% ^^A \item Added \pkg{todo}, \pkg{easy-todo}, \pkg{fixmetodonotes}, \pkg{fixme}. +% ^^A \item Added \pkg{soulutf8}, \pkg{soulpos}, \pkg{cancel}. +% ^^A \item Added \pkg{section}, \pkg{fancyref}, \pkg{ifoddpage}. +% ^^A \item Added \pkg{preview}, \pkg{atbegshi}, \pkg{watermark}. +% ^^A \item Improved \pkg{tocloft} \cs{newlistof} and \cs{newlistentry}. +% ^^A \end{itemize} +% ^^A \needspace{2\baselineskip} +% ^^A \item[v0.43:] \ +% ^^A \begin{itemize} +% ^^A \item Docs: Reorganized \HTML\ customization, added an \HTML\ settings table. +% ^^A See \cref{sec:htmlsettings}. +% ^^A \item Added \progcode{FootnoteDepth} to control the placement +% ^^A \margintag{footnotes} +% ^^A of pending footnotes before section breaks. +% ^^A By default, pending footnotes are printed before +% ^^A each \cs{subparagraph} or higher. +% ^^A \item Fix: Expansion in section name. \margintag{sectioning} +% ^^A \item Fix: Ignore spaces in tabular column specification. +% ^^A \margintag{\env{tabular}} +% ^^A \item Fix: Tabular rules at bottom or when finishing incomplete rows. +% ^^A \item Fix: \cs{multicolumn} at/bang/before/after specifications, trim, +% ^^A and vertical rules. +% ^^A \item Fix: \pkg{supertabular} and \pkg{xtab} column misalignment. +% ^^A \item Fix: \env{equation*}. +% ^^A \margintag{math} +% ^^A \item Fix: \SVG\ math in a section name. +% ^^A \item Fix: \cs{ref} and \cs{eqref} in \SVG\ math. +% ^^A \item Added \pkg{todonotes} and \pkg{luatodonotes} (but only |disabled|). +% ^^A \margintag{packages} +% ^^A \item Added \pkg{breakurl}. +% ^^A \item \pkg{hyperref}: Fix: Several macros were made robust, \cs{Gauge} added. +% ^^A \end{itemize} +% ^^A \needspace{2\baselineskip} +% ^^A \item[v0.42:] \ +% ^^A \begin{itemize} +% ^^A \item Added \TeX\ development support page. +% ^^A (See page \pageref{sec:supportinglatex}.) +% ^^A \margintag{Support \TeX!} +% ^^A \item Improved assitance for word-processor conversions when +% ^^A \margintag{word-processor conversion} +% ^^A boolean |FormatWP| is set |true|. +% ^^A See \cref{sec:wordprocessorconversion}. +% ^^A \begin{itemize} +% ^^A \item \textred{The} \watchout[name change] +% ^^A \textred{boolean |FormatWordProcessor| has +% ^^A been renamed |FormatWP|.} +% ^^A \item \textred{The} \watchout[name change] +% ^^A \textred{boolean |HTMLMarkFloats| has +% ^^A been renamed |WPMarkFloats|.} +% ^^A \item New booleans control whether to place additional +% ^^A marks around minipages, at the table of contents, +% ^^A at the \LOF\ and \LOT, and whether to +% ^^A print math as \LaTeX\ source for copy/paste into the +% ^^A \prog{LibreOffice Writer TeXMaths} extension. +% ^^A \item Improved formatting for numerous objects. +% ^^A See \cref{sec:wordprocessorconversion}. +% ^^A \end{itemize} +% ^^A \item Add: \env{tabbing} environment. +% ^^A \margintag{\env{tabbing}} +% ^^A \item Add: \pkg{overpic} package. See \cref{sec:overpic}. +% ^^A \margintag{\pkg{overpic}} +% ^^A \item Fix: Text copy/paste of \AmS\ math environment numbers and names. +% ^^A \margintag{math} +% ^^A \item Improved \cs{ensuremath}. +% ^^A \item \brand{MathJax} with \pkg{siunitx}: Updated script and documentation. +% ^^A \item \pkg{textcomp}: Improved \cs{textinterrobangdown}. +% ^^A \margintag{symbols} +% ^^A \item \pkg{realscripts}: Fix for subscripts in a \env{lateximage}. +% ^^A \item \pkg{morewrites}: Enforces loading before \pkg{lwarp}. +% ^^A \margintag{load order} +% ^^A \end{itemize} +% ^^A \needspace{2\baselineskip} +% ^^A \item[v0.41:] \ +% ^^A \begin{itemize} +% ^^A \item Added tabular vertical rules, subject to some limitations. +% ^^A \margintag{\env{tabular}} +% ^^A See the rules section of \cref{sec:limitstabular}. +% ^^A \item Improved \pkg{booktabs}: Width and trim are honored. +% ^^A \item Added \cs{mcolrowcell} for empty cells inside a \cs{multicolumnrow}. +% ^^A \watchout[new syntax] +% ^^A \textred{Use \cs{mcolrowcell} instead of \cs{mrowcell} for two-dimensional +% ^^A cells created by \cs{multicolumnrow}.} +% ^^A Continue to use \cs{mrowcell} for empty cells in a \cs{multirow}. +% ^^A See \cref{sec:multicolumnmultirow} on \cpageref{sec:multicolumnmultirow}. +% ^^A \item Fix: Unfinished tabular rows are automatically filled. +% ^^A \item Fix for tabular column specifiers while using \pkg{babel-french}. +% ^^A (\cs{NoAutoSpacing} is activated then nullified inside the tabular, +% ^^A due to a conflict with the tabular column parsing code.) +% ^^A \end{itemize} +% ^^A \item[v0.40:] \ +% ^^A \begin{itemize} +% ^^A \item \pkg{graphics} and \pkg{graphicx} have been moved from the +% ^^A \margintag{\pkg{graphics}, \pkg{graphicx}} +% ^^A \pkg{lwarp} core, and are only loaded if requested with \cs{usepackage}. +% ^^A \item Improved \pkg{graphics} \cs{graphicspath} support. +% ^^A \margintag{\cs{includegraphics} path} +% ^^A Multiple image directories may now be used. +% ^^A \textred{Refer to |.pdf| files without a file extension} +% ^^A \watchout[image file extensions] +% ^^A to allow the \HTML\ version +% ^^A to use a |.svg|, |.png|, |.jpg|, or |.gif| version instead. +% ^^A See \cref{sec:limitsgraphics}. +% ^^A \item \pkg{grffile} is now directly supported instead of emulated. +% ^^A \item Fix for \pkg{bigdelim}, and improved documentation. +% ^^A \margintag{\pkg{bigdelim}} +% ^^A See \cref{sec:bigdelim}. +% ^^A \item Improved \LaTeX\ and \pkg{textcomp} symbols.\margintag{\pkg{symbols}} +% ^^A \item Fix for \LaTeX\ logos and \cs{InlineClass}, etc. inside a \env{lateximage}. +% ^^A \margintag{\pkg{fixes}} +% ^^A \item Fix for \pkg{xltxtra} with \XeLaTeX. +% ^^A \item Fixes for \pkg{tocbibind} with \cs{simplechapter}, etc. +% ^^A \item Fixes for \cs{multicolumnrow} and \cs{nullfonts} with older versions +% ^^A of \pkg{multirow} and \pkg{xparse}. +% ^^A \item Added \cs{underline}. +% ^^A \item Added \pkg{adjmulticol}.\margintag{margins} +% ^^A \item Added \pkg{cuted}, \pkg{midfloat}.\margintag{columns} +% ^^A \item Added \pkg{pfnote}, \pkg{fnpos}, \pkg{dblfnote}.\margintag{footnotes} +% ^^A \item Added \pkg{stabular}, \pkg{tabls}.\margintag{tabular} +% ^^A \item Added \pkg{sectsty}, \pkg{anonchap}, \pkg{quotchap}.\margintag{sectioning} +% ^^A \end{itemize} +% ^^A \needspace{2\baselineskip} +% ^^A \item[v0.39:] \ +% ^^A \begin{itemize} +% ^^A \item Improved the titlepage \HTML\ code, \cs{thanks} notes, +% ^^A \margintag{title pages} +% ^^A and \cs{maketitle}. +% ^^A \pkg{titling} is no longer required, but is still supported. +% ^^A The \cs{published} and \cs{subtitle} fields are no longer provided, +% ^^A \watchout[\cs{published} and \cs{subtitle}] +% ^^A but \cs{AddSubtitlePublished} replicates them using \pkg{titling}. +% ^^A See \cref{sec:publishedsubtitle}. +% ^^A \pkg{authblk} is added, and should be loaded before \pkg{titling}. +% ^^A \watchout[load order] +% ^^A See \cref{sec:titles}. +% ^^A \item \cs{multirow} now supports the new optional |vpos| argument. +% ^^A \margintag{tabular} +% ^^A \item Added \cs{multicolumnrow} for combined +% ^^A \margintag{multi column/row cell} +% ^^A \cs{multicolumn} and \cs{multirow}. +% ^^A See \cref{sec:multicolumnmultirow}. +% ^^A \item Tabular special cases: +% ^^A \begin{itemize} +% ^^A \item Added \cs{TabularMacro} to mark custom macros +% ^^A \watchout[macros inside tabular] +% ^^A inside tabular data cells, avoiding row corruption. +% ^^A See \cref{sec:limitstabular}. +% ^^A \item Added \cs{ResumeTabular} for use when a \env{tabular} environment +% ^^A \watchout[tabular defined inside another environment] +% ^^A is defined inside another environment. +% ^^A See \cref{sec:limitstabular}. +% ^^A \end{itemize} +% ^^A \item Added \pkg{supertabular}, \pkg{xtab}, \pkg{bigstrut}, \pkg{bigdelim}. +% ^^A \margintag{tabular} +% ^^A \item Added \pkg{fullwidth}.\margintag{margins} +% ^^A \item Added \pkg{addlines}, \pkg{anysize}, \pkg{a4}, \pkg{a4wide}, \pkg{a5comb}, +% ^^A \margintag{page layout} +% ^^A \pkg{textarea}, \pkg{zwpagelayout}, \pkg{typearea}, \pkg{ebook}. +% ^^A \end{itemize} +% ^^A \item[v0.38:] \ +% ^^A \begin{itemize} +% ^^A \item Added \cmds{lwarpmk print1} and \cmds{lwarpmk html1} actions to +% ^^A \margintag{forced single-pass compile} +% ^^A force a compile of the project a single time. +% ^^A Useful when multiple passes are not needed, +% ^^A or changes were not detected. +% ^^A \item Added \cs{ForceHTMLPage} and \cs{ForceHTMLTOC} to force +% ^^A \margintag{starred sections} +% ^^A a starred sectional unit onto its own \HTML\ page +% ^^A and with its own \TOC\ entry. +% ^^A See \cref{sec:forcesectionstar}. +% ^^A \item Modified the tutorial to use the new \cs{ForceHTMLPage} +% ^^A \margintag{updated tutorial} +% ^^A and \cs{ForceHTMLTOC} macros. +% ^^A \item Added \pkg{appendix}, \pkg{tocbibind}, \pkg{fncychap}, \pkg{fix2col}. +% ^^A \margintag{packages} +% ^^A \item Added \pkg{relsize}, \pkg{scalefnt}.\margintag{font size} +% ^^A \item Added \pkg{realscripts}, \pkg{metalogo}, \pkg{xltxtra}. +% ^^A \item Added \pkg{grffile}, \pkg{romanbar}. +% ^^A \item Added \pkg{arabicfront}, \pkg{chappg}, \pkg{nonumonpart}, \pkg{nopageno}, +% ^^A \margintag{page numbering} +% ^^A \pkg{romanbarpagenumber}. +% ^^A \item Docs: Improved description of the use of front/back matter. +% ^^A \margintag{front \& back matter} +% ^^A See \cref{sec:frontbackmatter}. +% ^^A \item Fix: \pkg{color} requests \pkg{xcolor}. +% ^^A \item Fix: \cs{part} for \pkg{article} class. +% ^^A \end{itemize} +% ^^A \needspace{2\baselineskip} +% ^^A \item[v0.37:] \ +% ^^A \begin{itemize} +% ^^A \item \cs{include} now maintains independent |.aux| files +% ^^A \margintag{\cs{include} for \HTML} +% ^^A for \HTML\ versions. +% ^^A \item \pkg{comment}, used by \pkg{lwarp}, now maintains +% ^^A \margintag{\prog{latexmk}} +% ^^A independent cut files for print and \HTML\ versions, helping \prog{latexmk} to +% ^^A better know whether to recompile. +% ^^A \item Improved support for \LaTeX\ accents, +% ^^A \margintag{accents and symbols} +% ^^A \pkg{textcomp}, \pkg{siunitx} symbols. +% ^^A \item Improved \pkg{babel-french} handling for +% ^^A \margintag{\pkg{babel-french}} +% ^^A load order and \textasciitilde\ tilde. +% ^^A \end{itemize} +% ^^A \item[v0.36:] \ +% ^^A \begin{itemize} +% ^^A \item Recorganized the documentation section regarding special cases and limitations. +% ^^A (\Cref{sec:limitations}) +% ^^A \item Improved source formatting. +% ^^A \item \cs{fbox} and related now use \cs{fboxsep} and \cs{fboxrule}. +% ^^A \margintag{boxes and frames} +% ^^A \item \cs{makebox} and \cs{framebox} now use width and position. +% ^^A \item \cs{fcolorbox} and related now work inside a \env{lateximage}. +% ^^A \item \pkg{babel-french}: Improvements for French variants, load order, +% ^^A \margintag{\pkg{babel-french}} +% ^^A footnotes, ellipses. +% ^^A \item Improved footnote numbering. +% ^^A \margintag{footnotes} +% ^^A \env{lateximage} footnotes now appear as regular footnotes to match +% ^^A the numbering of the print version. +% ^^A Also fixed a regression with \brand{MathJax}. +% ^^A \item Improved \pkg{siunitx} units. +% ^^A \margintag{\pkg{siunitx}} +% ^^A \item Fix for filenames while using \brand{MathJax}. +% ^^A \item Fix for \cs{rule} when \pkg{xcolor} is not loaded. +% ^^A \item Added \pkg{transparent}, \pkg{upref}. +% ^^A \end{itemize} +% ^^A \item[v0.35:] Fix: \cs{textbf} and related. +% ^^A \item[v0.34:] \ +% ^^A \begin{itemize} +% ^^A \item \env{BlockClass}'s optional argument has been moved +% ^^A \watchout[Optional arguments] +% ^^A in front of the mandatory argument: +% ^^A \begin{sourcedisplay} +% ^^A |BlockClass[style]{class}| \quad \textrm{(NEW)} +% ^^A \end{sourcedisplay} +% ^^A instead of: +% ^^A \begin{sourcedisplay} +% ^^A |BlockClass{class}[style]| \quad \textrm{(OLD)} +% ^^A \end{sourcedisplay} +% ^^A This change makes it more consistent with \LaTeX\ standards, +% ^^A and avoids problems with space between arguments. +% ^^A \item Likewise, \cs{InlineClass}'s optional argument now +% ^^A \watchout[Optional arguments] +% ^^A comes before the mandatory arguments: +% ^^A \begin{sourcedisplay} +% ^^A |\InlineClass[style]{class}{text}| +% ^^A \end{sourcedisplay} +% ^^A \item Improved compatibility between spans, minipages, lists, +% ^^A \margintag{spans with minipages} +% ^^A frames, and math. +% ^^A Handles minipages and lists inside an \HTML\ span, +% ^^A such as an \cs{fbox} containing a minipage, +% ^^A although with minimal \HTML\ fomatting. +% ^^A See \cref{sec:minipages}. +% ^^A \cs{fboxBlock} is added to frame minipages, tables, +% ^^A \margintag{framing minipages} +% ^^A and lists with full \HTML\ formatting +% ^^A but no longer inline, and behaves as \cs{fbox} for print output. +% ^^A The \env{fminipage} environment is added for framed minipages, +% ^^A as an environment with full \HTML\ formatting, +% ^^A and draws a framed minipage in print output. +% ^^A See \cref{sec:framedminipages}. +% ^^A \cs{fbox} and minipages now often work in \SVG\ math and \env{lateximage}s. +% ^^A \brand{MathJax} supports \cs{fbox}, but not \cs{fboxBlock} nor \env{fminipage}. +% ^^A \item Improved compatibility between \env{lateximage} and +% ^^A \margintag{\env{lateximage}, \SVG\ math, \env{tabular}} +% ^^A \env{minipage}, \cs{parbox}, \cs{makebox}, \cs{fbox}, \cs{framebox}, +% ^^A \cs{raisebox}, \cs{scalebox}, \cs{reflectbox}, \env{tabular}, \pkg{booktabs}. +% ^^A \item Improved font control for \env{lateximage}es and \SVG\ math. +% ^^A \item Added the \env{eqnarray} environments.\margintag{\env{eqnarray}} +% ^^A \item \pkg{fancyvrb} is no longer required (preloaded), +% ^^A \margintag{verbatim packages} +% ^^A but is still supported. +% ^^A \item Added \pkg{verbatim} and \pkg{moreverb}. +% ^^A \item Added \pkg{fancybox}, \pkg{boxedminipage2e} and \pkg{shadow}. +% ^^A \margintag{framing packages} +% ^^A \item \pkg{enumitem} is no longer required, but is still supported. +% ^^A \margintag{list packages} +% ^^A \item Added \pkg{enumerate} and \pkg{paralist}. +% ^^A \item \pkg{titleps} is no longer required, but is still supported. +% ^^A \item Added \pkg{crop}. +% ^^A \item Added \pkg{rotfloat}, \pkg{marginfit}, +% ^^A and several minor packages; see the change log. +% ^^A \item Adds fixed-width \HTML\ spaces around punctuation +% ^^A \margintag{\pkg{babel-french}} +% ^^A when using \pkg{babel-french}. +% ^^A \LuaTeX\ does not yet use the extra punctuation spacing. +% ^^A \end{itemize} +% ^^A \needspace{2\baselineskip} +% ^^A \item[v0.33:] \ +% ^^A \begin{itemize} +% ^^A \item Tabular |@| and |!| columns now havetheir own \HTML\ columns. +% ^^A \item |&| catcode changes are localized, perhaps causing errors +% ^^A about the tab alignment character |&|, +% ^^A so any definitions of macros or environments +% ^^A which themselves contain \env{tabular} and |&| must be enclosed within \cs{StartDefiningTabulars} +% ^^A and \cs{StopDefiningTabulars} (previously called \cs{EndDefiningTabulars}. +% ^^A See \cref{sec:localizingcatcodes}. +% ^^A This change is not required for the routine use of tables, +% ^^A but only when a table is defined inside another macro or environment, +% ^^A and while also using the |&| character inside the definition. +% ^^A This may include the use inside conditional expressions. +% ^^A \item Several math environments were incorrectly placed inline. +% ^^A Also, for \pkg{amsmath} with \SVG\ math, the \optn{fleqn} option has been removed, +% ^^A resulting in improved spacing for aligned equations. +% ^^A \item Bug fixes; see the changelog. +% ^^A \end{itemize} +% ^^A \item[v0.32:] Bug fixes; no source changes needed: +% ^^A \begin{itemize} +% ^^A \item \prog{lwarpmk} has been adjusted to work with the latest \prog{luatex}. +% ^^A \item Spaces in the \cs{usepackage} and \cs{RequirePackage} package lists are now accepted and ignored. +% ^^A \item Fix for the \pkg{glossaries} package and \cs{glo@name}. +% ^^A \end{itemize} +% ^^A \item[v0.31:] Bug fix; no source changes needed: +% ^^A \begin{itemize} +% ^^A \item Improved compatibility with \pkg{keyfloat}, +% ^^A including the new \env{keywrap} environment. +% ^^A \end{itemize} +% ^^A \needspace{2\baselineskip} +% ^^A \item[v0.30:] \ +% ^^A \begin{itemize} +% ^^A \item \pkg{lwarp-newproject} has been removed, and its functions +% ^^A \watchout[\pkg{lwarp-newproject}] +% ^^A have been combined with \pkg{lwarp}. +% ^^A +% ^^A To modify existing documents, remove from the document source: +% ^^A \begin{sourceverb} +% ^^A \usepackage{lwarp-newproject} +% ^^A \end{sourceverb} +% ^^A +% ^^A The \pkg{lwarp} package now produces the configuration files during +% ^^A print output, and also accepts the option \optn{lwarpmk} if desired. +% ^^A +% ^^A \item A number of macros +% ^^A \watchout[HTML setup changes.] +% ^^A related to \HTML\ settings have been converted to options, and +% ^^A other macros and options have been renamed to create a consistent syntax: +% ^^A \begin{center} +% ^^A \begin{tabular}{cc} +% ^^A \toprule +% ^^A Old Macro & New Package Option \\ \midrule +% ^^A \cs{HomeHTMLFileName} & |HomeHTMLFilename| \\ +% ^^A \cs{HTMLFileName} & |HTMLFilename| \\ +% ^^A \cs{useLatexmk} & |latexmk| \\ +% ^^A \cs{warpOSwindows} & |OSWindows| \\[2.5ex] \toprule +% ^^A Old Package Option & New Package Option \\ \midrule +% ^^A \optn{lwarpmklang} & \optn{xindyLanguage} \\ +% ^^A (new) & \optn{xindyStyle} \\[2.5ex] \toprule +% ^^A Old Macro & New Macro \\ \midrule +% ^^A \cs{MetaLanguage} & \cs{HTMLLanguage} \\ +% ^^A \cs{HTMLauthor} & \cs{HTMLAuthor} \\ +% ^^A \cs{NewHTMLdescription} & \cs{HTMLDescription} \\ +% ^^A \cs{SetFirstPageTop} & \cs{HTMLFirstPageTop} \\ +% ^^A \cs{SetPageTop} & \cs{HTMLPageTop} \\ +% ^^A \cs{SetPageBottom} & \cs{HTMLPageBottom} \\ +% ^^A \cs{NewCSS} & \cs{CSSFilename} \\ +% ^^A \bottomrule +% ^^A \end{tabular} +% ^^A \end{center} +% ^^A +% ^^A \needspace{2\baselineskip} +% ^^A \item Per the above changes, in existing documents, +% ^^A modify the package load of \pkg{lwarp}, such as: +% ^^A \begin{sourceverb} +% ^^A \usepackage[ +% ^^A HomeHTMLFilename=index, +% ^^A HTMLFilename={}, +% ^^A xindyLanguage=english +% ^^A ]{lwarp} +% ^^A \end{sourceverb} +% ^^A +% ^^A \item The file |lwarp_html.xdy| has been renamed |lwarp.xdy|. +% ^^A To update each document's project: +% ^^A \begin{enumerate} +% ^^A \item Make the changes shown above. +% ^^A \item Recompile the document in print mode. +% ^^A This updates the project's configuration files, and also generates the +% ^^A new file |lwarp.xdy|. +% ^^A \item The old file |lwarp_html.xdy| may be deleted. +% ^^A \end{enumerate} +% ^^A +% ^^A \item The new \pkg{lwarp} package option \optn{xindyStyle} may be used to tell +% ^^A \prog{lwarpmk} to use a custom |.xdy| file instead of |lwarp.xdy|. +% ^^A See \cref{sec:modifyxindy}. +% ^^A +% ^^A \item Improvements in index processing: +% ^^A \begin{itemize} +% ^^A \item \prog{xindy}'s language is now used for index processing +% ^^A as well as glossary. +% ^^A \item Print mode without \prog{latexmk} now uses \prog{xindy} instead of \prog{makeindex}. +% ^^A \item \prog{texindy}/\prog{xindy} usage depends on \prog{pdflatex} vs \prog{xelatex}, \prog{lualatex}. +% ^^A \item For \prog{pdflatex} and \prog{texindy}, the \optn{-C utf8} option is used. This is +% ^^A supported in modern distributions, but a customized \filenm{lwarpmk.lua} may +% ^^A need to be created for use with older distributions. +% ^^A \end{itemize} +% ^^A +% ^^A \end{itemize} +% ^^A +% ^^A \needspace{2\baselineskip} +% ^^A +% ^^A \item[v0.29:] \ +% ^^A \begin{itemize} +% ^^A \item Add: \optn{lwarpmklang} option for \pkg{lwarp-newproject} and \pkg{lwarp}. +% ^^A Sets the language to use while processing the glossary. +% ^^A (As of v0.30, this has been changed to the \optn{IndexLanguage} option.) +% ^^A (As of v0.54, this has been changed to the \optn{xindyLanguage} option.) +% ^^A \item Fix: \cs{includegraphics} when no optional arguments. +% ^^A \end{itemize} +% ^^A \item[v0.28:] \ +% ^^A \begin{itemize} +% ^^A \item \cs{HTMLAuthor} \marg{name} assigns \HTML\ meta author if non-empty. +% ^^A Defaults to \cs{theauthor}. +% ^^A \item Booean |HTMLDebugComments| controls whether \HTML\ comments are +% ^^A added for closing \element{div}s, opening and closing sections, etc. +% ^^A \item Boolean |FormatEPUB| changes \HTML\ output for easy \EPUB\ conversion +% ^^A via an external program. +% ^^A Removes per-file headers, footers, and nav. Adds footnotes per chapter/section. +% ^^A \item Boolean |FormatWordProcessor| changes \HTML\ output for easier conversion +% ^^A by a word processor. Removes headers and nav, prints footnotes per section, +% ^^A and also forces single-file output and turns off \HTML\ debug comments. +% ^^A Name changed to |FormatWP| as of v0.42. +% ^^A \item Boolean |HTMLMarkFloats| adds text marks around floats only if the boolean +% ^^A |FormatWordProcessor| is |true|. +% ^^A These make it easier to identify float boundaries, +% ^^A which are to be manually converted to word-processor frames. +% ^^A Name changed to |WPMarkFloats| as of v0.42. +% ^^A \item Updated for the new \brand{MathJax} \acro{CDN} repository. +% ^^A \item Adds \pkg{tabulary}. +% ^^A \item Supports the options syntax for \pkg{graphics}. +% ^^A \item Improved index references, now pointing exactly to their target. +% ^^A \item Adds \pkg{glossaries}. +% ^^A \prog{lwarpmk} is modified to add |printglosssary| and |htmlglossary| actions. +% ^^A \end{itemize} +% ^^A % ^^A \needspace{2\baselineskip} % ^^A \item[v0.27:] \ % ^^A \begin{itemize} @@ -5078,7 +5130,7 @@ This boolean may be tested by the user for later use. % \spkg{ujarticle} and related, % \spkg{utarticle} and related. \\ % -% Korean: & \spkg{kotex}, \spkg{luatexko}, \spkg{xetexko}. \\ +% Korean: & \spkg{kotex}, \mpkg{luatexko}, \spkg{xetexko}. \\ % % \midrule % @@ -5113,13 +5165,15 @@ This boolean may be tested by the user for later use. % Common short words and punctuation are removed from the filenames. % \epkg{anonchap}, \ipkg{bsheaders}, \ipkg{fncychap}, \epkg{hypbmsec}, % \epkg{indentfirst}, \epkg{quotchap}, -% \ipkg{section}, \mpkg{sectionbreak}, \spkg{secdot}, \ipkg{sectsty}, \ipkg{titlesec}. +% \ipkg{section}, \mpkg{sectionbreak}, \spkg{secdot}, \ipkg{sectsty}, +% \ipkg{titlesec}, \spkg{tocvsec2}. % \\ % % Table of contents, figures, tables: & Supported, with hyperlinks. -% \ipkg{minitoc}, \ipkg{multitoc}, \spkg{shorttoc}, \ipkg{titletoc}, +% \ipkg{etoc}, \ipkg{minitoc}, \ipkg{multitoc}, \spkg{shorttoc}, +% \spkg{tableof}, \ipkg{titletoc}, % \ipkg{tocbasic}, \mpkg{tocbibind}, \mpkg{tocdata}, -% \ipkg{tocloft}, \ipkg{tocstyle}. \\ +% \ipkg{tocloft}, \ipkg{tocstyle}, \spkg{tocvsec2}. \\ % % Title page: & \cs{maketitle}, \env{titlepage}, \mpkg{authblk}, \mpkg{titling}. \\ % @@ -5153,14 +5207,15 @@ This boolean may be tested by the user for later use. % \epkg{scrlayer-notecolumn}, \epkg{versonotes}. \\ % % Footnotes: & Adds \progcode{FootnoteDepth} to print footnotes at section breaks. +% \brand{MathJax} emulation for \cs{footnote}, and also as marked in the following: % \epkg{bigfoot}, \ipkg{dblfnote}, -% \ipkg{endheads}, \mpkg{endnotes}, \spkg{fixfoot}, +% \ipkg{endheads}, \mpkg{endnotes}\ejax, \spkg{fixfoot}, % \ipkg{fnbreak}, \ipkg{fnpara}, \ipkg{fnpos}, % \epkg{footmisc}, \mpkg{footnote}, \ipkg{footnotebackref}, % \mpkg{footnoterange}, \ipkg{footnpag}, \epkg{manyfoot}, -% \epkg{marginnote}, \spkg{nccfoots}, \spkg{pagenote}, -% \mpkg{parnotes}, \ipkg{pdfcolfoot}, \ipkg{pfnote}, \spkg{sepfootnotes}, -% \mpkg{sidenotes}, \ipkg{tablefootnote}. +% \epkg{marginnote}\ejax, \spkg{nccfoots}\ejax, \spkg{pagenote}\ejax, +% \mpkg{parnotes}\ejax, \ipkg{pdfcolfoot}, \ipkg{pfnote}, \spkg{sepfootnotes}, +% \mpkg{sidenotes}\ejax, \ipkg{tablefootnote}. % \\ % % \midrule @@ -6761,7 +6816,7 @@ This boolean may be tested by the user for later use. % \gindex{HTML>alt text=\attribute{alt} text} % \gindex{image>alt text=\attribute{alt} text} % \gindex{math>alt text=\attribute{alt} text} -% \gindex{MathJax=\brand{MathJax}>accessibility} +% \gindex{mathjax=\brand{MathJax}>accessibility} % \gindex{link>title=\attribute{title} text} % \gindex{hyperref=\pkg{hyperref}>title=\attribute{title} text} % \gindex{settings>accessibility} @@ -8544,12 +8599,17 @@ This boolean may be tested by the user for later use. % \limitshyperlinks % % -% \subsubsection{Footnotes and page notes} +% \subsubsection{Footnotes, endnotes, and page notes} % \label{sec:limitsfootnotes} % % \trouble{footnote>numbering} % \gindex{footnotes>numbering} +% \gindex{footnotes>mathjax=\brand{MathJax}} % \trouble{footnote>in sectioning command} +% \trouble{mathjax=\brand{MathJax}>footnotes} +% \trouble{math>footnote>mathjax=\brand{MathJax}} +% \trouble{footnote>mathjax=\brand{MathJax}} +% \trouble{sidenotes=\pkg{sidenotes}>numbering} % % \limitsfootnotes % @@ -8597,11 +8657,12 @@ This boolean may be tested by the user for later use. % \changes{v0.38}{2017/08/24}{Docs: Starred sections.} % % The following describes \cs{ForceHTMLPage} and \cs{ForceHTMLTOC}, +% \margintag{\HTML\ page and \TOC} % which may be used for \pkg{endnotes}, \pkg{glossaries}, \pkg{tocbibind}, % bibliographies, and the index. % See the following sections where applicable. % Continue here if interested in the reason for adding these commands to \pkg{lwarp}. -% \trouble{endnotes>HTML=\HTML\ page and \TOC} +% \trouble{endnotes=\pkg{endnotes}>HTML=\HTML\ page and \TOC} % \trouble{glossaries=\pkg{glossaries}>HTML=\HTML\ page and \TOC} % \trouble{bibliography>HTML=\HTML\ page and \TOC} % \trouble{index>HTML=\HTML\ page and \TOC} @@ -8680,6 +8741,7 @@ This boolean may be tested by the user for later use. % \subsubsection{\pkg{endnotes} package} % % \DescribePackage{endnotes} +% \trouble{endnotes=\pkg{endnotes}>numbering} % \limitsendnotes % % @@ -9412,7 +9474,7 @@ This boolean may be tested by the user for later use. % \gindex{dynamic math} % \trouble{math>tikz=\tikz} % \trouble{tikz>in math} -% \trouble{MathJax=\brand{MathJax}>errors} +% \trouble{mathjax=\brand{MathJax}>errors} % \trouble{HTML>alt tags} % \trouble{alt tags} % @@ -9448,8 +9510,8 @@ This boolean may be tested by the user for later use. % \subsubsection{\pkg{physics} package} % \label{sec:limitsphysics} % -% \trouble{MathJax=\brand{MathJax}>physics=\pkg{physics}} -% \trouble{physics=\pkg{physics}>MathJax=\brand{MathJax}} +% \trouble{mathjax=\brand{MathJax}>physics=\pkg{physics}} +% \trouble{physics=\pkg{physics}>mathjax=\brand{MathJax}} % % \DescribePackage{physics} % \limitsphysics @@ -11035,8 +11097,8 @@ This boolean may be tested by the user for later use. % % \needspace{3\baselineskip} % \item [Incorrect \brand{MathJax}:] Some objects do not convert to \brand{Mathjax}. -% \trouble[\brand{MathJax}]{MathJax=\brand{MathJax}>errors} -% \trouble{MathJax=\brand{MathJax}>unsupported packages} +% \trouble[\brand{MathJax}]{mathjax=\brand{MathJax}>errors} +% \trouble{mathjax=\brand{MathJax}>unsupported packages} % Use \cs{displaymathother} before these objects, then \cs{displaymathnormal} to return % to ``normal'' display math. % See \cref{sec:displaymathother}. @@ -11599,9 +11661,9 @@ This boolean may be tested by the user for later use. \@ifpackageloaded{#1} {} { -\PackageError{lwarp} -{Package #1 must be loaded before lwarp} -{Move \detokenize{\usepackage}{#1} before \detokenize{\usepackage}{lwarp}.} + \PackageError{lwarp} + {Package #1 must be loaded before lwarp} + {Move \detokenize{\usepackage}{#1} before \detokenize{\usepackage}{lwarp}.} } } % \end{macrocode} @@ -11788,6 +11850,7 @@ This boolean may be tested by the user for later use. % \LuaLaTeX\ to preload graphics and graphicx.} % \changes{v0.45}{2017/12/03}{Allows \pkg{memoir}'s preloaded packages.} % \changes{v0.58}{2018/06/21}{Fix: \pkg{memoir} and \pkg{ccaption}.} +% \changes{v0.82}{2020/03/17}{\pkg{syntonly}: Added to \cs{LWR@loadafter}.} % % The following packages must be loaded after \pkg{lwarp}: % ^^A *loadafter @@ -11916,6 +11979,7 @@ This boolean may be tested by the user for later use. \LWR@loadafter{eqparbox} \LWR@loadafter{errata} \LWR@loadafter{eso-pic} +\LWR@loadafter{etoc} \LWR@loadafter{eurosym} \LWR@loadafter{everypage} \LWR@loadafter{everyshi} @@ -12064,6 +12128,7 @@ This boolean may be tested by the user for later use. \LWR@loadafter{nameref} \LWR@loadafter{natbib} \LWR@notmemoirloadafter{nccfancyhdr} +\LWR@loadafter{nccfoots} \LWR@loadafter{nccmath} \LWR@notmemoirloadafter{needspace} % newclude must be loaded before lwarp @@ -12195,6 +12260,7 @@ This boolean may be tested by the user for later use. \LWR@loadafter{subsupscripts} \LWR@loadafter{supertabular} \LWR@loadafter{svg} +\LWR@loadafter{syntonly} \LWR@loadafter{t1inc} \LWR@loadafter{tabfigures} \LWR@loadafter{tabls} @@ -12552,6 +12618,16 @@ This boolean may be tested by the user for later use. % \end{macro} % % +% \begin{macro}{\LWR@disablepinyin} Disable \pkg{xpinyin} during +% file, side\acro{TOC}, and footnote generation. +% Set by \pkg{xpinyin}. +% \changes{v0.82}{2020/03/25}{Added.} +% \begin{macrocode} +\newcommand*{\LWR@disablepinyin}{} +% \end{macrocode} +% \end{macro} +% +% % \subsection{Inserting vertical space} % % \begin{macro}{\LWR@forceemptyline} Extra vertical space in the \HTML\ output. @@ -12925,7 +13001,7 @@ This boolean may be tested by the user for later use. % \DescribeOption{mathjax} % Option \optn{mathjax} selects \brand{MathJax} math display: % \gindex{math>mathjax=\optn{mathjax} option} -% \gindex{MathJax=\brand{MathJax}>mathjax=\optn{mathjax} option} +% \gindex{mathjax=\brand{MathJax}>mathjax=\optn{mathjax} option} % If the \optn{mathjax} option is given, boolean |mathjax| is true, may be used for \cs{ifbool} tests. % \begin{macrocode} \DeclareVoidOption{mathjax}{% @@ -14785,6 +14861,7 @@ This boolean may be tested by the user for later use. % 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 % define the new \HTML\ version, even if the original did not use \pkg{xparse}. +% \pkg{expl3} syntax may be used as well. % \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}. @@ -14828,6 +14905,7 @@ This boolean may be tested by the user for later use. % The plain \cs{name} or environment \env{name} is used for the printed % version, and is placed inside \env{warpall}. % \pkg{xparse} may be used for the \cs{LWR@HTML@<name>} version. +% \pkg{expl3} syntax may be used for the print and \HTML\ versions. % % \item [For a new macro or environment, using \pkg{xparse}:] % It is possible to use \pkg{xparse} for an entirely new macro or environment @@ -18261,8 +18339,8 @@ page_compositor "." % but do not need to be present when distributing % the resulting \HTML\ files. % -% \gindex{MathJax=\brand{MathJax}>custom script} -% \trouble{MathJax=\brand{MathJax}>custom script} +% \gindex{mathjax=\brand{MathJax}>custom script} +% \trouble{mathjax=\brand{MathJax}>custom script} % To generate a custom script, such as to use a local repository, % \margintag{custom script} % copy \filenm{lwarp_mathjax.txt} to a new file, @@ -18527,7 +18605,7 @@ src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.6/MathJax.js?config=TeX- -- Copyright 2016-2020 Brian Dunn -printversion = "v0.81" +printversion = "v0.82" requiredconfversion = "2" -- also at *lwarpmk.conf function printhelp () @@ -19811,7 +19889,7 @@ end -- not --version % \gindex{SVG>dynamic math} % \trouble{math>incorrect} % \trouble{math>dynamic} -% \trouble{MathJax=\brand{MathJax}>errors} +% \trouble{mathjax=\brand{MathJax}>errors} % \gindex{math>dynamic} % \gindex{dynamic math expressions} % @@ -20043,7 +20121,14 @@ end -- not --version % \begin{macrocode} \newcommand*{\LWR@htmlsectionfilename}[1]{% \LWR@traceinfo{LWR@htmlsectionfilename A !\detokenize{#1}!}% +\begingroup% +% \end{macrocode} +% +% Disable CJK \pkg{xpinyin} while generating file names. +% \begin{macrocode} +\LWR@disablepinyin% % \end{macrocode} +% % Section 0 or empty is given the home filename. % The filename must be detokenized for underscores. % \begin{macrocode} @@ -20086,6 +20171,7 @@ end -- not --version }% }% \LWR@traceinfo{LWR@htmlsectionfilename Z}% +\endgroup% } % \end{macrocode} % \end{macro} @@ -21967,11 +22053,19 @@ end -- not --version % \begin{macrocode} \color@begingroup% % \end{macrocode} -% Use \HTML\ superscripts in the footnote even inside a \env{lateximage}: +% +% Disable CJK \pkg{xpinyin} while generating footnotes. +% \begin{macrocode} + \LWR@disablepinyin% +% \end{macrocode} +% +% Use \HTML\ superscripts in the footnote even when the main text is +% inside a \env{lateximage}, because the footnote will be in \HTML: % \changes{v0.50}{2018/02/20}{Robustify macros.} % \begin{macrocode} \renewrobustcmd{\textsuperscript}[1]{\LWR@htmlspan{sup}{##1}}% % \end{macrocode} +% % Use paragraph tags if in a tabular data cell or a \env{lateximage}: % \changes{v0.66}{2019/02/02}{Improved \HTML\ formatting.} % \begin{macrocode} @@ -22830,15 +22924,54 @@ end -- not --version % % Default customizations: +% \margintag{defaults} % -% \changes{v0.51}{2018/03/18}{MathJax: Nullifies \cs{ensuremath}.} -% \changes{v0.57}{2018/05/24}{MathJax: Supports \cs{footnote}, \cs{footnotemark}.} +% In the \brand{MathJax} code, footnotes are only referenced. +% For equations, they are also generated +% in the \HTML\ when the \LaTeX\ math is generated inside the \HTML\ comment. +% For other math environments, the \cs{footnotemark} \Slash \cs{footnotetext} +% method must be used. See \cref{sec:limitsfootnotes} regarding \cs{footnotemark}. +% \watchout[\cs{footnotemark}] +% +% \changes{v0.51}{2018/03/18}{\brand{MathJax}: Nullifies \cs{ensuremath}.} +% \changes{v0.57}{2018/05/24}{\brand{MathJax}: Supports \cs{footnote}, \cs{footnotemark}.} % \changes{v0.79}{2020/01/24}{\brand{MathJax}: Additional macros.} +% +% For footnotes, \cs{footnotename} is used in most cases, however +% for \env{equation} the footnote is picked up from \LaTeX in \cs{LWR@doendequation}. +% +% First, \cs{footnotename} for \brand{MathJax} is copied from \LaTeX. +% \changes{v0.82}{2020/03/09}{\brand{MathJax}: Improved footnotes.} +% \begin{macrocode} +\providecommand{\footnotename}{footnote} + +% due to warpMathJax: +\end{warpHTML} + +\begin{warpMathJax} +\xdef\LWR@customizedMathJax{\LWR@customizedMathJax% + \LWRbackslash(% + \LWRbackslash{}newcommand% + \{\LWRbackslash{}footnotename\}% + \{\footnotename\}% + \LWRbackslash)\par% +} +\end{warpMathJax} +% \end{macrocode} + +% \cs{LWRfootnote} is set per \env{equation} if a footnote is detected in the +% equation's math expression, otherwise it defaults to \cs{footnotename}. +% \begin{macrocode} +\begin{warpMathJax} +\CustomizeMathJax{\def\LWRfootnote{1}} +\CustomizeMathJax{\newcommand{\footnote}[2][\LWRfootnote]{{}^{\mathrm{#1}}}} +\CustomizeMathJax{\newcommand{\footnotemark}[1][\LWRfootnote]{{}^{\mathrm{#1}}}} +\end{warpMathJax} +% \end{macrocode} + % \begin{macrocode} \begin{warpMathJax} \CustomizeMathJax{\newcommand\ensuremath[1]{#1}} -\CustomizeMathJax{\newcommand\footnote[2][]{\text{( Footnote #1 )}}} -\CustomizeMathJax{\newcommand\footnotemark[1][]{\text{( Footnote #1 )}}} \CustomizeMathJax{% absorb two optional arguments \newcommand{\LWRframebox}[2][]{\fbox{#2}} \newcommand{\framebox}[1][]{\LWRframebox} @@ -22851,6 +22984,8 @@ end -- not --version \CustomizeMathJax{\newcommand{\directlua}[1]{\text{(directlua)}}} \CustomizeMathJax{\newcommand{\luatexdirectlua}[1]{\text{(directlua)}}} \end{warpMathJax} + +\begin{warpHTML}% due to warpMathJax % \end{macrocode} @@ -31633,20 +31768,26 @@ end -- not --version % Only if the file exists: % \begin{macrocode} \IfFileExists{\jobname.#1}{% - \LWR@traceinfo{LWR@myshorttoc: loading}% + \LWR@traceinfo{LWR@myshorttoc: loading}% % \end{macrocode} % % Many of the commands in the file will have |@| characters in them, so |@| % \watchout % must be made a regular letter. % \begin{macrocode} - \begingroup% - \makeatletter% + \begingroup% + \makeatletter% % \end{macrocode} +% +% Disable CJK \pkg{xpinyin} while generating the side\TOC. +% \begin{macrocode} + \LWR@disablepinyin% +% \end{macrocode} +% % Read in the \TOC\ file: % \begin{macrocode} - \@input{\jobname.#1}% - \endgroup% + \@input{\jobname.#1}% + \endgroup% }% {}% \LWR@traceinfo{LWR@myshorttoc: done}% @@ -33296,7 +33437,11 @@ end -- not --version % \begin{macrocode} {% \LWR@traceinfo{LWR@subsingledollar: Mathjax}% - {\textbackslash(\LWR@HTMLsanitize{#4}\textbackslash)}% + {% + \textbackslash(% + \LWR@HTMLsanitize{#4}% + \textbackslash)% + }% }% mathjax % \end{macrocode} % For SVG, print the math inside a \env{lateximage}, @@ -33632,13 +33777,16 @@ end -- not --version % \end{macrocode} % If using chapters, place the chapter number in front of the equation. % Otherwise, use the simple equation number. +% \changes{v0.82}{2020/03/09}{Removed \element{par} tags.} % \begin{macrocode} \ifcsdef{thechapter}{ + \LWR@stoppars% \InlineClass{hidden}{ \textbackslash( \textbackslash{}seteqsection \{\thechapter\} \textbackslash) } + \LWR@startpars% } {}% not using chapters % \end{macrocode} @@ -33655,12 +33803,15 @@ end -- not --version % \end{macrocode} % Place the \brand{MathJax} command inside ``\cs{(}'' and ``\cs{)}'' characters, % to be printed to \HTML, not interpreted by \LaTeX. +% \changes{v0.82}{2020/03/09}{Removed \element{par} tags.} % \begin{macrocode} + \LWR@stoppars% \InlineClass{hidden}{ \textbackslash( \textbackslash{}seteqnumber \{\arabic{LWR@nextequation}\} \textbackslash) } + \LWR@startpars% }{}% not eq > 0 } % \end{macrocode} @@ -33786,7 +33937,7 @@ end -- not --version % Print commands to syncronize \brand{MathJax}'s equation number and format % to the current \LaTeX\ chapter/section and equation number: % \begin{macrocode} - \LWR@syncmathjax + \LWR@syncmathjax% % \end{macrocode} % Print the \LaTeX\ math inside an \HTML\ comment: % \begin{macrocode} @@ -33849,14 +34000,22 @@ end -- not --version } % \end{macrocode} % -% % After the environment, if \brand{MathJax}, print the math to the \HTML\ output -% for \brand{MathJax} processing: +% for \brand{MathJax} processing. +% If a footnote is used, sync the \ctr{footnote} counter before, +% then unsync after for non-equation environments, as defined next. +% \changes{v0.82}{2020/03/09}{\brand{MathJax}: Improved footnotes.} % \begin{macrocode} \newcommand*{\LWR@doendequation}[1]{% \ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% {% - \LWR@addmathjax{#1}{\BODY}% + \IfSubStr{\detokenize\expandafter{\BODY}}{\detokenize{note}}{% + \InlineClass{hidden}{\LWR@syncnotenumbers}% + \LWR@addmathjax{#1}{\BODY}% + \InlineClass{hidden}{\LWR@syncnotenames}% + }{% + \LWR@addmathjax{#1}{\BODY}% + }% }{}% % \end{macrocode} @@ -33869,6 +34028,51 @@ end -- not --version % \end{macro} +% The following are used to syncronize footnote marks and related to +% \brand{MathJax} if |*note*| is used inside the \brand{MathJax} expression. +% The counter is read from \LaTeX\ then defined into \brand{MathJax} for use during +% the following equation. After the equation, the \brand{MathJax} value is +% returned to the text from \cs{footnotename}. Other notes may be added by +% appending to \cs{LWR@syncnotenumbers} and \cs{LWR@syncnotenames}. +% +% \changes{v0.82}{2020/03/09}{\brand{MathJax}: Improved footnotes.} +% +% \begin{macro}{\LWR@synconenotenumber} \marg{\brand{MathJax} variable} \marg{mark} +% \begin{macrocode} +\newcommand*{\LWR@synconenotenumber}[2]{% + \textbackslash( + \textbackslash{}def\textbackslash{}#1\{#2\} + \textbackslash) +} +% \end{macrocode} +% \end{macro} + + +% \begin{macro}{\LWR@syncnotenumbers} Assignments to make. +% \begin{macrocode} +\newcommand*{\LWR@syncnotenumbers}{\LWR@synconenotenumber{LWRfootnote}{\thefootnote}} +% \end{macrocode} +% \end{macro} + + +% \begin{macro}{\LWR@synconenotename} \marg{\brand{MathJax} variable} \marg{text} +% \begin{macrocode} +\newcommand*{\LWR@synconenotename}[2]{% + \textbackslash( + \textbackslash{}def\textbackslash{}#1\{#2\} + \textbackslash) +} +% \end{macrocode} +% \end{macro} + + +% \begin{macro}{\LWR@syncnotenames} Assignments to make. +% \begin{macrocode} +\newcommand*{\LWR@syncnotenames}{\LWR@synconenotename{LWRfootnote}{\footnotename}} +% \end{macrocode} +% \end{macro} + + % Remove existing \env{equation} environment: % \begin{macrocode} \AtBeginDocument{ @@ -35155,6 +35359,12 @@ end -- not --version \LWR@PreloadedPackage{lltjext} % \end{macrocode} +% \pkg{luatexko} must be loaded before \pkg{lwarp}. +% \begin{macrocode} +\LWR@PreloadedPackage{luatexko} +% \end{macrocode} + + % \begin{macrocode} \end{warpHTML} % \end{macrocode} @@ -40098,9 +40308,10 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"% % % For \brand{MathJax}: % \changes{v0.79}{2020/01/27}{\pkg{amsmath}: Added \brand{MathJax} emulation.} +% \changes{v0.82}{2020/03/14}{\pkg{amsmath}: Fixed: \cs{intertext} for \brand{MathJax}.} % \begin{macrocode} \begin{warpMathJax} -\CustomizeMathJax{\newcommand{\intertext}[1]{\\ \text{#1}\notag \\}} +\CustomizeMathJax{\newcommand{\intertext}[1]{\text{#1}\notag \\}} \end{warpMathJax} % \end{macrocode} % @@ -40707,7 +40918,7 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"% % % For \brand{MathJax}, limited emulation is provided for math mode. % \trouble{arydshln=\pkg{arydshln}} -% \trouble{Mathjax=\brand{MathJax}>arydshln=\pkg{arydshln}} +% \trouble{mathjax=\brand{MathJax}>arydshln=\pkg{arydshln}} % % \changes{v0.56}{2018/05/02}{\pkg{arydshln}: Added.} % @@ -42459,7 +42670,7 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"% % % For \brand{MathJax}, emulation is provided in math mode, but \watchout[\cs{cmidrule}] % \trouble{booktabs=\pkg{booktabs}} -% \trouble{Mathjax=\brand{MathJax}>booktabs=\pkg{booktabs}} +% \trouble{mathjax=\brand{MathJax}>booktabs=\pkg{booktabs}} % \cs{cmidrule} trim must not be used. % % \changes{v0.34}{2017/08/08}{\pkg{booktabs}: Works inside \env{lateximage}.} @@ -43775,21 +43986,33 @@ s% % may be changed at any time, and are unlikely to be reused inline anyhow. % % \changes{v0.51}{2018/03/04}{\pkg{chemfig}: Added.} -% \changes{v0.71}{2019/04/25}{\pkg{chemfig}: Updated for v1.4.} +% \changes{v0.71}{2019/04/25}{\pkg{chemfig}: Updated to v1.4.} +% \changes{v0.82}{2020/03/12}{\pkg{chemfig}: Updated to v1.5.} % % \codehtml % % \begin{macrocode} -\LWR@ProvidesPackagePass{chemfig} +\LWR@ProvidesPackagePass{chemfig}[2020/03/05] % \end{macrocode} % \begin{macrocode} \catcode`\_=11 +\@ifpackagelater{chemfig}{2020/03/05} +{ + \xpretocmd\charge{\begin{lateximage}[-chemfig-~\PackageDiagramAltText]} + {}{\LWR@patcherror{chemfig}{charge}} + \xpretocmd\Charge{\begin{lateximage}[-chemfig-~\PackageDiagramAltText]} + {}{\LWR@patcherror{chemfig}{Charge}} + \xapptocmd\charge_c{\end{lateximage}} + {}{\LWR@patcherror{chemfig}{charge_c}} +}{} + \@ifpackagelater{chemfig}{2019/04/18}% {% 2019/04/18 or newer + \LetLtxMacro\LWR@chemfig@origchemfig\chemfig \renewcommand*{\chemfig}[2][]{% @@ -45499,6 +45722,8 @@ name = \chemmacros_translate:n {scheme-name} % % % +% +% % \iffalse %<*CJK> % \fi @@ -46735,6 +46960,7 @@ name = \chemmacros_translate:n {scheme-name} % \credits{Sergio Callegari} % % \changes{v0.20}{2017/01/11}{\pkg{draftwatermark}: Added.} +% \changes{v0.82}{2020/03/21}{\pkg{draftwatermark}: Updated to v2.0.} % % \DescribePackage{draftwatermark} % \pkg{draftwatermark} is ignored. @@ -46742,10 +46968,12 @@ name = \chemmacros_translate:n {scheme-name} % \codehtml % \begin{macrocode} -\LWR@ProvidesPackageDrop{draftwatermark}[2015/02/19] +\LWR@ProvidesPackageDrop{draftwatermark}[2020/03/14] % \end{macrocode} % \begin{macrocode} +\newcommand{\DraftwatermarkOptions}[1]{} +\newcommand{\DraftwatermarkStdMark}{} \newcommand{\SetWatermarkAngle}[1]{} \newcommand{\SetWatermarkColor}[1]{} \newcommand{\SetWatermarkLightness}[1]{} @@ -47430,11 +47658,31 @@ name = \chemmacros_translate:n {scheme-name} \makeenmark % } } +% \end{macrocode} +% +% \changes{v0.82}{2020/03/14}{\pkg{endnotes}: Fix: Mark in print mode.} +% \begin{macrocode} +\def\LWR@HTML@@makeenmark{\hbox{\LWR@htmlspan{sup}{\normalfont\theenmark}}} +\LWR@formatted{@makeenmark} -\def\@makeenmark{\hbox{\LWR@htmlspan{sup}{\normalfont\theenmark}}} \def\makeenmark{\@makeenmark} % \end{macrocode} % +% +% For \brand{MathJax}: +% \changes{v0.82}{2020/03/14}{\pkg{endnotes}: Added \brand{MathJax} emulation.} +% \begin{macrocode} +\begin{warpMathJax} +\def\endnotename{endnote} +\appto\LWR@syncnotenumbers{\LWR@synconenotenumber{LWRendnote}{\theendnote}} +\appto\LWR@syncnotenames{\LWR@synconenotename{LWRendnote}{\endnotename}} +\CustomizeMathJax{\def\LWRendnote{1}} +\CustomizeMathJax{\newcommand{\endnote}[2][\LWRendnote]{{}^{\mathrm{#1}}}} +\CustomizeMathJax{\newcommand{\endnotemark}[1][\LWRendnote]{{}^{\mathrm{#1}}}} +\end{warpMathJax} +% \end{macrocode} +% +% % \iffalse %</endnotes> % \fi @@ -48313,6 +48561,169 @@ name = \chemmacros_translate:n {scheme-name} % % % \iffalse +%<*etoc> +% \fi +% +% \part{lwarp-etoc.sty} +% +% \section{etoc} +% +% \DescribePackage{etoc} +% \pkg{etoc} is ignored. +% All commands are nullified. +% +% The \pkg{etoc} package uses a non-standard syntax which looks ahead +% \watchout[\cs{tableofcontents} with \cs{ref}] +% after a \cs{tableofcontents} for a following \cs{ref}. +% These \cs{ref}s appear in the \HTML\ result unless they are removed. +% Where a \cs{tableofcontents} is followed by \cs{ref}, and perhaps also +% \cs{label} as well, enclose all of them inside \cs{warpprintonly}: +% \begin{sourcedisplay} +% \textblue{\cs{warpprintonly}\{}\cs{tableofcontents} +% \textred{\cs{ref}\{toc:abc\}} \cs{label}\{toc:def\}\textblue{\}} +% \end{sourcedisplay} +% or place all code related to a local \cs{tableofcontents} inside +% a \env{warpprint} environment. +% +% Be sure to keep the initial \cs{tableofcontents} on the home page, +% \watchout[home page] +% perhaps in its own \cs{warpHTMLonly} macro or \env{warpHTML} environment. +% +% \changes{v0.82}{2020/03/22}{\pkg{etoc}: Added.} +% +% \codehtml +% +% \begin{macrocode} +\LWR@ProvidesPackageDrop{etoc}[2019/11/17] +% \end{macrocode} +% +% \begin{macrocode} +\def\etocsetlevel#1#2{} +\def\etocskipfirstprefix{} +\let\etocthename \@empty +\let\etocthenumber \@empty +\let\etocthepage \@empty +\let\etocthelinkedname \@empty +\let\etocthelinkednumber \@empty +\let\etocthelinkedpage \@empty +\let\etocthelink \@firstofone % prior to 1.08j its was \let to \@empty +\DeclareRobustCommand*{\etocname} {} +\DeclareRobustCommand*{\etocnumber}{} +\DeclareRobustCommand*{\etocpage} {} +\DeclareRobustCommand*{\etoclink} {\@firstofone} +\DeclareRobustCommand*{\etocifnumbered}{\@firstoftwo} +\DeclareRobustCommand*{\etociffirst}{\@firstoftwo} +\DeclareRobustCommand*\etocifwasempty{\@firstoftwo} +\let\etocaftertitlehook \@empty +\let\etocaftercontentshook \@empty +\def\etoctableofcontents{} +\newcommand*\localtableofcontents{} +\newcommand*\localtableofcontentswithrelativedepth[1]{} +\newcommand\etocsettocstyle[2]{} +\long\def\etocsetstyle#1#2#3#4#5{} +\def\etocfontminustwo {\normalfont \LARGE \bfseries} +\def\etocfontminusone {\normalfont \large \bfseries} +\def\etocfontzero {\normalfont \large \bfseries} +\def\etocfontone {\normalfont \normalsize \bfseries} +\def\etocfonttwo {\normalfont \normalsize} +\def\etocfontthree {\normalfont \footnotesize} +\def\etocsepminustwo {4ex \@plus .5ex \@minus .5ex} +\def\etocsepminusone {4ex \@plus .5ex \@minus .5ex} +\def\etocsepzero {2.5ex \@plus .4ex \@minus .4ex} +\def\etocsepone {1.5ex \@plus .3ex \@minus .3ex} +\def\etocseptwo {.5ex \@plus .1ex \@minus .1ex} +\def\etocsepthree {.25ex \@plus .05ex \@minus .05ex} +\def\etocbaselinespreadminustwo {1} +\def\etocbaselinespreadminusone {1} +\def\etocbaselinespreadzero {1} +\def\etocbaselinespreadone {1} +\def\etocbaselinespreadtwo {1} +\def\etocbaselinespreadthree {.9} +\def\etocminustwoleftmargin {1.5em plus 0.5fil} +\def\etocminustworightmargin {1.5em plus -0.5fil} +\def\etocminusoneleftmargin {1em} +\def\etocminusonerightmargin {1em} +\def\etoctoclineleaders + {\hbox{\normalfont\normalsize\hb@xt@2ex {\hss.\hss}}} +\def\etocabbrevpagename {p.~} +\def\etocpartname {Part}% modified 1.08b +\def\etocbookname {Book} +\def\etocdefaultlines{} +\def\etocabovetocskip{3.5ex \@plus 1ex \@minus .2ex} +\def\etocbelowtocskip{3.5ex \@plus 1ex \@minus .2ex} +\def\etoccolumnsep{2em} +\def\etocmulticolsep{0ex} +\def\etocmulticolpretolerance{-1} +\def\etocmulticoltolerance{200} +\def\etocdefaultnbcol{2} +\def\etocinnertopsep{2ex} +\newcommand\etocmulticolstyle[2][]{} +\def\etocinnerbottomsep{3.5ex} +\def\etocinnerleftsep{2em} +\def\etocinnerrightsep{2em} +\def\etoctoprule{\hrule} +\def\etocleftrule{\vrule} +\def\etocrightrule{\vrule} +\def\etocbottomrule{\hrule} +\def\etoctoprulecolorcmd{\relax} +\def\etocbottomrulecolorcmd{\relax} +\def\etocleftrulecolorcmd{\relax} +\def\etocrightrulecolorcmd{\relax} +\newcommand*\etocruledstyle[2][]{} +\def\etocframedmphook{\relax} +\long\def\etocbkgcolorcmd{\relax} +\newcommand*\etocframedstyle[2][]{} +\def\etocmulticol{} +\def\etocruled{} +\def\etocframed{} +\def\etoclocalmulticol{} +\def\etoclocalruled{} +\def\etoclocalframed{} +\def\etocarticlestyle{} +\def\etocarticlestylenomarks{} +\def\etocbookstyle{} +\def\etocbookstylenomarks{} +\let\etocreportstyle\etocbookstyle +\let\etocreportstylenomarks\etocbookstylenomarks +\def\etocmemoirtoctotocfmt #1#2{} +\def\etocmemoirstyle{} +\def\etocscrartclstyle{} +\let\etocscrbookstyle\etocscrartclstyle +\let\etocscrreprtstyle\etocscrartclstyle +\def\etocstandarddisplaystyle{\etocarticlestyle} +\newcommand*\etocmarkboth[1]{} +\newcommand*\etocmarkbothnouc[1]{} +\newcommand\etoctocstyle[3][section]{} +\newcommand\etoctocstylewithmarks[4][section]{} +\newcommand\etoctocstylewithmarksnouc[4][section]{} +\def\etocignoretoctocdepth{} +\def\etocsettocdepth[1]{} +\def\etocdepthtag #1#{\Etoc@depthtag } +\def\Etoc@depthtag #1{} +\def\etocignoredepthtags {} +\def\etocobeydepthtags {} +\def\etocsettagdepth #1#2{} +\def\invisibletableofcontents {} +\def\invisiblelocaltableofcontents{} +\def\etocsetnexttocdepth #1{} +\def\etocsetlocaltop #1#{\Etoc@set@localtop} +\def\Etoc@set@localtop #1{} +\def\etocstandardlines {} +\def\etoctoclines {} +\let\etocaftertochook \@empty +\let\etocbeforetitlehook \@empty +\appto\tableofcontents{\def\tableofcontents{}} +% \end{macrocode} +% +% \iffalse +%</etoc> +% \fi +% +% +% +% +% +% \iffalse %<*eurosym> % \fi % @@ -56334,6 +56745,144 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak} % % % +% +% +% \iffalse +%<*luatexko> +% \fi +% +% \part{lwarp-luatexko.sty} +% +% \section{luatexko} +% +% \credits{Dohyun Kim, Soojin Nam} +% +% \DescribePackage{luatexko} +% \pkg{luatexko} is patched for use by \pkg{lwarp}. +% +% Modern \HTML\ is used for \cs{dotemph}, \cs{ruby}, and +% offset and thickness control for \cs{uline}, etc. +% +% \changes{v0.82}{2020/03/22}{\pkg{luatexko}: Added.} +% +% \codehtml +% +% \begin{macrocode} +\LWR@ProvidesPackagePass{luatexko}[2020/03/20] +% \end{macrocode} +% +% \begin{macrocode} +\newcommand{\LWR@HTML@dotemph}[1]{% +% \uline{#1}% + \InlineClass[text-emphasis-style: dot]{dotemph}{#1}% +} +\LWR@formatted{dotemph} + +\newcommand{\LWR@HTML@ruby}[2]{% + \LWR@htmltagc{ruby}% + \LWR@htmltagc{rb}#1\LWR@htmltagc{/rb}% + \LWR@htmltagc{rp}(\LWR@htmltagc{/rp}% + \LWR@htmltagc{rt}#2\LWR@htmltagc{/rt}% + \LWR@htmltagc{rp})\LWR@htmltagc{/rp}% + \LWR@htmltagc{/ruby}% +} +\LWR@formatted{ruby} +% \end{macrocode} +% +% The following is modified from \pkg{lwarp-ulem}: +% \begin{macrocode} +\NewDocumentCommand{\LWR@HTML@uline}{+m}{% + \InlineClass% + (text-decoration:underline; text-decoration-skip: auto)% + [% + text-underline-offset: \ulinedown ; + text-decoration-thickness: \ulinewidth% + ]% + {uline}{\LWR@isolate{#1}}% +} +\LWR@formatted{uline} + +\NewDocumentCommand{\LWR@HTML@uuline}{+m}{% + \InlineClass% + (% + text-decoration:underline; text-decoration-skip: auto;% + text-decoration-style:double% + )% + [% + text-underline-offset: \ulinedown ; + text-decoration-thickness: \ulinewidth% + ]% + {uuline}{\LWR@isolate{#1}}% +} +\LWR@formatted{uuline} + +\NewDocumentCommand{\LWR@HTML@uwave}{+m}{% + \InlineClass% + (% + text-decoration:underline; text-decoration-skip: auto;% + text-decoration-style:wavy% + )% + [% + text-underline-offset: \ulinedown ; + text-decoration-thickness: \ulinewidth% + ]% + {uwave}{\LWR@isolate{#1}}% +} +\LWR@formatted{uwave} + +\NewDocumentCommand{\LWR@HTML@sout}{+m}{% + \InlineClass% + (text-decoration:line-through)% + [text-decoration-thickness: \ulinewidth]% + {sout}{\LWR@isolate{#1}}% +} +\LWR@formatted{sout} + +\NewDocumentCommand{\LWR@HTML@xout}{+m}{% + \InlineClass% + (text-decoration:line-through)% + [text-decoration-thickness: \ulinewidth]% + {xout}{\LWR@isolate{#1}}% +} +\LWR@formatted{xout} + +\NewDocumentCommand{\LWR@HTML@dashuline}{+m}{% + \InlineClass% + (% + text-decoration:underline;% + text-decoration-skip: auto;% + text-decoration-style:dashed% + )% + [% + text-underline-offset: \ulinedown ; + text-decoration-thickness: \ulinewidth% + ]% + {dashuline}{\LWR@isolate{#1}}% +} +\LWR@formatted{dashuline} + +\NewDocumentCommand{\LWR@HTML@dotuline}{+m}{% + \InlineClass% + (% + text-decoration:underline;% + text-decoration-skip: auto;% + text-decoration-style: dotted% + )% + [% + text-underline-offset: \ulinedown ; + text-decoration-thickness: \ulinewidth% + ]% + {dotuline}{\LWR@isolate{#1}}% +} +\LWR@formatted{dotuline} +% \end{macrocode} +% +% \iffalse +%</luatexko> +% \fi +% +% +% % \iffalse %<*luatodonotes> % \fi @@ -56970,6 +57519,22 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak} \newcommand*{\raggedrightmarginnote}{} % \end{macrocode} % +% \changes{v0.82}{2020/03/14}{\pkg{marginnote}: Fix: Neutralize in print mode.} +% \begin{macrocode} +\appto\LWR@restoreorigformatting{% + \RenewDocumentCommand{\marginnote}{+o +m o}{} +} +% \end{macrocode} +% +% For \brand{MathJax}: +% \changes{v0.82}{2020/03/14}{\pkg{marginnote}: Added \brand{MathJax} emulation.} +% \begin{macrocode} +\begin{warpMathJax} +\CustomizeMathJax{\newcommand{\LWRmarginnote}[1][]{}} +\CustomizeMathJax{\newcommand{\marginnote}[2][]{\qquad{\small\textrm{#2}}\LWRmarginnote}} +\end{warpMathJax} +% \end{macrocode} +% % \iffalse %</marginnote> % \fi @@ -58282,8 +58847,8 @@ background: % and assume that any \pkg{mhchem} options are global. % % For \brand{MathJax}, the \pkg{mhchem} extension is used if -% \trouble{MathJax=\brand{MathJax}>mhchem=\pkg{mhchem}} -% \trouble{mhchem=\pkg{mhchem}>MathJax=\brand{MathJax}} +% \trouble{mathjax=\brand{MathJax}>mhchem=\pkg{mhchem}} +% \trouble{mhchem=\pkg{mhchem}>mathjax=\brand{MathJax}} % \margintag{\brand{MathJax} with \pkg{mhchem} extension} % the \pkg{mhchem} expression is used inside a math expression: % \begin{sourceverb} @@ -60084,6 +60649,44 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak % % % +% \iffalse +%<*nccfoots> +% \fi +% +% \part{lwarp-nccfoots.sty} +% +% \section{nccfoots} +% +% \credits{Alexander I. Rozhenko} +% +% \DescribePackage{nccfoots} +% \pkg{nccfoots} is used as-is, and emulated for \brand{MathJax}. +% +% \changes{v0.82}{2020/03/14}{\pkg{nccfoots}: Added \brand{MathJax} emulation.} +% +% \codehtml +% +% \begin{macrocode} +\LWR@ProvidesPackagePass{nccfoots}[2005/02/03] +% \end{macrocode} +% +% For \brand{MathJax}. +% There is no way to test for an empty argument, \watchout +% so the mark is not automatically duplicated. +% \begin{macrocode} +\begin{warpMathJax} +\CustomizeMathJax{\newcommand{\Footnotemark}[1]{{}^{\mathrm{#1}}}} +\CustomizeMathJax{\newcommand{\Footnote}[2]{\Footnotemark{#1}}} +\end{warpMathJax} +% \end{macrocode} +% +% \iffalse +%</nccfoots> +% \fi +% +% +% +% % % \iffalse %<*nccmath> @@ -62048,6 +62651,24 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak \LWR@ProvidesPackagePass{pagenote}[2009/09/03] % \end{macrocode} % +% +% For \brand{MathJax}: +% \changes{v0.82}{2020/03/14}{\pkg{pagenote}: Added \brand{MathJax} emulation.} +% \begin{macrocode} +\begin{warpMathJax} +\appto\LWR@syncnotenumbers{\LWR@synconenotenumber{LWRpagenote}{\thepagenote}} +\CustomizeMathJax{\def\LWRpagenote{1}} +\CustomizeMathJax{\newcommand{\pagenote}[2][\LWRpagenote]{{}^{\mathrm{#1}}}} +\end{warpMathJax} +% \end{macrocode} +% +% There is no \cs{pagenotemark}, so the following are not required: +% \begin{sourceverb} +% \providecommand{\pagenotename}{pagenote} +% \appto\LWR@syncnotenames{\LWR@synconenotename{LWRpagenote}{\pagenotename}} +% \end{sourceverb} +% +% % \iffalse %</pagenote> % \fi @@ -62444,6 +63065,26 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak } % \end{macrocode} % +% +% For \brand{MathJax}: +% \changes{v0.82}{2020/03/15}{\pkg{parnotes}: Added \brand{MathJax} emulation.} +% \begin{macrocode} +\begin{warpMathJax} +\providecommand{\parnotename}{parnote} +\appto\LWR@syncnotenumbers{% + \addtocounter{parnotemark}{-1}% specific to parnotes + \LWR@synconenotenumber{LWRparnote}{\theparnotemark}% + \addtocounter{parnotemark}{1}% specific to parnotes +} +\appto\LWR@syncnotenames{\LWR@synconenotename{LWRparnote}{\parnotename}} +\CustomizeMathJax{\def\LWRparnote{1}} +\CustomizeMathJax{\newcommand{\parnote}[2][\LWRparnote]{{}^{\mathrm{#1}}}} +\CustomizeMathJax{\newcommand{\parnotemark}[1][\LWRparnote]{{}^{\mathrm{#1}}}} +\end{warpMathJax} +% \end{macrocode} +% +% +% % \iffalse %</parnotes> % \fi @@ -66551,6 +67192,30 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf', {\end@dblfloat} % \end{macrocode} % +% +% For \brand{MathJax}: +% +% Note that \pkg{sidenotes} does not support \cs{sidenote} inside math in print mode. +% \watchout +% Use \cs{sidenotemark} and \cs{sidenotetext} instead. +% +% \changes{v0.82}{2020/03/14}{\pkg{sidenotes}: Added \brand{MathJax} emulation.} +% \begin{macrocode} +\begin{warpMathJax} +\providecommand{\sidenotename}{sidenote} +\appto\LWR@syncnotenumbers{\LWR@synconenotenumber{LWRsidenote}{\thesidenote}} +\appto\LWR@syncnotenames{\LWR@synconenotename{LWRsidenote}{\sidenotename}} +\CustomizeMathJax{\def\LWRsidenote{1}} +\CustomizeMathJax{\newcommand{\sidenotemark}[1][\LWRsidenote]{{}^{\mathrm{#1}}}} +\end{warpMathJax} +% \end{macrocode} +% +% The following is not defined since is not allowed inside math in print mode, +% and also would have to be modified to parse the optional offset argument: +% \begin{sourceverb} +% \CustomizeMathJax{\newcommand{\sidenote}[2][\LWRsidenote]{{}^{\mathrm{#1}}}} +% \end{sourceverb} +% % \iffalse %</sidenotes> % \fi @@ -67678,6 +68343,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf', % % \changes{v0.27}{2017/04/02}{\pkg{soul}: Added.} % \changes{v0.42}{2017/10/20}{\pkg{soul}: If \progcode{FormatWP}, add explicit styles.} +% \changes{v0.82}{2020/03/06}{\pkg{soul}: Fixed: \cs{<}.} % % \codehtml % @@ -67767,6 +68433,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf', \newcommand*{\resetul}{} \newcommand*{\setuldepth}[1]{} \newcommand*{\setuloverlap}[1]{} +\newcommand*{\<}{} % \end{macrocode} % % Set colors: @@ -69445,6 +70112,11 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf', \@onlypreamble\syntaxonly % \end{macrocode} + +% \changes{v0.82}{2020/03/17}{\pkg{syntonly}: Added \cs{nopages@}.} +% \begin{macrocode} +\def\nopages@{} +% \end{macrocode} % % \iffalse %</syntonly> @@ -73144,6 +73816,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf', % \changes{v0.27}{2017/04/02}{\pkg{ulem}: Added.} % \changes{v0.62}{2018/11/16}{\pkg{ulem}: Improved compatibility with \pkg{CJKulem}.} % \changes{v0.62}{2018/11/17}{\pkg{ulem}: Now works in a \env{lateximage}.} +% \changes{v0.82}{2020/03/21}{\pkg{ulem}: Fixed: \cs{dashuline}.} % % \codehtml % @@ -73196,6 +73869,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf', (text-decoration:line-through)% {xout}{\LWR@isolate{#1}}% } +\LWR@formatted{xout} \NewDocumentCommand{\LWR@HTML@dashuline}{+m}{% \InlineClass% @@ -73206,7 +73880,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf', )% {dashuline}{\LWR@isolate{#1}}% } -\LWR@formatted{xout} +\LWR@formatted{dashuline} \NewDocumentCommand{\LWR@HTML@dotuline}{+m}{% \InlineClass% @@ -75761,25 +76435,83 @@ height:\LWR@printlength{\LWR@tempheight}% % \credits{Soben Lee} % % \DescribePackage{xpinyin} -% \pkg{xpinyin} is partly supported. -% \cs{xpinyin} and \env{pinyinscope} are nullified, but \cs{pinyin} works. +% \pkg{xpinyin} is supported. +% +% Pinyin is disabled for file names, the side\TOC, and regular footnotes, +% but is left enabled for minipage footnotes, as per the print mode. % % \changes{v0.63}{2018/12/03}{\pkg{xpinyin}: Added.} +% \changes{v0.82}{2020/03/25}{\pkg{xpinyin}: Added full pinyin support.} % % \codehtml % % \begin{macrocode} -\LWR@ProvidesPackagePass{xpinyin}[2018/01/28] +\LWR@ProvidesPackagePass{xpinyin}[2019-04-07] % \end{macrocode} % +% The original's boxes are not used, instead the contents are used with +% \element{ruby}, \element{rb}, and \element{rt} tags per modern \HTML. +% Color is detected. \optn{ratio} is ignored for \prog{pdftotext} to work correctly. +% Extra spaces are placed inside the tags to allow line breaks in the \HTML\ +% text. % \begin{macrocode} -\RenewDocumentEnvironment{pinyinscope}{O{}}{}{} +\ExplSyntaxOn +\cs_new_protected_nopar:Npn \LWR@HTML@__xpinyin_make_pinyin_box:nnn #1#2#3 +{ + \color_group_begin: \color_ensure_current: + \l__xpinyin_pinyin_box_hook_tl + \renewcommand*{\l__xpinyin_ratio_tl}{1}% for pdftotext + \__xpinyin_select_font: + \clist_if_exist:cTF { c__xpinyin_multiple_ #1 _clist } + { \l__xpinyin_multiple_tl \l__xpinyin_format_tl } + { \l__xpinyin_format_tl } + \ifdefempty{\l__xpinyin_format_tl} + {#3} + {\LWR@textcurrentcolor{#3}} + \color_group_end: +} +\LWR@formatted{__xpinyin_make_pinyin_box:nnn} + +\cs_new_protected_nopar:Npn \LWR@HTML@__xpinyin_CJKsymbol:nn #1#2 + { + \__xpinyin_leavevmode: + \LWR@htmltagc{ruby} + \LWR@htmltagc{rb} + \__xpinyin_save_CJKsymbol:n {#2}\null% \null removes extra space + \LWR@htmltagc{/rb\space} + \LWR@htmltagc{rp}(\LWR@htmltagc{/rp\space} + \LWR@htmltagc{rt} + \__xpinyin_make_pinyin_box:nnn {#1} {#2} { \use:c { c__xpinyin_ #1 _tl } } + \LWR@htmltagc{/rt\space} + \LWR@htmltagc{rp})\LWR@htmltagc{/rp\space} + \LWR@htmltagc{/ruby\space}\null + } +\LWR@formatted{__xpinyin_CJKsymbol:nn} -\RenewDocumentCommand{\xpinyin}{s O{} m}{% - \IfBooleanTF{#1}{#3}{\@firstoftwo#3}% -} +\cs_new_protected_nopar:Npn \LWR@HTML@__xpinyin_single_CJKsymbol:nn #1#2 + { + \__xpinyin_leavevmode: + \LWR@htmltagc{ruby} + \LWR@htmltagc{rb} + \__xpinyin_save_CJKsymbol:n {#1}\null% \null removes extra space + \LWR@htmltagc{/rb\space} + \LWR@htmltagc{rp}(\LWR@htmltagc{/rp\space} + \LWR@htmltagc{rt} + \__xpinyin_make_pinyin_box:xnn + { \__xpinyin_to_unicode:n {#1} } {#1} { \__xpinyin_pinyin:n {#2} } + \LWR@htmltagc{/rt\space} + \LWR@htmltagc{rp})\LWR@htmltagc{/rp\space} + \LWR@htmltagc{/ruby\space}\null + } +\LWR@formatted{__xpinyin_single_CJKsymbol:nn} -\RenewDocumentCommand{\enablepinyin}{}{} +\ExplSyntaxOff +% \end{macrocode} +% +% The \pkg{lwarp} core uses the following to disable CJK \pkg{xpinyin} for +% filenames, side\TOC, and footnotes. +% \begin{macrocode} +\renewcommand*{\LWR@disablepinyin}{\disablepinyin} % \end{macrocode} % % \iffalse @@ -76792,6 +77524,7 @@ height:\LWR@printlength{\LWR@tempheight}% } % \end{macrocode} % +% \changes{v0.82}{2020/03/24}{\pkg{lwarp-patch-memoir}: Supports \pkg{tocvsec2}.} % \begin{macrocode} \renewcommand*{\raggedbottomsection}{} \renewcommand*{\normalbottomsection}{} @@ -76800,8 +77533,6 @@ height:\LWR@printlength{\LWR@tempheight}% \csletcs{appendixpage*}{appendixpage} \renewcommand*{\namedsubappendices}{} \renewcommand*{\unnamedsubappendices}{} -\renewcommand*{\setsecnumdepth}[1]{}% todo tocvsec2 -\renewcommand*{\maxsecnumdepth}[1]{}% todo tocvsec2 \renewcommand*{\beforebookskip}{} \renewcommand*{\afterbookskip}{} \renewcommand*{\beforepartskip}{} @@ -77033,6 +77764,8 @@ height:\LWR@printlength{\LWR@tempheight}% % \end{macrocode} % % \subsection{Contents lists} +% +% \changes{v0.82}{2020/03/24}{\pkg{lwarp-patch-memoir}: Supports \pkg{tocvsec2}.} % \begin{macrocode} \csletcs{tableofcontents*}{tableofcontents} \csletcs{listoffigures*}{listoffigures} @@ -77043,8 +77776,6 @@ height:\LWR@printlength{\LWR@tempheight}% \renewcommand*{\ensureonecol}{} \renewcommand*{\restorefromonecol}{} \renewcommand*{\doccoltocetc}{} -\renewcommand*{\maxtocdepth}[1]{}% tocvsec2 -\renewcommand*{\settocdepth}[1]{}% tocvsec2 \renewcommand{\tocheadstart}{} \renewcommand{\printtoctitle}[1]{} |