diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/lwarp/lwarp.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/lwarp/lwarp.dtx | 2864 |
1 files changed, 2085 insertions, 779 deletions
diff --git a/Master/texmf-dist/source/latex/lwarp/lwarp.dtx b/Master/texmf-dist/source/latex/lwarp/lwarp.dtx index c63327e36f4..24cbe06ee11 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> [2018/07/07 v0.58 Allows LaTeX to directly produce HTML5 output.] +%<package> [2018/09/07 v0.59 Allows LaTeX to directly produce HTML5 output.] % %<*driver> \documentclass{ltxdoc} @@ -297,8 +297,11 @@ Keywords={LaTeX, HTML, conversion}% \newrobustcmd{\ODT}{\acro{ODT}} \newrobustcmd{\SVG}{\acro{SVG}} \newrobustcmd{\PNG}{\acro{PNG}} +\newrobustcmd{\GIF}{\acro{GIF}} \newrobustcmd{\JPG}{\acro{JPG}} +\newrobustcmd{\EPS}{\acro{EPS}} \newrobustcmd{\PDF}{\acro{PDF}} +\newrobustcmd{\DVI}{\acro{DVI}} \newrobustcmd{\tikz}{Ti\textit{k}z} \newrobustcmd{\MathML}{Math\acro{ML}} \newrobustcmd{\CTAN}{\acro{CTAN}} @@ -1032,7 +1035,7 @@ in the \SVG\ image may be adjusted \index{font>size --- math, SVG}% \index{math>font size --- SVG}% \index{lateximages>font size}% -by setting \cs{LateximageFontSizeName} to a font size name --- \emph{without the backslash}, +by setting \cs{LateximageFontSizeName} to a font size name \Dash \emph{without the backslash}, which defaults to: \begin{sourcedisplay} \cs{renewcommand}\{\cs{LateximageFontSizeName}\}\{\textred{normalsize}\} @@ -1062,8 +1065,8 @@ math. An example is an elaborate \tikz\ picture, which will not render in \brand{MathJax} and will not make sense as an \HTML\ \attribute{alt} tag. In this mode, \brand{MathJax} is turned off, -math display environments become \SVG\ images, even for -\brand{MathJax}, and the \HTML\ \attribute{alt} tags become simple messages. +math display environments become \SVG\ images, even if \brand{MathJax} is selected, +and the \HTML\ \attribute{alt} tags become simple messages. The contents are internally processed as an environment instead of a macro argument, so complicated objects such as \tikz\ pictures are more likely to compile successfully. } @@ -1297,56 +1300,79 @@ It is recommended to use \pkg{cleveref} instead of \pkg{ntheorem}'s \optn{thref} option. } - \newcommand{\limitsgraphics}{% -For \cs{includegraphics} with \texttt{.pdf} files, -\index{graphics>PDF files} +For \cs{includegraphics} with \filenm{.pdf} or \filenm{.eps} files, +\index{graphics>formats} +\index{includegraphics=\cs{includegraphics}>using} \index{PDF images>using} -\index{images>PDF>using} -\watchout[\texttt{.pdf} image files] -the user should provide a \texttt{.pdf} image file, and also -a \texttt{.svg}, \texttt{.png}, or \texttt{.jpg} version of the same image. -\textred{These should be referred to without a file extension:} -\watchout[no file extension] +\index{EPS images>using} +\index{images>PDF or EPS>using} +\margintag{\cs{includegraphics} file formats} +the user must provide a \filenm{.pdf} or \filenm{.eps} image file for use +in print mode, and also a \filenm{.svg}, \filenm{.png}, or \filenm{.jpg} version +of the same image for use in \HTML. \begin{sourcedisplay} -\cs{includegraphics}\{filename\} \% print:.pdf, HTML:.svg or other +\cs{includegraphics}\{filename\} \% print:.pdf/.eps HTML:.svg, etc. \end{sourcedisplay} -For print output, \pkg{lwarp} will automatically choose the \texttt{.pdf} if available, -or some other format otherwise. +For print output, \pkg{lwarp} will automatically choose the \filenm{.pdf} or \filenm{.eps} +format if available, or some other format otherwise. For \HTML, one of the other formats is used instead. +If a \filenm{.pdf} or \filenm{.eps} image is referred to with its file extension, +the extension will be changed to \filenm{.svg} for \HTML: +\begin{sourcedisplay} +\cs{includegraphics}\{filename.pdf\} \% uses .svg in \HTML \\ +\cs{includegraphics}\{filename.eps\} \% uses .svg in \HTML \\ +\end{sourcedisplay} + \DescribeProgram{pdftocairo} -To convert a \PDF\ image to \SVG, use the utility \texttt{pdftocairo}: +\margintag{PDF to SVG} +To convert a \PDF\ image to \SVG, use the utility \prog{pdftocairo}: \userentry{pdftocairo -svg filename.pdf} - For a large number of images, use \prog{lwarpmk}: +\DescribeProgram{lwarpmk pdftosvg} \userentry{lwarpmk pdftosvg *.pdf \qquad \textrm{(or a list of filenames)}} -If a \texttt{.pdf} file is referred to with its file extension, -a link to the \texttt{.pdf} file will appear in the \HTML\ output. -\begin{sourcedisplay} -\cs{includegraphics}\{filename.pdf\} \% creates a link in HTML -\end{sourcedisplay} - -\DescribePackage{epstopdf} -For \texttt{.eps} files, use \pkg{epstopdf} to provide a \PDF\ version, -and also provide a \SVG\ version as well. -\index{graphics>EPS files} -\index{EPS images} -\index{images>EPS} - -For \texttt{.png}, \texttt{.jpg}, or \texttt{.gif} image files, -\margintag{other image files} -the same file may be used in -both print or \HTML\ versions, and may be used with a file extension, +\DescribeProgram{lwarpmk epstopdf} +\DescribeProgram{epstopdf} +\margintag{\pkg{epstopdf} package} +For \EPS\ images converted to \PDF\ using the package \pkg{epstopdf}, +use \userentry{lwarpmk pdftosvg *.PDF} to convert to \SVG\ images. + +When using \DVI\ \prog{latex}, +\margintag{DVI latex} +it is necessary to convert \EPS\ to \PDF\ and then to \SVG: +\index{images>PDF or EPS>converting} +\userentry{lwarpmk epstopdf *.eps\qquad \textrm{(or a list of filenames)}} +\userentry{lwarpmk pdftosvg *.pdf\qquad \textrm{(or a list of filenames)}} + +For \PNG\ or \JPG +\margintag{PNG and JPG} +\index{images>PNG and JPG} +\index{PNG images} +\index{JPG images} +while using \prog{pdflatex}, \prog{lualatex}, or \prog{xelatex}, +the same file may be used in both print or \HTML\ versions, and may be used with a file extension, but will also be used without the file extension if it is the only file of its base name. +GIF files may be used for \HTML, +\margintag{GIF} +\index{images>GIF} +\index{GIF images} +but another format must also be provided for print output. + +If a file extension is not used, +\margintag{file extension priorities} +\index{images>format priorities} +for \HTML\ the file extension priorities +are: \SVG, \GIF, \PNG, then \JPG. + If using the older \pkg{graphics} syntax, use both optional arguments \watchout[\pkg{graphics} vs. \pkg{graphicx}] for \cs{includegraphics}. A single optional parameter is interpreted as the newer \pkg{graphicx} syntax. -Note that viewports are not supported by \pkg{warp}; +Note that viewports are not supported by \pkg{lwarp} \Dash \watchout[viewports] the entire image will be shown. @@ -1401,10 +1427,10 @@ If it is necessary to recompile the document's \HTML\ version, \prog{lwarpmk} will inform so with an error message.% If \HTML\ appears where an \SVG\ image should be,\watchout[\HTML\ instead of images]% -\index{math>appearing as \HTML}% -\index{images>appearing as \HTML}% -\index{SVG>images appearing as \HTML}% -\index{HTML>appearing in \SVG\ images} +\index{math>appearing as \HTML code}% +\index{images>appearing as \HTML code}% +\index{SVG>images appearing as \HTML code}% +\index{HTML>appearing instead of images} recompile the document one more time to get the page numbers back in sync, then remake the images one more time. @@ -1491,11 +1517,24 @@ Use \CSS\ or \cs{textcolor} where possible. } \newcommand{\limitsepstopdf}{% -When using \pkg{epstopdf} to convert images to \PDF, -use the \prog{pdftocairo} utility to also provide an \SVG\ version as well. -In the document, refer to the image filename without a suffix. The -\PDF\ version will be used in print output, and the \SVG\ version will -be used for \HTML. +Images with an \filenm{.eps} extension will be converted to \filenm{.pdf}. +The \HTML\ output uses the \filenm{.svg} version, so +\watchout[convert to \filenm{.svg}] +use \userentry{lwarpmk pdftosvg <listofPDFfiles>} to generate \filenm{.svg} versions. +} + +\newcommand{\limitspstricks}{% +All \pkg{pstricks} content should be +\watchout[use \env{pspicture}] +contained inside a \env{pspicture} environment. +} + +\newcommand{\limitspdftricks}{% +The \pkg{pdftricks} image files \filenm{<jobname>-fig*.pdf} must be converted +\watchout[convert image files] +to \filenm{.svg}, or else a missing file error will occur. +The image files must also be converted again whenever they change. +To convert the images:\userentry{lwarpmk pdftosvg <jobname>-fig*.pdf} } \newcommand{\limitsoverpic}{% @@ -2240,6 +2279,17 @@ The proper load order is: \end{sourcedisplay} } + +% For use in the documentation update section: +\newcommand*{\newlwarpmkconf}{ +Due to changes in \prog{lwarpmk}, +\watchout[Reset the configuration] +\textred{recompile any existing project a single time} +using \cmds{pdflatex filename.tex} or similar, after which +\prog{lwarpmk} may then be used with the new configuration files. +} + + \newcommand*{\describehashing}{% If starred, a hashed filename is used.\margintag{image filename hashing} \index{hash>SVG image filename} @@ -2276,7 +2326,7 @@ use the \pkg{lwarp} option \optn{OSWindows}. \DescribeOption{OSWindows} When detected or specified, the operating-system path separator used by \pkg{lwarp} -is modified, the boolean \texttt{usingOSWindows} is set true. +is modified, and the boolean \texttt{usingOSWindows} is set \texttt{true}. This boolean may be tested by the user for later use. } @@ -2302,7 +2352,7 @@ This boolean may be tested by the user for later use. %<*package> % \fi % -% \CheckSum{25214} +% \CheckSum{25635} % % \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 @@ -2403,6 +2453,7 @@ This boolean may be tested by the user for later use. % \changes{v0.57}{2018/06/06}{\ 2018/06/06} % \changes{v0.58}{2018/07/07}{\ 2018/07/07} % \changes{v0.58}{2018/06/07}{Replaced each \cs{csuse} with \cs{@nameuse} to force error if undefined.} +% \changes{v0.59}{2018/09/07}{\ 2018/09/07} @@ -2427,7 +2478,7 @@ This boolean may be tested by the user for later use. % % \bigskip % -% \fileversion{} --- \filedate +% \fileversion{} \Dash \filedate % % \bigskip % @@ -2462,8 +2513,8 @@ This boolean may be tested by the user for later use. % % A modular package-loading system uses the \pkg{lwarp} version of a package for % \HTML\ when available. -% Almost 300 \LaTeX\ packages are supported with these high-level source -% compatibility replacements, and many others work as-is. +% More than 300 \LaTeX\ packages are supported with these +% high-level source-compatibility replacements, and many others work as-is. % % A tutorial is provided to quickly introduce the user to the major components % of the package. @@ -2530,7 +2581,7 @@ This boolean may be tested by the user for later use. % \item help drive education, public and private research, and commercial activity; % \item are used in the fields of mathematics, science, engineering, and humanities; % \item span decades of development; -% \item are enduring --- many older packages are still actively used and maintained; +% \item are enduring \Dash many older packages are still actively used and maintained; % \item are largely backwards compatible; % \item are portable across all the major computing platforms; % \item are usable even on older computers and away from internet access; @@ -2548,7 +2599,7 @@ This boolean may be tested by the user for later use. % Donations may be directed towards individual projects: % \begin{description}[nosep] % \item[TUG Bursary Fund:] Assistance for attending annual TUG meetings. -% \item[CTAN:] The Comprehensive \TeX\ Archive Network --- Central storage for \TeX. +% \item[CTAN:] The Comprehensive \TeX\ Archive Network \Dash Central storage for \TeX. % \item[TeX Development Fund:] Support for specific projects. % \item[EduTeX:] Teaching and using \TeX\ in schools and universities. % \item[GUST e-foundry fonts:] Enhanced for math and additional language groups. @@ -2600,16 +2651,54 @@ This boolean may be tested by the user for later use. % % \begin{description} % \needspace{2\baselineskip} +% \item[v0.59:] \DVI\ \prog{latex}, \brand{MathJax}, \pkg{asymptote}, +% \pkg{pdftricks} and \pkg{pstricks}, \pkg{epstopdf}, \pkg{brqen}. +% \begin{itemize} +% \item \newlwarpmkconf +% \item Added an error if \filenm{lwarpmk.conf}'s format has changed and +% \margintag{\prog{lwarpmk}} +% the document must be recompiled. +% \item Added a warning if the \filenm{lwarpmk.conf} configuration file appears +% to be for the wrong operating system, in case files are transferred between +% systems. +% \item Added +% \begin{sourcedisplay} +% lwarpmk epstopdf <list-of-EPS-files> +% \end{sourcedisplay} +% to quickly convert a document's \EPS\ images to \PDF\ or \SVG. +% See \cref{sec:limitsgraphics}. +% \item Added support for \DVI\ \prog{latex}. See \cref{sec:loading}. +% \margintag{\DVI\ \prog{latex}} +% \item Fix for \optn{--shell-escape} with \prog{latexmk}. +% \margintag{\prog{latexmk}} +% \item Updated MathJax script to v2.7.4. +% \margintag{math} +% \item Fix: Mathjax chapter number removed from non-numeric tagged equations. +% \item Added MathJax support for \pkg{nicefrac}, \pkg{units}. +% \item Fix for \cs{[} and \cs{]} with \cs{displaymathnormal}. +% \item Fix for \cs{includegraphics} filename expansion. +% \margintag{images} +% \item \cs{includegraphics} now works with +% \filenm{.pdf} and \filenm{.eps} filename extensions. +% \item Moved \pkg{amsmath} out of the \pkg{lwarp} core. +% \margintag{packages} +% \item Fix for \pkg{chemformula} \cs{NMR}. +% \item Added \pkg{asymptote}, \pkg{pdftricks}, \pkg{pstricks}, \pkg{pst-eps}. +% \item Added \pkg{breqn}, \pkg{SIunits}. +% \item Added \pkg{bxpapersize}, \pkg{canoniclayout}, \pkg{draftcopy}, +% \pkg{fnbreak}, \pkg{nccfancyhdr}. +% \item Added \pkg{accsupp}, \pkg{axessibility}. +% \item Added \pkg{xunicode}. +% \item Improved and now supports \pkg{epstopdf}. +% \item Tested to work as-is: \pkg{eepic}, \pkg{sepfootnotes}. +% \item Added information about setting up a development version of \pkg{lwarp}. +% \margintag{docs} +% \end{itemize} +% \needspace{2\baselineskip} % \item[v0.58:] Extensive improvements in indexing, glossaries. % Adds \PDF-inclusion packages. % \begin{itemize} -% \item Due to changes in \prog{lwarpmk} and the configuration files -% \watchout[recompile from scratch] -% \filenm{lwarpmk.conf} and \filenm{*.lwarpmkconf}, -% \textred{it is necessary to recompile an existing project a single time} -% using \cmds{pdflatex filename.tex}, or similar for \prog{xelatex} or \prog{lualatex}. -% After this single recompile, the configuration files will work with the -% new version of \prog{lwarpmk}. +% \item \newlwarpmkconf % \item \prog{lwarpmk}: Added the |-p| option to specify the project name. % \margintag{\prog{lwarpmk}} % \item \prog{lwarpmk}: Now uses \prog{makeglossaries} for glossary generation, @@ -2736,6 +2825,7 @@ This boolean may be tested by the user for later use. % \needspace{2\baselineskip} % \item[v0.54:] Float \cs{centering}, improved image checks. % \begin{itemize} +% \item \newlwarpmkconf % \item \progcode{lwarpmk limages} checks for the presence of the \HTML\ version % \margintag{\prog{lwarpmk}} % of the document and valid image references before attempting @@ -2771,11 +2861,6 @@ This boolean may be tested by the user for later use. % to process documents in an encoding other than UTF-8. % See \cref{sec:fonts}. % -% \textred{For an existing document, \watchout[Reset the configuration] -% recompile the print version with \prog{pdflatex}, \prog{xelatex}, or -% \prog{lualatex} a single time, -% to readjust the \filenm{lwarpmk.conf} configuration file, -% before recompiling the \HTML\ version.} % \item Floats now honor \cs{centering}, \cs{raggedright}, \cs{raggedleft}, % \margintag{floats with \cs{centering}, etc.} % and their \pkg{ragged2e} equivalents, @@ -3745,7 +3830,7 @@ This boolean may be tested by the user for later use. % % ^^A *supported features % -% \begin{longtable}{>{\raggedright}m{.3\linewidth}m{.6\linewidth}} +% \begin{longtable}{>{\raggedright}p{.3\linewidth}p{.6\linewidth}} % \caption{\protect\LaTeX--HTML generation --- % \pkg{lwarp} package --- % Supported features\label{tab:supported}} \endfirsthead @@ -3758,7 +3843,7 @@ This boolean may be tested by the user for later use. % % \midrule % -% Engines: & pdf\LaTeX, \XeLaTeX, \LuaLaTeX \\ +% Engines: & \DVI\ \LaTeX, pdf\LaTeX, \XeLaTeX, \LuaLaTeX \\ % % \midrule % @@ -3774,13 +3859,16 @@ This boolean may be tested by the user for later use. % % Page layout: & \pkg{a4}, \pkg{a4wide}, \pkg{a5comb}, % \pkg{addlines}, \pkg{anysize}, \pkg{atbegshi}, -% \pkg{blowup}, \pkg{clrdblpg}, \pkg{continue}, \pkg{draftwatermark}, +% \pkg{blowup}, \pkg{bxpapersize}, \pkg{canoniclayout}, \pkg{clrdblpg}, +% \pkg{continue}, \pkg{draftcopy}, \pkg{draftwatermark}, % \pkg{ebook}, \pkg{everyshi}, % \pkg{fancyhdr}, \pkg{fwlw}, \pkg{geometry}, \pkg{grid}, \pkg{gridset}, -% \pkg{ltxgrid}, \pkg{pagegrid}, \pkg{pagesel}, \pkg{preview}, +% \pkg{ltxgrid}, \pkg{nccfancyhdr}, \pkg{pagegrid}, \pkg{pagesel}, \pkg{preview}, % \pkg{scrlayer-scrpage}, \pkg{textarea}, \pkg{titleps}, \pkg{tocenter}, % \pkg{turnthepage}, \pkg{typearea}, \pkg{vmargin}, -% \pkg{watermark}, \pkg{zwpagelayout}. \\ +% \pkg{watermark}, \pkg{zwpagelayout}. +% +% Tested to work as-is: \pkg{underlin}.\\ % % Sectioning: & Adds \progcode{FileDepth} for splitting the \HTML\ output. % Files may be numbered sequentially or named according to section name. @@ -3800,7 +3888,7 @@ This boolean may be tested by the user for later use. % % \pkg{idxlayout}, \pkg{imakeidx}, \pkg{index}, \pkg{makeidx}, \pkg{repeatindex}, \pkg{splitidx}. % -% Tested to work as-is: \pkg{hvindex}.\\ +% Tested to work as-is: \pkg{hvindex}, \pkg{sepfootnotes}.\\ % % Glossary: & \pkg{glossaries} and \prog{xindy} are used. \\ % @@ -3823,23 +3911,25 @@ This boolean may be tested by the user for later use. % Margin notes: & \pkg{marginfit}, \pkg{marginfix}, \pkg{scrlayer-notecolumn}. \\ % % Footnotes: & Adds \progcode{FootnoteDepth} to print footnotes at section breaks. -% \pkg{endheads}, \pkg{endnotes}, +% \pkg{dblfnote}, +% \pkg{endheads}, \pkg{endnotes}, \pkg{fnbreak}, \pkg{fnpos}, % \pkg{footmisc}, \pkg{footnote}, \pkg{footnpag}, -% \pkg{marginnote}, \pkg{nccfoots}, \pkg{pagenote}, \pkg{parnotes}, \pkg{sidenote}. \\ +% \pkg{marginnote}, \pkg{nccfoots}, \pkg{pagenote}, +% \pkg{parnotes}, \pkg{pfnote}, \pkg{sidenote}. \\ % % \midrule % % Math: & Converted to \SVG\ images with \HTML\ \element{alt} tags containing the % \LaTeX\ source for the math expression. % \brand{MathJax} supported as an alternative. -% \AmS\ environments are supported. +% \pkg{amsmath}: \AmS\ environments are supported. % User-defined macros are available during converson, % due to native \LaTeX\ processing.\\ % % Theorems: & Native \LaTeX\ theorems, % \pkg{amsthm}, \pkg{ntheorem}, \pkg{theorem}. \\ % -% Additional math: & Math fonts via \SVG\ images, \pkg{cases}, \pkg{resizegather}, \pkg{xy}. +% Additional math: & Math fonts via \SVG\ images, \pkg{breqn}, \pkg{cases}, \pkg{resizegather}, \pkg{xy}. % % Tested to work as-is: % \pkg{amscd}, \pkg{bm}, \pkg{braket}, \pkg{delarray}, \pkg{guass}, \pkg{nicematrix}, @@ -3850,7 +3940,7 @@ This boolean may be tested by the user for later use. % % \midrule % -% Units and fractions: & \pkg{nicefrac}, \pkg{siunitx}, \pkg{units}, \pkg{xfrac}. +% Units and fractions: & \pkg{nicefrac}, \pkg{SIunits}, \pkg{siunitx}, \pkg{units}, \pkg{xfrac}. % % Tested to work as-is: \pkg{SIunits}. \\ % @@ -3884,10 +3974,11 @@ This boolean may be tested by the user for later use. % \pkg{rotating} is emulated but all objects are unrotated. % \pkg{picture}, \pkg{tikz}, and \pkg{xy} are converted to an \SVG\ image. % -% \pkg{epstopdf}, \pkg{figsize}, \pkg{grffile}, \pkg{overpic}. +% \pkg{asymptote}, \pkg{epstopdf}, \pkg{figsize}, \pkg{grffile}, \pkg{overpic}, +% \pkg{pdftricks}, \pkg{pst-eps}, \pkg{pstricks}. % % Tested to work as-is: -% \pkg{tikz-3dplot}. \\ +% \pkg{eepic}, \pkg{tikz-3dplot}. \\ % % % @@ -3966,7 +4057,7 @@ This boolean may be tested by the user for later use. % Fonts: & Used as-is. Appear in \SVG\ math expressions or embedded image environments. \\ % % Symbols: & Native \LaTeX\ diacriticals, -% \pkg{chemgreek}, \pkg{textalpha}, \pkg{textcomp}, \pkg{textgreek}. \\ +% \pkg{chemgreek}, \pkg{textalpha}, \pkg{textcomp}, \pkg{textgreek}, \pkg{xunicode}. \\ % % \midrule % @@ -3998,6 +4089,10 @@ This boolean may be tested by the user for later use. % % \midrule % +% Accessibility: & Nullified: \pkg{accsupp}, \pkg{axessibility}. \\ +% +% \midrule +% % Working as-is: & % Various utility, calculation, file, and text-only packags, such as % \pkg{calc}, @@ -4005,7 +4100,7 @@ This boolean may be tested by the user for later use. % \pkg{somedefs}, % \pkg{trace}, % \pkg{xspace}. -% Also, any math-only packages, including specialized typesetting for +% Also, most math-only packages, including specialized typesetting for % various fields of science and engineering. \\ % % \bottomrule @@ -4031,7 +4126,7 @@ This boolean may be tested by the user for later use. % % The closest to \pkg{lwarp} in design principle is the % \DescribeClass{internet} -% \verb+internet+ class by Andrew Stacey --- +% \verb+internet+ class by Andrew Stacey \Dash % an interesting project which directly produces several versions % of markdown, and also \HTML\ and \EPUB. % \url{https://github.com/loopspace/latex-to-internet} @@ -4641,7 +4736,8 @@ This boolean may be tested by the user for later use. % \item Compile the project: \userentry{pdflatex tutorial.tex} % \quad (several times) % -% (\prog{xelatex} or \prog{lualatex} may be used as well.) +% (\prog{xelatex} or \prog{lualatex} may be used as well. +% \pkg{lwarp} also supports \DVI\ \prog{latex} for use with \filenm{.eps} images.) % % \item View the resulting |tutorial.pdf| with a \PDF\ viewer. % @@ -4655,7 +4751,7 @@ This boolean may be tested by the user for later use. % (Two of the new files are configuration files for the helper program \prog{lwarpmk}. % Whenever a print version of the document is created, % the configuration files for \prog{lwarpmk} are updated to -% record the operating system, \LaTeX\ program (\prog{pdflatex}, \prog{xelatex}, or \prog{lualatex}), +% record the operating system, \LaTeX\ engine (\prog{latex}, \prog{pdflatex}, \prog{xelatex}, or \prog{lualatex}), % the filenames of the source code and \HTML\ output, and whether % the additional helper program \prog{latexmk} will be used to compile the document.) % @@ -5038,6 +5134,19 @@ This boolean may be tested by the user for later use. % \end{enumerate} % % +% \subsection{Using DVI LaTeX} +% +% Traditional \DVI\ LaTeX may also be used along with \filenm{.eps} image files. +% An \SVG\ version of each image must also be provided. +% \prog{lwarpmk} may be used to convert image formats. +% +% To convert \EPS\ files to \PDF: +% \userentry{lwarpmk epstopdf *.eps \qquad \textrm{(or a list of files)}} +% +% To convert \PDF\ files to \SVG: +% \userentry{lwarpmk pdftosvg *.pdf \qquad \textrm{(or a list of files)}} +% +% % % \clearpage % @@ -5092,17 +5201,21 @@ This boolean may be tested by the user for later use. % \userentry{lwarpmk cleanlimages} % % -% \subsection{Converting PDF images to SVG} +% \subsection{Converting PDF or EPS images to SVG} % \changes{v0.56}{2018/04/29}{Docs: \cmds{lwarpmk pdftosvg}.} +% \changes{v0.59}{2018/09/05}{Docs: \cmds{lwarpmk epstopdf}.} % -% \HTML\ cannot display \PDF\ images, so any external \PDF\ graphics images must +% \HTML\ cannot display \PDF\ or \EPS\ images, so any external \PDF\ graphics images must % be converted to \SVG\ format. -% \prog{pdftocairo} may be used one image at a time, -% but \prog{lwarpmk} provides a way to convert images in bulk: +% \index{SVG>converting from PDF or EPS} +% \index{PDF images>converting} +% \index{EPS images>converting} +% \index{images>PDF or EPS>converting} +% \prog{pdftocairo} and \prog{epstopdf} may be used one image at a time, +% but \prog{lwarpmk} also provides a way to convert \PDF\ or \EPS\ images in bulk: +% \userentry{lwarpmk epstopdf *.eps \qquad \textrm{(or a list of files)}} % \userentry{lwarpmk pdftosvg *.pdf \qquad \textrm{(or a list of files)}} -% \index{SVG>converting from PDF} -% \index{PDF images>converting to SVG} -% \index{images>PDF>converting to SVG} +% Be sure to always provide \SVG\ files for \HTML\ output. % % % \subsection{Creating HTML from an incomplete compile} @@ -5169,16 +5282,16 @@ This boolean may be tested by the user for later use. % \item Load \pkg{lwarp}. % \item Load remaining packages. % \end{enumerate} -% \item Also modify the document: +% \item Modify the document: % \begin{enumerate} -% \item Remove \filenm{.pdf} file extensions. Change: -% \begin{sourcedisplay} -% \cs{includegraphics}\{filename.pdf\} -% \end{sourcedisplay} to: -% \begin{sourcedisplay} -% \cs{includegraphics}\{filename\} -% \end{sourcedisplay} -% Other image formats may have a file extension. +% ^^A \item Remove \filenm{.pdf} file extensions. Change: +% ^^A \begin{sourcedisplay} +% ^^A \cs{includegraphics}\{filename.pdf\} +% ^^A \end{sourcedisplay} to: +% ^^A \begin{sourcedisplay} +% ^^A \cs{includegraphics}\{filename\} +% ^^A \end{sourcedisplay} +% ^^A Other image formats may have a file extension. % \item Avoid the \optn{scale} option. Change: % \begin{sourcedisplay} % \cs{includegraphics}[scale=<xx>] @@ -5197,7 +5310,7 @@ This boolean may be tested by the user for later use. % \item Other changes as per \nameref{sec:limitations}, \cref{sec:limitations}. % \end{enumerate} % \item Convert any \PDF\ images to \SVG. See \cref{sec:limitsgraphics}. -% \item Manually compile the print version with \prog{pdflatex}, +% \item Manually compile the print version with \prog{latex}, \prog{pdflatex}, % \prog{lualatex}, or \prog{xelatex}. % \item |lwarpmk print| to finish the print version. % \item |lwarpmk html| to create the \HTML\ version. @@ -5275,7 +5388,7 @@ This boolean may be tested by the user for later use. % \watchout[\prog{xelatex} and \prog{lualatex}] % Do NOT use \pkg{fontenc}! % -% Place \pkg{fontspec} or \pkg{fontenc} and other font and UTF-8 related commands +% Place \pkg{fontspec} or \pkg{fontenc}, \pkg{xunicode}, and other font and UTF-8 related commands % after the \cs{documentclass} command and before |\usepackage{lwarp}|. % % In some cases, \watchout[package conflicts] @@ -5384,7 +5497,10 @@ This boolean may be tested by the user for later use. % Option & Description \\ \midrule % mathsvg & Show math using \SVG\ images. \\ % mathjax & Show math using \brand{MathJax}. \\ -% latexmk & Boolean for \prog{lwarpmk} to use \prog{latexmk} for compiling documents. \\ +% latexmk & Use \prog{latexmk} for compiling documents. \\ +% dvips & Use \prog{dvips} and \prog{ps2pdf} to convert \DVI\ documents. \\ +% dvipdfm & Use \prog{dvipdfm} to convert \DVI\ documents. \\ +% dvipdfmx & Use \prog{dvipdfmx} to convert \DVI\ documents. \\ % HomeHTMLFilename & The filename of the home page. \\ % HTMLFilename & A prefix for the filenames of the remaining web pages. \\ % \midrule @@ -5444,6 +5560,21 @@ This boolean may be tested by the user for later use. % Otherwise, \prog{lwarpmk} attempts to determing for itself whether to recompile. % See \cref{sec:htmlsettings}. % +% \item[\optn{dvips}:] +% \DescribeOption{dvips} +% \DescribeDefault{false} Tells \prog{lwarpmk} to use \prog{dvips} and \prog{ps2pdf} to convert +% \DVI\ output to \PDF. +% +% \item[\optn{dvipdfm}:] +% \DescribeOption{dvipdfm} +% \DescribeDefault{false} Tells \prog{lwarpmk} to use \prog{dvipdfm} to convert +% \DVI\ output to \PDF. +% +% \item[\optn{dvipdfmx}:] +% \DescribeOption{dvipdfmx} +% \DescribeDefault{false} Tells \prog{lwarpmk} to use \prog{dvipdfmx} to convert +% \DVI\ output to \PDF. +% % % \item[\optn{HomeHTMLFilename}:] % \DescribeOption{HomeHTMLFilename} @@ -7464,11 +7595,8 @@ This boolean may be tested by the user for later use. % \subsection{Graphics} % \label{sec:limitsgraphics} % -% \DescribePackage{graphics} -% \DescribePackage{graphicx} -% \index{SVG>converting from PDF} -% \index{PDF images>converting to SVG} -% \index{images>PDF>converting to SVG} +% \DescribePackage{graphics}% +% \DescribePackage{graphicx}% % \limitsgraphics % % @@ -7504,6 +7632,18 @@ This boolean may be tested by the user for later use. % \limitsepstopdf % % +% \subsubsection{\pkg{pstricks} package} +% +% \DescribePackage{pstricks} +% \limitspstricks +% +% +% \subsubsection{\pkg{pdftricks} package} +% +% \DescribePackage{pdftricks} +% \limitspdftricks +% +% % \subsubsection{\pkg{overpic} package} % % \DescribePackage{overpic} @@ -8150,6 +8290,74 @@ This boolean may be tested by the user for later use. % \end{Verbatim} % % +% \subsection{Creating a development system} +% +% The following creates a local development system for \pkg{lwarp} on a TeXLive system +% in a Unix-like environment. +% Doing so allows anything requesting \pkg{lwarp} to use the development version +% instead of whichever version is installed in TeXLive. +% +% \begin{description} +% \item [Create a development directory:] \ +% +% Place into this directory \filenm{lwarp.dtx} and \filenm{lwarp.ins}. +% +% To create \filenm{lwarp.sty}, +% execute \userentry{pdflatex lwarp.ins} which creates \filenm{lwarp.sty} and several +% hundred additional \filenm{lwarp-*.sty} files for the various packages which are +% supported. +% +% To create the documentation \filenm{lwarp.pdf}, +% execute \userentry{pdflatex lwarp.dtx} +% +% \item[To make the development files visible to other projects:] \ +% +% Create the directory +% \begin{quote} +% \filenm{/usr/local/texlive/texmf-local/tex/latex/local/lwarp} +% \end{quote} +% +% Inside this directory, create the file \filenm{update}, containing: +% \begin{Verbatim}[gobble=2,obeytabs,tabsize=4,frame=lines] +% ln -s /path_to_dev_directory/lwarp*.sty . +% ln -s /path_to_dev_directory/lwarp_baseline_marker.png . +% ln -s /path_to_dev_directory/lwarp_baseline_marker.eps . +% mktexlsr +% \end{Verbatim} +% Run ./update now, and whenever a new lwarp-* package is added. + +% \item[To make the development version of \prog{lwarpmk} visible to other projects:] \ +% +% \begin{Verbatim}[gobble=2,obeytabs,tabsize=4,frame=lines] +% cd /opt +% ln -s /usr/local/texlive/texmf-local/bin/x86_64-linux texbin_local +% cd texbin_local +% ln -s ../../scripts/lwarp/lwarpmk.lua lwarpmk +% cd /usr/local/texlive/texmf-local/scripts/ +% mkdir lwarp +% cd lwarp +% ln -s /path_to_dev_directory/lwarpmk.lua lwarpmk +% \end{Verbatim} +% Verify that the correct version is found with \userentry{which lwarpmk} +% +% \item [To make the local versions visible to the shell:] \ +% +% Paths must be set by the shell startup, such as in \filenm{.bashrc} and \filenm{.cshrc}: +% +% In \filenm{.bashrc}: +% \begin{Verbatim}[gobble=2,obeytabs,tabsize=4,frame=lines] +% PATH=/opt/texbin_local:/opt/texbin:$PATH +% \end{Verbatim} +% +% In \filenm{.cshrc}: +% \begin{Verbatim}[gobble=2,obeytabs,tabsize=4,frame=lines] +% setenv PATH ${HOME}/bin:/opt/texbin_local:/opt/texbin:${PATH} +% \end{Verbatim} +% +% \end{description} +% +% +% % \subsection{Modifying a package for \pkg{lwarp}} % % \index{package>modifying for \pkg{lwarp}} @@ -8226,6 +8434,8 @@ This boolean may be tested by the user for later use. % \end{sourcedisplay} % to |lwarp.dtx| in \cref{sec:loadafter}. This causes \pkg{lwarp} to stop with % an error if \pkg{packagename} is loaded before \pkg{lwarp}. +% Finally, add an entry in \cref{tab:supported}, \nameref{tab:supported}, +% and also the Updates section. % % % \subsection{Modifying a class for \pkg{lwarp}} @@ -8303,13 +8513,6 @@ This boolean may be tested by the user for later use. % \item Use \filenm{mymake.lua} instead of \filenm{lwarpmk.lua}. % \end{enumerate} % -% To adjust the command-line arguments for compiling the document, -% look in \filenm{mymake.lua} for ``|latexname|''. -% -% To adjust the command-line arguments for processing the index, -% look for ``|xindy|''. -% -% % % % \clearpage @@ -8498,12 +8701,6 @@ This boolean may be tested by the user for later use. % the captions |above| or |below| to match their use in the source code. % \end{description} % -% \item [Print document contains \HTML\ tags:] ~ -% \begin{itemize} -% \item Be sure that the document -% selects |\usepackage[warpprint]{lwarp}| instead of |[warpHTML]|. -% \end{itemize} - % \item [Images are appearing in strange places:] ~ % \index{images>in strange places} % \begin{itemize} @@ -8597,7 +8794,7 @@ This boolean may be tested by the user for later use. % \label{sec:changesend} % \PrintIndex % \vfill -% For the most recent changes and the start of the Index, +% For the most recent changes, followed by the start of the Index, % see page \pageref{sec:changesend}. % } % @@ -8753,6 +8950,8 @@ This boolean may be tested by the user for later use. \ifLuaTeX \RequirePackage{luatex85}% until the geometry package is updated \fi + +\RequirePackage{ifpdf} % \end{macrocode} % % @@ -8826,7 +9025,6 @@ This boolean may be tested by the user for later use. % the source code, even though they are not printed in the following % listing. % \begin{macrocode} - \RequirePackage{newunicodechar} \newunicodechar{⨯}{\texttimes} @@ -8848,7 +9046,6 @@ This boolean may be tested by the user for later use. % \end{macrocode} % % -%macrocode % % \section{Miscellaneous tools} % @@ -8934,13 +9131,14 @@ This boolean may be tested by the user for later use. % % \subsection{Common portability code} % -% \DescribeBoolean{usingOSWindows} Set if the \optn{OSWindows} option is used. +% \DescribeBoolean{usingOSWindows} Set if the \optn{OSWindows} option is used, +% or if \brand{Windows} is automatically detected. % \begin{macrocode} \newbool{usingOSWindows} \boolfalse{usingOSWindows} % \end{macrocode} -% + % \subsection{Unix, Linux, and Mac\,OS} % \begin{macro}{\OSPathSymbol} @@ -9288,21 +9486,51 @@ This boolean may be tested by the user for later use. % \end{macrocode} +% \DescribeOption{latexmk} +% Option \optn{latexmk} tells \prog{lwarpmk} to use \prog{latexmk} when compiling documents. +% +% \changes{v0.30}{2017/04/29}{Option \prog{latexmk} replaces macro \cs{UseLatexmk}.} +% +% \begin{macrocode} +\DeclareBoolOption[false]{latexmk} +% \end{macrocode} + +% \DescribeOption{dvips} +% Option \optn{dvips} tells \prog{lwarpmk} to use \prog{dvips} +% when compiling \DVI\ \prog{latex} documents. +% +% \changes{v0.59}{2018/09/02}{Added option \optn{dvips}.} +% +% \begin{macrocode} +\DeclareBoolOption[false]{dvips} +% \end{macrocode} +% \DescribeOption{dvipdfm} +% Option \optn{dvipdfm} tells \prog{lwarpmk} to use \prog{dvipdfm} +% when compiling \DVI\ \prog{latex} documents. +% +% \changes{v0.59}{2018/09/02}{Added option \optn{dvipdfm}.} +% +% \begin{macrocode} +\DeclareBoolOption[false]{dvipdfm} +% \end{macrocode} -% \DescribeOption{latexmk} -% Option \optn{latexmk} tells \prog{lwarpmk} to use \prog{latexmk} when compiling documents. +% \DescribeOption{dvipdfmx} +% Option \optn{dvipdfmx} tells \prog{lwarpmk} to use \prog{dvipdfmx} +% when compiling \DVI\ \prog{latex} documents. % -% \changes{v0.30}{2017/04/29}{Option \prog{latexmk} replaces macro \cs{UseLatexmk}.} +% \changes{v0.59}{2018/09/02}{Added option \optn{dvipdfmx}.} % % \begin{macrocode} -\DeclareBoolOption[false]{latexmk} +\DeclareBoolOption[false]{dvipdfmx} % \end{macrocode} + + % Execute the package options, with the defaults which have been set just above: % \margintag{Execute options} % \begin{macrocode} @@ -9406,6 +9634,9 @@ This boolean may be tested by the user for later use. % % \DescribePackage{comment} Provides conditional code blocks. % +% Attempts to use \pkg{versions} or \pkg{verbatim} fail in some cases, and do not +% provide much of a speed benefit even when they do work. +% % \begin{macrocode} \RequirePackage{comment} % \end{macrocode} @@ -9633,6 +9864,7 @@ For a possible alternative, see package(s) #2.} \LWR@loadafter{a4wide} \LWR@loadafter{a5comb} \LWR@notmemoirloadafter{abstract} +\LWR@loadafter{accsupp} \LWR@loadafter{acro} \LWR@loadafter{acronym} \LWR@loadafter{adjmulticol} @@ -9650,10 +9882,13 @@ For a possible alternative, see package(s) #2.} \LWR@notmemoirloadafter{appendix} \LWR@loadafter{arabicfront} \LWR@notmemoirloadafter{array} +\LWR@loadafter{arydshln} +\LWR@loadafter{asymptote} % \LWR@loadafter{atbegshi}% used by morewrites \LWR@loadafter{attachfile} \LWR@loadafter{attachfile2} \LWR@loadafter{authblk} +\LWR@loadafter{axessibility} \LWR@loadafter{axodraw2} \LWR@loadafter{backref} \LWR@loadafter{balance} @@ -9665,8 +9900,11 @@ For a possible alternative, see package(s) #2.} \LWR@loadafter{boxedminipage} \LWR@loadafter{boxedminipage2e} \LWR@loadafter{breakurl} +\LWR@loadafter{breqn} +\LWR@loadafter{bxpapersize} \LWR@loadafter{bytefield} \LWR@loadafter{cancel} +\LWR@loadafter{canoniclayout} \LWR@loadafter{caption} \LWR@loadafter{caption2} \LWR@loadafter{cases} @@ -9692,6 +9930,7 @@ For a possible alternative, see package(s) #2.} \LWR@loadafter{dblfnote} \LWR@notmemoirloadafter{dcolumn} \LWR@loadafter{diagbox} +\LWR@loadafter{draftcopy} \LWR@loadafter{draftwatermark} \LWR@loadafter{easy-todo} \LWR@loadafter{ebook} @@ -9727,6 +9966,7 @@ For a possible alternative, see package(s) #2.} \LWR@loadafter{floatrow} \LWR@loadafter{fltrace} \LWR@loadafter{flushend} +\LWR@loadafter{fnbreak} \LWR@loadafter{fncychap} \LWR@loadafter{fnlineno} \LWR@loadafter{fnpos} @@ -9804,6 +10044,7 @@ For a possible alternative, see package(s) #2.} \LWR@loadafter{multitoc} \LWR@loadafter{nameref} \LWR@loadafter{natbib} +\LWR@notmemoirloadafter{nccfancyhdr} \LWR@notmemoirloadafter{needspace} % newclude must be loaded before lwarp \LWR@loadafter{newtxmath} @@ -9827,6 +10068,7 @@ For a possible alternative, see package(s) #2.} \LWR@loadafter{pdflscape} \LWR@loadafter{pdfpages} \LWR@loadafter{pdfsync} +\LWR@loadafter{pdftricks} \LWR@loadafter{pdfx} \LWR@loadafter{pfnote} \LWR@loadafter{phfqit} @@ -9834,6 +10076,8 @@ For a possible alternative, see package(s) #2.} \LWR@loadafter{prelim2e} \LWR@loadafter{prettyref} \LWR@loadafter{preview} +\LWR@loadafter{pst-eps} +\LWR@loadafter{pstricks} \LWR@loadafter{quotchap} \LWR@loadafter{quoting} \LWR@loadafter{ragged2e} @@ -9863,6 +10107,7 @@ For a possible alternative, see package(s) #2.} \LWR@loadafter{showkeys} \LWR@loadafter{sidecap} \LWR@loadafter{sidenotes} +\LWR@loadafter{SIunits} \LWR@loadafter{siunitx} \LWR@loadafter{soul} \LWR@loadafter{soulpos} @@ -9905,6 +10150,7 @@ For a possible alternative, see package(s) #2.} % \LWR@loadafter{typearea}% preloaded by koma-script classes \LWR@loadafter{ulem} \LWR@loadafter{underscore} +\LWR@loadafter{units} \LWR@loadafter{upref} \LWR@loadafter{url} \LWR@loadafter{varioref}% no lwarp package provided @@ -9925,6 +10171,7 @@ For a possible alternative, see package(s) #2.} \LWR@loadafter{xmpincl} \LWR@loadafter{xpiano} \LWR@loadafter{xtab} +% xunicode must be loaded before lwarp \LWR@loadafter{xurl} \LWR@loadafter{xy} \LWR@loadafter{zwpagelayout} @@ -10337,33 +10584,6 @@ top=1in,bottom=1in,% % \end{macrocode} -% \DescribePackage{amsmath} -% Preloaded to avoid options clash and to add patches. -% -% ^^A \changes{v0.16}{2016/04/09}{Fix: amsmath options clash} -% -% ^^A \pkg{newtxmath} automatically loads \pkg{amsmath}, -% ^^A so the option \optn{leqno} is passed beforehand to be -% ^^A picked up both here and by \pkg{newtxmath} if it is used. -% ^^A \changes{v0.16}{2016/04/11}{Fix: newtxmath compatibility.} -% \changes{v0.33}{2016/06/21}{\pkg{amsmath}: Removed \optn{fleqn} option.} -% -% ^^A *8* remove leqno and references -% \begin{macrocode} -% \PassOptionsToPackage{leqno}{amsmath}% disabled to test centered display math -\RequirePackage{amsmath} -% \end{macrocode} -% -% Patches to allow \cs{eqref} inside a caption: -% \changes{v0.49}{2018/02/18}{\pkg{amsmath}: Fix: Patches for \cs{eqref}.} -% \changes{v0.50}{2018/03/02}{\pkg{amsmath}: Fix: Upright tags for \SVG math.} -% \begin{macrocode} -\def\maketag@@@#1{\text{#1}} -\def\tagform@#1{\maketag@@@{(\ignorespaces#1\unskip)}} -% \end{macrocode} - - - % \changes{v0.40}{2017/09/07}{No longer preloads \pkg{xfrac}.} @@ -10995,8 +11215,8 @@ top=1in,bottom=1in,% % are processed by the print or \HTML\ version. % % Expandable versions are also provided as well. -% These areusually necessary for anything which could appear inside a \env{tabular}, -% without which an |Misplaced \omit| error may occur. +% These usually are necessary for anything which could appear inside a \env{tabular}, +% without which a ``|Misplaced \omit|'' error may occur. % \watchout[Misplaced \cs{omit} error] % \begin{sourcedisplay} % \cs{LWR@expandableformatted} \\ @@ -11558,8 +11778,378 @@ top=1in,bottom=1in,% % \end{macrocode} +% \subsection{\prog{lwarpmk} configuration files} % ^^A *lwarpmk.conf -% \subsection{lwarpmk.conf} + +% \codeprint +% \begin{macrocode} +\begin{warpprint} +% \end{macrocode} + + +% \begin{macro}{\LWR@lwarpconfversion} +% The version number of the configuration file, allowing \prog{lwarpmk} to detect +% an obsolete configuration file format. +% Incremented by one each time the configuration file format changes. +% (This is NOT the same as the \pkg{lwarp} version number.) +% \begin{macrocode} +\newcommand*{\LWR@lwarpconfversion}{1}% also in lwarpmk.lua +% \end{macrocode} +% \end{macro} +% +% +% The literal dollar sign character, with a plain catcode, +% allowing it to be written to a file as-is. +% \begin{macrocode} +\catcode`\$=12 +\def\LWR@dollarchar{$} +\catcode`\$=3 +% \end{macrocode} +% +% +% The literal ampersand character, with a plain catcode, +% allowing it to be written to a file as-is. +% \begin{macrocode} +\catcode`\&=12 +\def\LWR@ampersand{&} +\catcode`\&=4 +% \end{macrocode} +% +% +% \begin{macro}{\LWR@opquote} +% The operating system's quote mark: +% \begin{macrocode} +\ifbool{usingOSWindows}{ + \def\LWR@opquote{"} +}{ + \def\LWR@opquote{'} +} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\LWR@opsequence} +% The operating system's sequential execution command: +% \begin{macrocode} +\ifbool{usingOSWindows}{ + \def\LWR@opsequence{\LWR@ampersand} +}{ + \def\LWR@opsequence{\LWR@ampersand\LWR@ampersand} +} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\LWR@shellescapecmd} +% The LaTeX compile option for shell escape, if used. +% \begin{macrocode} +\ifshellescape + \def\LWR@shellescapecmd{--shell-escape } +\else + \def\LWR@shellescapecmd{} +\fi +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\LWR@compilecmd} \marg{engine} \marg{suffix} +% +% Used to form the basic compilation command for a document, adding +% the optional shell escape. +% +% Engine is \prog{pdflatex}, etc. Suffix is empty or \filenm{\_html} +% \begin{macrocode} +\newcommand*{\LWR@compilecmd}[2]{% + #1 \LWR@shellescapecmd \jobname#2% +} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\LWR@addcompilecmd} \marg{cmd} \marg{suffix} +% +% Adds to the compilation command. +% +% Cmd is \prog{dvipdfmx}, etc. Suffix is empty or \filenm{\_html} +% \begin{macrocode} +\newcommand*{\LWR@addcompilecmd}[2]{% + \space \LWR@opsequence \space\space + #1 \jobname#2% +} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\LWR@unknownengine} +% Error message if not sure which \LaTeX\ engine is being used. +% \begin{macrocode} +\newcommand*{\LWR@unknownengine}{% + \PackageError{lwarp} + {Unknown LaTeX engine.} + {Lwarp only knows about pdflatex, dvi latex, xelatex, and lualatex.} +} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\LWR@latexmkvar} \marg{varname} \marg{value} +% +% Adds a \prog{latexmk} variable assignment. +% \begin{macrocode} +\newcommand*{\LWR@latexmkvar}[2]{% + -e + \LWR@opquote% + \LWR@dollarchar #1=q/#2/% + \LWR@opquote +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\LWR@latexmkcmd} \marg{\prog{latexmk} options} +% +% Sets a call to \prog{latexmk} with the given options, possibly adding +% \optn{-\/-shell-escape}, and also adding the indexing program. +% \changes{v0.59}{2018/09/05}{Fix: \optn{--shell-escape} with \prog{latexmk}.} +% \begin{macrocode} +\newcommand*{\LWR@latexmkcmd}[1]{% + latexmk \space \LWR@shellescapecmd \space #1 \space + -recorder \space + \LWR@latexmkvar{makeindex}{\LWR@LatexmkIndexCmd} +} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\LWR@latexmkdvipdfm} \marg{\prog{dvipdfm} or \prog{dvipdfmx}} +% +% Adds the options settings for \prog{dvipdfm} or \prog{dvipdfmx}. +% \begin{macrocode} +\newcommand*{\LWR@latexmkdvipdfm}[1]{% + -pdfdvi \space + \LWR@latexmkvar{dvipdf}{% + #1 + \@percentchar O + -o \@percentchar D + \@percentchar S% + } +} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\LWR@printlatexcmd} +% \begin{macro}{\LWR@HTMLlatexcmd} +% +% The following sets the command to use to compile the source to \PDF\ form. +% +% If using \prog{latexmk}, a complicated string is created, +% eventually resulting in something such as: +% +% For \prog{xelatex} with \optn{--shell-escape}: +% \begin{Verbatim}[tabsize=4,gobble=2,frame=lines] +% [[latexmk -xelatex --shell-escape -recorder +% -e '$makeindex = q/makeindex -s lwarp.ist/' <jobname>_html]] +% \end{Verbatim} +% +% For \prog{dvipdfmx}: +% \begin{Verbatim}[tabsize=4,gobble=2,frame=lines] +% [[latexmk -pdfdvi -e '$dvipdf=q/dvipdfmx %O -o %D %S/' +% -recorder +% -e '$makeindex=q/makeindex -s lwarp.ist/' <jobname>_html]] +% \end{Verbatim} +% +% \begin{macrocode} +\ifbool{LWR@latexmk}{ +% \end{macrocode} +% For \prog{latexmk} with \prog{pdflatex} or \prog{lualatex}: +% \begin{macrocode} + \ifpdf +% \end{macrocode} +% For \prog{latexmk} with \prog{pdflatex}: +% \begin{macrocode} + \ifPDFTeX + \def\LWR@latexcmd{\LWR@latexmkcmd{-pdf -dvi- -ps-}} + \else +% \end{macrocode} +% For \prog{latexmk} with \prog{lualatex}: +% \begin{macrocode} + \ifLuaTeX + \def\LWR@latexcmd{\LWR@latexmkcmd{-lualatex}} + \else + \LWR@unknownengine + \fi + \fi + \else% \ifpdf +% \end{macrocode} +% For \prog{latexmk} with \prog{xelatex} or \DVI\ \prog{latex}: +% \begin{macrocode} + \ifXeTeX +% \end{macrocode} +% For \prog{latexmk} with \prog{xelatex}: +% \begin{macrocode} + \def\LWR@latexcmd{\LWR@latexmkcmd{-xelatex}} + \else% \ifXeTeX +% \end{macrocode} +% For \prog{latexmk} with \DVI\ \prog{latex}: +% \begin{macrocode} + \ifbool{LWR@dvipdfm}{ + \def\LWR@latexcmd{% + \LWR@latexmkcmd{% + \LWR@latexmkdvipdfm{dvipdfm}% + } + } + }{ + \ifbool{LWR@dvipdfmx}{ + \def\LWR@latexcmd{% + \LWR@latexmkcmd{% + \LWR@latexmkdvipdfm{dvipdfmx}% + } + } + }{ + \def\LWR@latexcmd{\LWR@latexmkcmd{-pdfps}} + } + } + \fi + \fi% \ifpdf +% \end{macrocode} +% The final assignment if \prog{latexmk}: +% \begin{macrocode} + \def\LWR@printlatexcmd{\LWR@latexcmd \space \jobname} + \def\LWR@HTMLlatexcmd{\LWR@latexcmd \space \jobname_html} +}% latexmk +% \end{macrocode} +% Without \prog{latexmk}, the compiling command is simply the compiler name +% and the optional shell escape: +% \begin{macrocode} +{% not latexmk + \ifpdf +% \end{macrocode} +% For \prog{pdflatex} or \prog{lualatex}: +% \begin{macrocode} + \ifPDFTeX +% \end{macrocode} +% For \prog{pdflatex}: +% \begin{macrocode} + \def\LWR@printlatexcmd{\LWR@compilecmd{pdflatex}{}} + \def\LWR@HTMLlatexcmd{\LWR@compilecmd{pdflatex}{_html}} + \else + \ifLuaTeX +% \end{macrocode} +% For \prog{lualatex}: +% \begin{macrocode} + \def\LWR@printlatexcmd{\LWR@compilecmd{lualatex}{}} + \def\LWR@HTMLlatexcmd{\LWR@compilecmd{lualatex}{_html}} + \else + \LWR@unknownengine + \fi + \fi + \else% \ifpdf +% \end{macrocode} +% For \DVI\ \prog{latex} or \prog{xelatex}: +% \begin{macrocode} + \ifXeTeX +% \end{macrocode} +% For \prog{xelatex}: +% \begin{macrocode} + \def\LWR@printlatexcmd{\LWR@compilecmd{xelatex}{}} + \def\LWR@HTMLlatexcmd{\LWR@compilecmd{xelatex}{_html}} + \else +% \end{macrocode} +% For \DVI\ \prog{latex}. Default to \prog{dvips}, unless +% told to use \prog{dvipdfm} or \prog{dvipdfmx}: +% \begin{macrocode} + \ifbool{LWR@dvipdfm}{ +% \end{macrocode} +% For \DVI\ \prog{latex} with \prog{dvipdfm}: +% \begin{macrocode} + \def\LWR@printlatexcmd{% + \LWR@compilecmd{latex}{} + \LWR@addcompilecmd{dvipdfm}{} + } + \def\LWR@HTMLlatexcmd{% + \LWR@compilecmd{latex}{_html} + \LWR@addcompilecmd{dvipdfm}{_html} + } + }{ + \ifbool{LWR@dvipdfmx}{ +% \end{macrocode} +% For \DVI\ \prog{latex} with \prog{dvipdfmx}: +% \begin{macrocode} + \def\LWR@printlatexcmd{% + \LWR@compilecmd{latex}{} + \LWR@addcompilecmd{dvipdfmx}{} + } + \def\LWR@HTMLlatexcmd{% + \LWR@compilecmd{latex}{_html} + \LWR@addcompilecmd{dvipdfmx}{_html} + } + }{% dvips +% \end{macrocode} +% For \DVI\ \prog{latex} with \prog{dvips} and \prog{ps2pdf}: +% \begin{macrocode} + \def\LWR@printlatexcmd{% + \LWR@compilecmd{latex}{} + \LWR@addcompilecmd{dvips}{} + \LWR@addcompilecmd{ps2pdf}{}.ps + } + \def\LWR@HTMLlatexcmd{% + \LWR@compilecmd{latex}{_html} + \LWR@addcompilecmd{dvips}{_html} + \LWR@addcompilecmd{ps2pdf}{_html}.ps + } + } + } + \fi% \ifXeTeX + \fi% \ifpdf +}% latexmk +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\LWR@writeconf} \marg{filename} +% +% Common code for each of \filenm{lwarpmk.conf} and \filenm{<project>.lwarpmkconf}. +% Each entry is a variable name, the equal sign, and a quoted string +% inside |[[| and |]]|, which are \prog{lua}'s long quote characters, allowing the +% use of single and double quotes inside. +% +% \changes{v0.59}{2018/08/21}{Compilation commands now preassigned by \pkg{lwarp} instead +% of being computed by \prog{lwarpmk}.} +% \begin{macrocode} +\newcommand{\LWR@writeconf}[1]{% +\ifcsdef{LWR@quickfile}{}{\newwrite{\LWR@quickfile}} +\immediate\openout\LWR@quickfile=#1 +\immediate\write\LWR@quickfile{confversion = [[\LWR@lwarpconfversion]]} +\ifbool{usingOSWindows}{ + \immediate\write\LWR@quickfile{opsystem = [[Windows]]} +}{ + \immediate\write\LWR@quickfile{opsystem = [[Unix]]} +} +\immediate\write\LWR@quickfile{sourcename = [[\jobname]]} +\immediate\write\LWR@quickfile{homehtmlfilename = [[\HomeHTMLFilename]]} +\immediate\write\LWR@quickfile{htmlfilename = [[\HTMLFilename]]} +\immediate\write\LWR@quickfile{latexmk = [[\ifbool{LWR@latexmk}{true}{false}]]} +\immediate\write\LWR@quickfile{printlatexcmd = [[\LWR@printlatexcmd]]} +\immediate\write\LWR@quickfile{HTMLlatexcmd = [[\LWR@HTMLlatexcmd]]} +\immediate\write\LWR@quickfile{printindexcmd = [[\LWR@PrintIndexCmd]]} +\immediate\write\LWR@quickfile{HTMLindexcmd = [[\LWR@HTMLIndexCmd]]} +\immediate\write\LWR@quickfile{latexmkindexcmd = [[\LWR@LatexmkIndexCmd]]} +\immediate\write\LWR@quickfile{glossarycmd = [[\LWR@GlossaryCmd]]} +\immediate\write\LWR@quickfile{pdftotextenc = [[\LWR@pdftotextEnc]]} +\immediate\closeout\LWR@quickfile +} + +% \end{macrocode} +% \end{macro} + +% \begin{macrocode} +\end{warpprint} +% \end{macrocode} + + + +% \subsubsection{lwarpmk.conf} % % \DescribeFile{lwarpmk.conf} % |lwarpmk.conf| is automatically (re-)created by the \pkg{lwarp} package when @@ -11583,49 +12173,15 @@ top=1in,bottom=1in,% % \codeprint % \begin{macrocode} \begin{warpprint} -\AtBeginDocument{ -\ifcsdef{LWR@quickfile}{}{\newwrite{\LWR@quickfile}} -\immediate\openout\LWR@quickfile=lwarpmk.conf -\ifbool{usingOSWindows}{ -\immediate\write\LWR@quickfile{opsystem = "Windows"} -}{ -\immediate\write\LWR@quickfile{opsystem = "Unix"} -} -\ifPDFTeX -\immediate\write\LWR@quickfile{latexname = "pdflatex"} -\fi -\ifXeTeX -\immediate\write\LWR@quickfile{latexname = "xelatex"} -\fi -\ifLuaTeX -\immediate\write\LWR@quickfile{latexname = "lualatex"} -\fi -\immediate\write\LWR@quickfile{sourcename = "\jobname"} -\immediate\write\LWR@quickfile{% -homehtmlfilename = "\HomeHTMLFilename"% -} -\immediate\write\LWR@quickfile{htmlfilename = "\HTMLFilename"} -\immediate\write\LWR@quickfile{latexmk = "\ifbool{LWR@latexmk}{true}{false}"} -\immediate\write\LWR@quickfile{shellescape = "\ifshellescape true\else false\fi"} -\immediate\write\LWR@quickfile{printindexcmd = "\LWR@PrintIndexCmd"} -\immediate\write\LWR@quickfile{HTMLindexcmd = "\LWR@HTMLIndexCmd"} -\immediate\write\LWR@quickfile{latexmkindexcmd = "\LWR@LatexmkIndexCmd"} -\immediate\write\LWR@quickfile{glossarycmd = "\LWR@GlossaryCmd"} -% \end{macrocode} -% ^^A \immediate\write\LWR@quickfile{makeindexstyle = "\LWR@makeindexStyle"} -% ^^A \immediate\write\LWR@quickfile{xindylanguage = "\LWR@xindyLanguage"} -% ^^A \immediate\write\LWR@quickfile{xindycodepage = "\LWR@xindyCodepage"} -% ^^A \immediate\write\LWR@quickfile{xindystyle = "\LWR@xindyStyle"} -% \begin{macrocode} -\immediate\write\LWR@quickfile{pdftotextenc = "\LWR@pdftotextEnc"} -\immediate\closeout\LWR@quickfile -}% AtBeginDocument + +\AtBeginDocument{\LWR@writeconf{lwarpmk.conf}} + \end{warpprint} % \end{macrocode} -% \subsection{project.lwarpmkconf} +% \subsubsection{<project>.lwarpmkconf} % % \DescribeFile{project.lwarpmkconf} A project-specific configuration file for \prog{lwarpmk}. % @@ -11640,47 +12196,13 @@ homehtmlfilename = "\HomeHTMLFilename"% % \changes{v0.58}{2018/06/20}{\filenm{*.lwarpmkconf}: Added options \optn{makeindex} and \optn{xindy}.} % \changes{v0.58}{2018/06/21}{\filenm{*.lwarpmkconf}: Added option \optn{makeindexstyle}.} % -% The \optn{makeindex} and \optn{xindy} options have already previously been handled +% The \optn{makeindex} and \optn{xindy} options have already been handled % for \filenm{lwarp.conf}. % \begin{macrocode} \begin{warpprint} -\AtBeginDocument{ -\ifcsdef{LWR@quickfile}{}{\newwrite{\LWR@quickfile}} -\immediate\openout\LWR@quickfile=\jobname.lwarpmkconf -\ifbool{usingOSWindows}{ -\immediate\write\LWR@quickfile{opsystem = "Windows"} -}{ -\immediate\write\LWR@quickfile{opsystem = "Unix"} -} -\ifPDFTeX -\immediate\write\LWR@quickfile{latexname = "pdflatex"} -\fi -\ifXeTeX -\immediate\write\LWR@quickfile{latexname = "xelatex"} -\fi -\ifLuaTeX -\immediate\write\LWR@quickfile{latexname = "lualatex"} -\fi -\immediate\write\LWR@quickfile{sourcename = "\jobname"} -\immediate\write\LWR@quickfile{% -homehtmlfilename = "\HomeHTMLFilename"% -} -\immediate\write\LWR@quickfile{htmlfilename = "\HTMLFilename"} -\immediate\write\LWR@quickfile{latexmk = "\ifbool{LWR@latexmk}{true}{false}"} -\immediate\write\LWR@quickfile{shellescape = "\ifshellescape true\else false\fi"} -\immediate\write\LWR@quickfile{printindexcmd = "\LWR@PrintIndexCmd"} -\immediate\write\LWR@quickfile{HTMLindexcmd = "\LWR@HTMLIndexCmd"} -\immediate\write\LWR@quickfile{latexmkindexcmd = "\LWR@LatexmkIndexCmd"} -\immediate\write\LWR@quickfile{glossarycmd = "\LWR@GlossaryCmd"} -% \end{macrocode} -% ^^A \immediate\write\LWR@quickfile{makeindexstyle = "\LWR@makeindexStyle"} -% ^^A \immediate\write\LWR@quickfile{xindylanguage = "\LWR@xindyLanguage"} -% ^^A \immediate\write\LWR@quickfile{xindycodepage = "\LWR@xindyCodepage"} -% ^^A \immediate\write\LWR@quickfile{xindystyle = "\LWR@xindyStyle"} -% \begin{macrocode} -\immediate\write\LWR@quickfile{pdftotextenc = "\LWR@pdftotextEnc"} -\immediate\closeout\LWR@quickfile -}% AtBeginDocument + +\AtBeginDocument{\LWR@writeconf{\jobname.lwarpmkconf}} + \end{warpprint} % \end{macrocode} @@ -13830,6 +14352,8 @@ exit % \changes{v0.42}{2017/10/16}{File: \filenm{lwarp\_mathjax.txt}: Updated \pkg{siunitx} script.} % \changes{v0.45}{2017/12/21}{File: \filenm{lwarp\_mathjax.txt}: Allow \brand{MathJax} inside \env{tabbing}.} % \changes{v0.45}{2018/01/23}{File: \filenm{lwarp\_mathjax.txt}: Allow \brand{MathJax} inside \env{verse}.} +% \changes{v0.59}{2018/07/13}{File: \filenm{lwarp\_mathjax.txt}: Updated to MathJax v2.7.4.} +% \changes{v0.59}{2018/07/16}{File: \filenm{lwarp\_mathjax.txt}: Fix: Removed chapter number from tagged non-numeric MathJax equations.} % % % ^^A *lwarp_mathjax.txt @@ -13856,18 +14380,20 @@ MathJax.Hub.Register.StartupHook("TeX AMSmath Ready",function () { seteqsection.num = AMS.number; var n = this.GetArgument(name); if (n === "") { - seteqsection = seteqsectionDefault; + seteqsection = seteqsectionDefault; } else { - if (!seteqsections["_"+n]) - seteqsections["_"+n] = {name:n, num:0}; - seteqsection = seteqsections["_"+n]; + if (!seteqsections["_"+n]) + seteqsections["_"+n] = {name:n, num:0}; + seteqsection = seteqsections["_"+n]; } AMS.number = seteqsection.num; }, mySetEqNumber: function (name) { var n = this.GetArgument(name); if (!n || !n.match(/^ *[0-9]+ *$/)) - n = ""; else n = parseInt(n)-1; + n = ""; + else + n = parseInt(n)-1; <!-- $ syntax highlighting --> if (n === "" || n < 1) TEX.Error @@ -13878,13 +14404,19 @@ MathJax.Hub.Register.StartupHook("TeX AMSmath Ready",function () { MathJax.Hub.Config({ TeX: { equationNumbers: { - formatTag: function (n) - {return "("+(seteqsection.name+"."+n).replace(/^\./,"")+")"}, - formatID: function (n) { - n = (seteqsection.name+'.'+n).replace - (/[:"'<>&]/g,"").replace(/^\./,""); - return 'mjx-eqn-' + n; - } + formatTag: function (n) { + <!-- if not numeric, don't include the chapter --> + if (!n.match(/^ *[0-9]+ *$/ )) + <!-- $ syntax highlighting --> + return "("+(n).replace(/^\./,"")+")" ; + else + return "("+(seteqsection.name+"."+n).replace(/^\./,"")+")" ; + }, + formatID: function (n) { + n = (seteqsection.name+'.'+n).replace + (/[:"'<>&]/g,"").replace(/^\./,""); + return 'mjx-eqn-' + n; + } } } }); @@ -13924,7 +14456,7 @@ MathJax.Hub.Config({ <!-- Alternative CDN provider: --> <script type="text/javascript" async -src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS_HTML-full"> +src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/MathJax.js?config=TeX-AMS_HTML-full"> </script> <!-- No longer supported after April 30, 2017: --> @@ -14007,6 +14539,11 @@ src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX- % \changes{v0.58}{2018/06/18}{\prog{lwarpmk}: Glossary generation now uses \prog{makeglossaries}.} % \changes{v0.58}{2018/06/20}{\prog{lwarpmk}: Added \optn{makeindex} and \optn{xindy} options.} % \changes{v0.58}{2018/06/20}{\prog{lwarpmk}: \cmds{lwarpmk clean} removes all \filenm{*.ind} and \filenm{*.idx} files.} +% \changes{v0.59}{2018/07/29}{\prog{lwarpmk}: Warning if operating system changed.} +% \changes{v0.59}{2018/07/29}{\prog{lwarpmk}: Error if \filenm{lwarpmk.conf} format changed.} +% \changes{v0.59}{2018/08/05}{\prog{lwarpmk}: Double insead of single-dashed \optn{--shell-escape} option.} +% \changes{v0.59}{2018/08/21}{\prog{lwarpmk}: Consolidated compiling options into \optn{printlatexcmd} and \optn{HTMLlatexcmd}.} +% \changes{v0.59}{2018/09/06}{\prog{lwarpmk}: Added \cmds{lwarpmk epstopdf}.} % % The following is only generated if the \optn{lwarpmk} option % was given to \pkg{lwarp}. @@ -14022,8 +14559,8 @@ src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX- -- Copyright 2016-2018 Brian Dunn -printversion = "v0.58" - +printversion = "v0.59" +requiredconfversion = "1" -- also at *lwarpmk.conf function printhelp () print ("lwarpmk: Use lwarpmk -h or lwarpmk --help for help.") ; @@ -14051,6 +14588,7 @@ lwarpmk pdftohtml [-p project]: Converts project_html.pdf to project_html.html and individual HTML files. Finishes the HTML conversion even if there was a compile error. lwarpmk pdftosvg <list of file names>: Converts each PDF file to SVG. +lwarpmk epstopdf <list of file names>: Converts each EPS file to PDF. lwarpmk clean [-p project]: Remove .aux, .toc, .lof/t, .idx, .ind, .log, *_html_inc.*, .gl* lwarpmk cleanall [-p project]: Remove auxiliary files and also project.pdf, *.html lwarpmk cleanlimages: Removes all images from the "lateximages" directory. @@ -14062,39 +14600,6 @@ lwarpmk --help: Print this help message. end --- function printconf () --- -- --- -- Print the format of the configuration file lwarpmk.conf: --- -- --- print ( [[ --- An example lwarpmk.conf or <project>.lwarpmkconf project file: --- -- --- opsystem = "Unix" (or "Windows") --- latexname = "pdflatex" (or "lualatex", or "xelatex") --- sourcename = "projectname" (the source-code filename w/o .tex) --- homehtmlfilename = "index" (or perhaps the project name) --- htmlfilename = "" (or "projectname" - filename prefix) --- latexmk = "false" (or "true" to use latexmk to build PDFs) --- shellescape = "false" --- printindexcmd = "makeindex -s lwarp.ist <name>.idx" --- HTMLindexcmd = "makeindex -s lwarp.ist <name>_html.idx" --- latexmkindexcmd = "makeindex -s lwarp.ist" --- -- indexprog = "makeindex" or "xindy" --- -- makeindexstyle = "lwarp.ist" (or a custom file based on lwarp.ist) --- -- xindylanguge = "english" (use a language supported by xindy) --- -- xindycodepage = "utf8" (use a codepage supported by xindy) --- -- xindystyle = "lwarp.xdy" (or a custom file based on lwarp.xdy) --- glossarycmd = "makeglossaries" --- pdftotextenc = "UTF-8" (use an encoding supported by pdftotext) --- -- --- Filenames must contain only letters, numbers, underscore, or dash. --- Values must be in upright "quotes". --- --- ]] ) ; --- end - - - function splitfile (destfile,sourcefile) -- -- Split one large sourcefile into a number of files, @@ -14134,6 +14639,11 @@ function cvalueerror ( line, linenum , cvalue ) end +function ignoreconf () +-- Global argument index +argindex = 2 +end + function loadconf () -- -- Load settings from the project's "lwarpmk.conf" file: @@ -14151,9 +14661,11 @@ if ( arg[argindex] == "-p" ) then argindex = argindex + 1 end -- Additional defaults: +confversion = "0" opsystem = "Unix" latexmk = "false" -shellescape = "false" +printlatexcmd = "" +HTMLlatexcmd = "" printindexcmd = "" HTMLindexcmd = "" latexmkindexcmd = "" @@ -14186,11 +14698,11 @@ else -- file exists -- Read the file: print ("lwarpmk: Reading " .. conffile ..".") local cfile = io.open(conffile) --- Scan each line: +-- Scan each line, parsing each line as: name = [[string]] local linenum = 0 for line in cfile:lines() do -- scan lines linenum = linenum + 1 -i,j,cvarname,cvalue = string.find (line,"([%w-_]*)%s*=%s*\"([^\"]*)\"") ; +i,j,cvarname,cvalue = string.find (line,"([%w-_]*)%s*=%s*%[%[([^%]]*)%]%]") ; -- Error if incorrect enclosing characters: if ( i == nil ) then print ("lwarpmk: ===") @@ -14200,48 +14712,25 @@ if ( i == nil ) then -- printconf () ; os.exit(1) ; end -- nil -if ( cvarname == "opsystem" ) then +if ( cvarname == "confversion" ) then + confversion = cvalue +elseif ( cvarname == "opsystem" ) then -- Verify choice of opsystem: if ( (cvalue == "Unix") or (cvalue == "Windows") ) then opsystem = cvalue else cvalueerror ( line, linenum , cvalue ) end -elseif ( cvarname == "latexname" ) then - -- Verify choice of LaTeX compiler: - if ( - (cvalue == "pdflatex") or - (cvalue == "xelatex") or - (cvalue == "lualatex") - ) then - latexname = cvalue - else - cvalueerror ( line, linenum , cvalue ) - end elseif ( cvarname == "sourcename" ) then sourcename = cvalue elseif ( cvarname == "homehtmlfilename" ) then homehtmlfilename = cvalue elseif ( cvarname == "htmlfilename" ) then htmlfilename = cvalue elseif ( cvarname == "latexmk" ) then latexmk = cvalue -elseif ( cvarname == "shellescape" ) then shellescape = cvalue +elseif ( cvarname == "printlatexcmd" ) then printlatexcmd = cvalue +elseif ( cvarname == "HTMLlatexcmd" ) then HTMLlatexcmd = cvalue elseif ( cvarname == "printindexcmd" ) then printindexcmd = cvalue elseif ( cvarname == "HTMLindexcmd" ) then HTMLindexcmd = cvalue elseif ( cvarname == "latexmkindexcmd" ) then latexmkindexcmd = cvalue elseif ( cvarname == "glossarycmd" ) then glossarycmd = cvalue --- to be removed: --- elseif ( cvarname == "indexprog" ) then --- -- Verify choice of indexing program: --- if ( --- (cvalue == "makeindex") or --- (cvalue == "xindy") --- ) then --- indexprog = cvalue --- else --- cvalueerror ( line, linenum , cvalue ) --- end --- elseif ( cvarname == "makeindexstyle" ) then makeindexstyle = cvalue --- elseif ( cvarname == "xindylanguage" ) then xindylanguage = cvalue --- elseif ( cvarname == "xindycodepage" ) then xindycodepage = cvalue --- elseif ( cvarname == "xindystyle" ) then xindystyle = cvalue elseif ( cvarname == "pdftotextenc" ) then pdftotextenc = cvalue else print ("lwarpmk: ===") @@ -14261,7 +14750,7 @@ end -- file exists -- This could happen if a local copy of lwarp has recently been recompiled. if sourcename=="lwarp" then print ("lwarpmk: ===") - print ("lwarpmk: Lwarp has recently been recompiled in this directory,") + print ("lwarpmk: lwarp.sty has recently been recompiled in this directory,") print ("lwarpmk: and \"lwarpmk.conf\" is no longer set for your own project.") print ("lwarpmk: Recompile your own project using pdf/lua/xelatex <projectname>.") print ("lwarpmk: After a recompile, \"lwarpmk.conf\" will be set for your project,") @@ -14296,9 +14785,33 @@ elseif opsystem=="Windows" then -- For Windows cmdgroupclosename = "" seqname = " & " bgname = "" -else print ( "lwarpmk: Select Unix or Windows for opsystem" ) +else + print ("lwarpmk: ===") + print ("lwarpmk: Select Unix or Windows for opsystem." ) + print ("lwarpmk: ===") + os.exit(1) end --- for Windows - +-- Warning if the operating system does not appear to be correct, +-- in case files were transferred to another system. +if ( (package.config:sub(1,1)) ~= dirslash ) then + print ("lwarpmk: ===") + print ("lwarpmk: It appears that lwarpmk.conf is for a different operating system." ) + print ("lwarpmk: To adjust lwarpmk.conf for the current operating system," ) + print ("lwarpmk: recompile the original document using xe/lua/pdflatex." ) + print ("lwarpmk: ") + print ("lwarpmk: lwarpmk shall attempt to continue...") + print ("lwarpmk: ===") +end +-- Error if the configuration file's version is not current: +if ( confversion ~= requiredconfversion ) then + print ("lwarpmk: ===") + print ("lwarpmk: The configuration files lwarpmk.conf and "..sourcename..".lwarpmkconf" ) + print ("lwarpmk: must be updated. To update the configuration files," ) + print ("lwarpmk: recompile "..sourcename..".tex using xe/lua/pdflatex," ) + print ("lwarpmk: then use lwarpmk again.") + print ("lwarpmk: ===") + os.exit(1) +end end -- loadconf @@ -14343,36 +14856,30 @@ end -function onetime (fsuffix) +function onetime (latexcmd, fsuffix) -- -- Compile one time, return true if should compile again. -- fsuffix is "" for print, "_html" for HTML output. -- -print("lwarpmk: Compiling with " .. latexname .. " " .. sourcename..fsuffix) -local thisshellescape = " " -if ( shellescape == "true" ) then - thisshellescape = " -shell-escape " -else - thisshellescape = " " -end +print("lwarpmk: Compiling with: " .. latexcmd) executecheckerror ( - latexname .. thisshellescape .. sourcename..fsuffix , + latexcmd , "Compile error." ) return (reruntoget(sourcename .. fsuffix .. ".log") ) ; end -function manytimes (fsuffix) +function manytimes (latexcmd, fsuffix) -- -- Compile up to five times. -- fsuffix is "" for print, "_html" for HTML output -- -if onetime(fsuffix) == true then -if onetime(fsuffix) == true then -if onetime(fsuffix) == true then -if onetime(fsuffix) == true then -if onetime(fsuffix) == true then +if onetime(latexcmd, fsuffix) == true then +if onetime(latexcmd, fsuffix) == true then +if onetime(latexcmd, fsuffix) == true then +if onetime(latexcmd, fsuffix) == true then +if onetime(latexcmd, fsuffix) == true then end end end end end end @@ -14408,7 +14915,7 @@ end function removeaux () -- -- Remove auxiliary files: --- All aux files are removed since there may be many bbl*.aux files. +-- All .aux files are removed since there may be many bbl*.aux files. -- os.execute ( rmname .. " *.aux " .. sourcename ..".toc " .. sourcename .. "_html.toc " .. @@ -14416,6 +14923,7 @@ os.execute ( rmname .. " *.aux " .. sourcename ..".lot " .. sourcename .. "_html.lot " .. " *.idx " .. " *.ind " .. + sourcename ..".ps " .. sourcename .."_html.ps " .. sourcename ..".log " .. sourcename .. "_html.log " .. sourcename ..".gl* " .. sourcename .. "_html.gl* " .. " *_html_inc.* " @@ -14648,34 +15156,22 @@ end -- pagezerowarning end -- function -function compilelatexmk ( fsuffix ) +function convertepstopdf () -- --- Use latexmk to compile source and index: --- fsuffix is "" for print, or "_html" for HTML +-- Converts EPS files to PDF files. +-- The filenames are arg[argindex] and up. +-- arg[1] is the command "pdftosvg". -- --- Maybe select the shell-escape option: -local thisshellescape = " " -if ( shellescape == "true" ) then - thisshellescape = " -shell-escape " -else - thisshellescape = " " -end --- The recorder option is required to detect changes in <project>.tex --- while we are loading <project>_html.tex. -executecheckerror ( - "latexmk -pdf -dvi- -ps- -recorder " - .. "-e " - .. opquote - .. "$makeindex = q/" -- $ - .. latexmkindexcmd - .. " /" - .. opquote - .. " -pdflatex=\"" .. latexname .. thisshellescape .." %O %S\" " - .. sourcename..fsuffix ..".tex" - , - "Compile error." -) -end -- function +ignoreconf () +for i = argindex , #arg do + if (lfs.attributes(arg[i],"mode")==nil) then + print ("lwarpmk: File \"" .. arg[i] .. "\" does not exist.") + else + print ("lwarpmk: Converting \"" .. arg[i] .. "\"") + os.execute ( "epstopdf " .. arg[i] ) + end -- if +end -- do +end --function function convertpdftosvg () @@ -14684,6 +15180,7 @@ function convertpdftosvg () -- The filenames are arg[argindex] and up. -- arg[1] is the command "pdftosvg". -- +ignoreconf () for i = argindex , #arg do if (lfs.attributes(arg[i],"mode")==nil) then print ("lwarpmk: File \"" .. arg[i] .. "\" does not exist.") @@ -14725,7 +15222,11 @@ print ("lwarpmk: " .. printversion .. " Automated make for the LaTeX lwarp pack if arg[1] == "print" then loadconf () if ( latexmk == "true" ) then - compilelatexmk ("") + print ("lwarpmk: Compiling with: " .. printlatexcmd) + executecheckerror ( + printlatexcmd , + "Compile error." + ) print ("lwarpmk: Done.") else -- not latexmk verifyfileexists (sourcename .. ".tex") ; @@ -14738,7 +15239,7 @@ else -- not latexmk ) ) then -- Recompile if not yet up to date: - manytimes("") + manytimes(printlatexcmd, "") print ("lwarpmk: Done.") ; else print ("lwarpmk: " .. sourcename .. ".pdf is up to date.") ; @@ -14751,7 +15252,7 @@ end -- not latexmk elseif arg[1] == "print1" then loadconf () verifyfileexists (sourcename .. ".tex") ; - onetime("") + onetime(printlatexcmd, "") print ("lwarpmk: Done.") ; @@ -14783,7 +15284,11 @@ updateanddone () elseif arg[1] == "html" then loadconf () if ( latexmk == "true" ) then - compilelatexmk ("_html") + print ("lwarpmk: Compiling with: " .. HTMLlatexcmd) + executecheckerror ( + HTMLlatexcmd , + "Compile error." + ) pdftohtml () print ("lwarpmk: Done.") else -- not latexmk @@ -14797,7 +15302,7 @@ else -- not latexmk ) ) then -- Recompile if not yet up to date: - manytimes("_html") + manytimes(HTMLlatexcmd, "_html") pdftohtml () print ("lwarpmk: Done.") else @@ -14811,7 +15316,7 @@ end -- not latexmk elseif arg[1] == "html1" then loadconf () verifyfileexists ( sourcename .. ".tex" ) ; - onetime("_html") + onetime(HTMLlatexcmd, "_html") pdftohtml () print ("lwarpmk: Done.") @@ -14874,13 +15379,14 @@ print ("lwarpmk: Done.") -- lwarpmk cleanall -- Remove project.aux, .toc, .lof, .lot, .log, *.idx, *.ind, *_html_inc.*, .gl* --- and also project.pdf, *.html +-- and also project.pdf, project.dvi, *.html elseif arg[1] == "cleanall" then loadconf () removeaux () os.execute ( rmname .. " " .. sourcename .. ".pdf " .. sourcename .. "_html.pdf " .. + sourcename .. ".dvi " .. sourcename .. "_html.dvi " .. "*.html" ) print ("lwarpmk: Done.") @@ -14894,8 +15400,15 @@ loadconf () os.execute ( rmname .. " lateximages/*" ) print ("lwarpmk: Done.") +-- lwarpmk epstopdf <list of file names> +-- Convert EPS files to PDF using epstopdf +elseif arg[1] == "epstopdf" then +convertepstopdf () +print ("lwarpmk: Done.") + + -- lwarpmk pdftosvg <list of file names> --- Convert PDf files to SVG using pdftocairo +-- Convert PDF files to SVG using pdftocairo elseif arg[1] == "pdftosvg" then convertpdftosvg () print ("lwarpmk: Done.") @@ -17674,7 +18187,7 @@ end -- not --version \newcommand{\LWR@customizeMathJax}{% \ifbool{mathjax}{ \LWR@stoppars -\LWR@htmlcomment{Nullify \textbackslash{}ensuremath for MathJax:} +\LWR@htmlcomment{Nullify \textbackslash{}ensuremath, footnotes for MathJax:} \(\newcommand\ensuremath[1]{##1}\) @@ -23517,7 +24030,6 @@ rowspan="#2" % % |\@ifpackageloaded{multirow}| determines if v2.0 or later of % \pkg{multirow} was used, which included the \cs{ProvidesPackage} macro. % -% \begin{macrocode} % The print version: % \begin{macrocode} \@ifpackageloaded{multirow}{% v2.0 or newer @@ -26499,6 +27011,7 @@ autopage-\theLWR@currentautosec% % \DescribeFile{lwarp_baseline_marker.png} +% \DescribeFile{lwarp_baseline_marker.eps} % A marker to be used to help \prog{pdfcrop} identify the inline math baseline % and width. If either \pkg{graphicx} or \pkg{graphics} is loaded, this marker is % placed at the lower left and lower right corners of the inline math. @@ -26525,36 +27038,41 @@ autopage-\theLWR@currentautosec% % \changes{v0.51}{2018/03/16}{Improved \SVG\ math baseline.} % \changes{v0.52}{2018/03/24}{Warnings if \filenm{lwarp\_baseline\_marker.png} is not present % or if graphicx/s not loaded.} +% \changes{v0.59}{2018/09/02}{Uses \filenm{.eps} if \DVI\ \prog{latex}.} % \begin{macrocode} \AtBeginDocument{ -\IfFileExists{lwarp_baseline_marker.png}% +\ifpdf + \newcommand*{\LWR@baselinename}{lwarp_baseline_marker.png} +\else + \ifXeTeX + \newcommand*{\LWR@baselinename}{lwarp_baseline_marker.png} + \else + \newcommand*{\LWR@baselinename}{lwarp_baseline_marker.eps} + \fi +\fi + +\IfFileExists{\LWR@baselinename}% { \@ifpackageloaded{graphicx}{ \newcommand*{\LWR@addbaselinemarker}{% - \LWR@origincludegraphics[% - width=10sp,height=10sp% - ]{lwarp_baseline_marker.png}% + \LWR@origincludegraphics{\LWR@baselinename}% } }{ \@ifpackageloaded{graphics}{ \newcommand*{\LWR@addbaselinemarker}{% - \LWR@origincludegraphics{lwarp_baseline_marker.png}% + \LWR@origincludegraphics{\LWR@baselinename}% } }{ \PackageWarning{lwarp}{Load graphicx or graphics for improved SVG math baselines,} - \newcommand*{\LWR@addbaselinemarker}{% - \hspace*{10sp}% - } + \newcommand*{\LWR@addbaselinemarker}{} } } -}{% lwarp_baseline_marker.png not present - \PackageWarning{lwarp}{File lwarp_baseline_marker.png is not installed alongside +}{% lwarp_baseline_marker.png or .eps is not present + \PackageWarning{lwarp}{File \LWR@baselinename\space is not installed alongside the lwarp-*.sty files, so SVG math baselines may not be accurate,} - \newcommand*{\LWR@addbaselinemarker}{% - \hspace*{10sp}% - } + \newcommand*{\LWR@addbaselinemarker}{} } }% AtBeginDocument @@ -26698,7 +27216,6 @@ autopage-\theLWR@currentautosec% % \begin{macrocode} \global\sbox{\LWR@singledollarbox}{% \usebox{\LWR@singledollarbox}% - \hspace*{-10sp}% \raisebox{-\dp\LWR@singledollarbox}{% \LWR@addbaselinemarker% }% @@ -26836,7 +27353,6 @@ autopage-\theLWR@currentautosec% % \changes{v0.51}{2018/03/10}{SVG math baseline improved with invisible rule at corner.} % \begin{macrocode} \LWR@addbaselinemarker% - \hspace*{-10sp}% % \end{macrocode} % Typeset the contents: % \begin{macrocode} @@ -26844,7 +27360,6 @@ autopage-\theLWR@currentautosec% % \end{macrocode} % The closing baseline marker: % \begin{macrocode} - \hspace*{-10sp}% \LWR@addbaselinemarker% % \end{macrocode} % \begin{macrocode} @@ -26966,16 +27481,22 @@ autopage-\theLWR@currentautosec% % \begin{macro}{\(} -% \begin{macro}{\)} +% \begin{macro}{\[} % Redefine to the above dollar macros. % \begin{macrocode} +\AtBeginDocument{ \protected\gdef\(#1\){$#1$} \protected\gdef\[#1\]{$$#1$$} +} \endgroup - +% \end{macrocode} +% \changes{v0.59}{2018/08/23}{Fix with \cs{displaymathnormal}.} +% \begin{macrocode} +\AtBeginDocument{ \LetLtxMacro\LWR@openbracketnormal\[ \LetLtxMacro\LWR@closebracketnormal\] +} % \end{macrocode} % \end{macro} % \end{macro} @@ -27243,10 +27764,12 @@ autopage-\theLWR@currentautosec% % % Remember existing \env{equation} environment: % \begin{macrocode} +\AtBeginDocument{ \let\LWR@origequation\equation \let\LWR@origendequation\endequation \csletcs{LWR@origequation*}{equation*} \csletcs{LWR@origendequation*}{endequation*} +} % \end{macrocode} % % @@ -27352,10 +27875,12 @@ autopage-\theLWR@currentautosec% % Remove existing \env{equation} environment: % \begin{macrocode} +\AtBeginDocument{ \let\equation\relax \let\endequation\relax \csletcs{equation*}{relax} \csletcs{endequation*}{relax} +} % \end{macrocode} @@ -27365,36 +27890,42 @@ autopage-\theLWR@currentautosec% % which stores the contents of its environment in a % macro called \cs{BODY}. % \begin{macrocode} +\AtBeginDocument{ \NewEnviron{equation}% {\LWR@doequation{\BODY}{equation}}% [\LWR@doendequation{equation}] \LetLtxMacro\LWR@equationnormal\equation -\LetLtxMacro\LWR@endequationnormal\endequation +\LetLtxMacro\endLWR@equationnormal\endequation +} % \end{macrocode} % \end{environment} % \begin{environment}{equation*} % \begin{macrocode} +\AtBeginDocument{ \NewEnviron{equation*}% {\LWR@doequation{\BODY}{equation*}}% [\LWR@doendequation{equation*}] \csletcs{LWR@equationnormalstar}{equation*} \csletcs{LWR@endequationnormalstar}{endequation*} +} % \end{macrocode} % \end{environment} -% Remember the ``less'' version of \env{equation}, which use \brand{MathJax} +% Remember the ``less'' version of \env{equation}, which uses \brand{MathJax} % and \attribute{alt} tags, but does not support complicated contents such as % some \tikz\ expressions. % \begin{macrocode} +\AtBeginDocument{ \LetLtxMacro\LWR@equationless\equation -\LetLtxMacro\LWR@endequationless\endequation +\LetLtxMacro\endLWR@equationless\endequation \csletcs{LWR@equationlessstar}{equation*} \csletcs{LWR@endequationlessstar}{endequation*} +} % \end{macrocode} @@ -27414,7 +27945,7 @@ autopage-\theLWR@currentautosec% \LetLtxMacro\displaymath\LWR@displaymathnormal% \LetLtxMacro\enddisplaymath\endLWR@displaymathnormal% \LetLtxMacro\equation\LWR@equationnormal% -\LetLtxMacro\endequation\LWR@endequationnormal% +\LetLtxMacro\endequation\endLWR@equationnormal% \csletcs{equation*}{LWR@equationnormalstar}% \csletcs{endequation*}{LWR@endequationnormalstar}% } @@ -27572,7 +28103,7 @@ autopage-\theLWR@currentautosec% % \changes{v0.33}{2017/06/20}{Fix: Incorrectly-inline math environments.} % \changes{v0.34}{2017/07/29}{Fix: Added the \env{eqnarray} environments.} % -% The following \pkg{amsmath} environments already collect their contents +% The \pkg{amsmath} environments already collect their contents % in \cs{@envbody} for further processing. \env{eqnarray} is not an \AmS\ package, % and thus requires special handling. % @@ -27718,335 +28249,6 @@ autopage-\theLWR@currentautosec% % \end{environment} % % -% The following \AmS\ environments are more easily patched in-place: -% -% \changes{v0.44}{2017/11/16}{AMS environments: Fix: Groups for \env{lateximage}s.} -% \changes{v0.50}{2018/03/01}{AMS environments: Improved \SVG\ math display.} -% \changes{v0.51}{2018/03/11}{AMS environments: Fix: \cs{addcontentsline} inside \SVG\ math. Provides an autoid anchor.} -% -% \begin{environment}{multline} -% \begin{macrocode} -\BeforeBeginEnvironment{multline}{ - -\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% -{ - \LWR@syncmathjax - \booltrue{LWR@amsmultline} - \LWR@beginhideamsmath -} -{ - \begin{BlockClass}{displaymathnumbered} - \LWR@newautoidanchor% - \booltrue{LWR@indisplaymathimage}% - \begin{lateximage}[\LWR@amsmathbodynumbered{multline}] -} -} - -\AfterEndEnvironment{multline}{ - -\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% -{ - \LWR@endhideamsmath - \boolfalse{LWR@amsmultline} - \LWR@addmathjax{multline}{\the\@envbody} -} -{\end{lateximage}\end{BlockClass}} - -} -% \end{macrocode} -% \end{environment} - - -% \begin{environment}{multline*} -% \begin{macrocode} -\BeforeBeginEnvironment{multline*}{ - -\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% -{ - \LWR@syncmathjax - \booltrue{LWR@amsmultline} - \LWR@beginhideamsmath -} -{ - \begin{BlockClass}{displaymath} - \LWR@newautoidanchor - \booltrue{LWR@indisplaymathimage}% - \begin{lateximage}[\LWR@amsmathbody{multline*}] -} -} - -\AfterEndEnvironment{multline*}{ - -\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% -{ - \LWR@endhideamsmath - \boolfalse{LWR@amsmultline} - \LWR@addmathjax{multline*}{\the\@envbody} -} -{\end{lateximage}\end{BlockClass}} - -} - -% \end{macrocode} -% \end{environment} - - -% \begin{environment}{gather} -% \begin{macrocode} -\BeforeBeginEnvironment{gather}{ - -\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% -{ - \LWR@syncmathjax - \boolfalse{LWR@amsmultline} - \LWR@beginhideamsmath -} -{ - \begin{BlockClass}{displaymathnumbered} - \LWR@newautoidanchor% - \booltrue{LWR@indisplaymathimage}% - \begin{lateximage}[\LWR@amsmathbodynumbered{gather}] -} -} - -\AfterEndEnvironment{gather}{ - -\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% -{ - \LWR@endhideamsmath - \LWR@addmathjax{gather}{\the\@envbody} -} -{\end{lateximage}\end{BlockClass}} - -} -% \end{macrocode} -% \end{environment} - -% \begin{environment}{gather*} -% \begin{macrocode} -\BeforeBeginEnvironment{gather*}{ - -\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% -{ - \LWR@syncmathjax - \boolfalse{LWR@amsmultline} - \LWR@beginhideamsmath -} -{ - \begin{BlockClass}{displaymath} - \LWR@newautoidanchor% - \booltrue{LWR@indisplaymathimage}% - \begin{lateximage}[\LWR@amsmathbody{gather*}] -} -} - -\AfterEndEnvironment{gather*}{ - -\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% -{ - \LWR@endhideamsmath - \LWR@addmathjax{gather*}{\the\@envbody} -} -{\end{lateximage}\end{BlockClass}} - -} -% \end{macrocode} -% \end{environment} - - -% \begin{environment}{align} -% \begin{macrocode} -\BeforeBeginEnvironment{align}{ - -\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% -{ - \LWR@syncmathjax - \boolfalse{LWR@amsmultline} - \LWR@beginhideamsmath -} -{ - \begin{BlockClass}{displaymathnumbered} - \LWR@newautoidanchor% - \booltrue{LWR@indisplaymathimage}% - \begin{lateximage}[\LWR@amsmathbodynumbered{align}] -} -} - -\AfterEndEnvironment{align}{ - -\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% -{ - \LWR@endhideamsmath - \LWR@addmathjax{align}{\the\@envbody} -} -{\end{lateximage}\end{BlockClass}} - -} -% \end{macrocode} -% \end{environment} - - -% \begin{environment}{align*} -% \begin{macrocode} -\BeforeBeginEnvironment{align*}{ - -\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% -{ - \LWR@syncmathjax - \boolfalse{LWR@amsmultline} - \LWR@beginhideamsmath -} -{ - \begin{BlockClass}{displaymath} - \LWR@newautoidanchor% - \booltrue{LWR@indisplaymathimage}% - \begin{lateximage}[\LWR@amsmathbody{align*}] -} -} - -\AfterEndEnvironment{align*}{ - -\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% -{ - \LWR@endhideamsmath - \LWR@addmathjax{align*}{\the\@envbody} -} -{\end{lateximage}\end{BlockClass}} - -} -% \end{macrocode} -% \end{environment} - - -% \begin{environment}{flalign} -% \begin{macrocode} -\BeforeBeginEnvironment{flalign}{ - -\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% -{ - \LWR@syncmathjax - \boolfalse{LWR@amsmultline} - \LWR@beginhideamsmath -} -{ - \begin{BlockClass}{displaymathnumbered} - \LWR@newautoidanchor% - \booltrue{LWR@indisplaymathimage}% - \begin{lateximage}[\LWR@amsmathbodynumbered{flalign}] -} -} - -\AfterEndEnvironment{flalign}{ - -\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% -{ - \LWR@endhideamsmath - \LWR@addmathjax{flalign}{\the\@envbody} -} -{\end{lateximage}\end{BlockClass}} - -} -% \end{macrocode} -% \end{environment} - - -% \begin{environment}{flalign*} -% \begin{macrocode} -\BeforeBeginEnvironment{flalign*}{ - -\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% -{ - \LWR@syncmathjax - \boolfalse{LWR@amsmultline} - \LWR@beginhideamsmath -} -{ - \begin{BlockClass}{displaymath} - \LWR@newautoidanchor% - \booltrue{LWR@indisplaymathimage}% - \begin{lateximage}[\LWR@amsmathbody{flalign*}] -} -} - -\AfterEndEnvironment{flalign*}{ - -\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% -{ - \LWR@endhideamsmath - \LWR@addmathjax{flalign*}{\the\@envbody} -} -{\end{lateximage}\end{BlockClass}} - -} -% \end{macrocode} -% \end{environment} - - -% \begin{environment}{alignat} -% \changes{v0.51}{2018/03/11}{Fix: Added.} -% \begin{macrocode} -\BeforeBeginEnvironment{alignat}{ - -\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% -{ - \LWR@syncmathjax - \boolfalse{LWR@amsmultline} - \LWR@beginhideamsmath -} -{ - \begin{BlockClass}{displaymathnumbered} - \LWR@newautoidanchor% - \booltrue{LWR@indisplaymathimage}% - \begin{lateximage}[\LWR@amsmathbodynumbered{alignat}] -} -} - -\AfterEndEnvironment{alignat}{ - -\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% -{ - \LWR@endhideamsmath - \LWR@addmathjax{alignat}{\the\@envbody} -} -{\end{lateximage}\end{BlockClass}} - -} -% \end{macrocode} -% \end{environment} - - -% \begin{environment}{alignat*} -% \begin{macrocode} -\BeforeBeginEnvironment{alignat*}{ - -\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% -{ - \LWR@syncmathjax - \boolfalse{LWR@amsmultline} - \LWR@beginhideamsmath -} -{ - \begin{BlockClass}{displaymath} - \LWR@newautoidanchor% - \booltrue{LWR@indisplaymathimage}% - \begin{lateximage}[\LWR@amsmathbody{alignat*}] -} -} - -\AfterEndEnvironment{alignat*}{ - -\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% -{ - \LWR@endhideamsmath - \LWR@addmathjax{alignat*}{\the\@envbody} -} -{\end{lateximage}\end{BlockClass}} - -} -% \end{macrocode} -% \end{environment} - - % \begin{macrocode} \end{warpHTML} % \end{macrocode} @@ -28365,21 +28567,7 @@ autopage-\theLWR@currentautosec% % \end{macrocode} % \end{macro} -% Patches for \AmS\ math \cs{tag} macro to remember the first tag: % \begin{macrocode} -\LetLtxMacro\LWR@origmake@df@tag@@\make@df@tag@@ -\LetLtxMacro\LWR@origmake@df@tag@@@\make@df@tag@@@ - -\renewcommand*{\make@df@tag@@}[1]{% -\LWR@remembertag{#1}% -\LWR@origmake@df@tag@@{#1}% -} - -\renewcommand*{\make@df@tag@@@}[1]{% -\LWR@remembertag{#1}% -\LWR@origmake@df@tag@@@{#1}% -} - }% not mathjax }% AtBeginDocument % \end{macrocode} @@ -28869,21 +29057,21 @@ autopage-\theLWR@currentautosec% % perhaps as part of the font-related packages, % explicitly load the lwarp patches now: % \begin{macrocode} -\@ifpackageloaded{textcomp} -{ -\LWR@origRequirePackage{lwarp-textcomp} -} -{} +\@ifpackageloaded{textcomp}{\LWR@origRequirePackage{lwarp-textcomp}}{} +% \end{macrocode} + +% If \pkg{xunicode} was loaded before \pkg{lwarp}, +% perhaps as part of the font-related packages, +% explicitly load the lwarp patches now: +% \begin{macrocode} +\@ifpackageloaded{xunicode}{\LWR@origRequirePackage{lwarp-xunicode}}{} % \end{macrocode} % If \pkg{graphics} or \pkg{graphicx} were loaded before \pkg{lwarp}, % perhaps by \pkg{xunicode}, explicitly load the lwarp patches now: % \begin{macrocode} -\@ifpackageloaded{graphics} -{ -\LWR@origRequirePackage{lwarp-graphics} -} -{} +\@ifpackageloaded{graphics}{\LWR@origRequirePackage{lwarp-graphics}}{} +\@ifpackageloaded{graphicx}{\LWR@origRequirePackage{lwarp-graphicx}}{} % \end{macrocode} % \begin{macrocode} @@ -29456,8 +29644,9 @@ autopage-\theLWR@currentautosec% % \changes{v0.24}{2017/03/13}{Fix for inline images.} % \changes{v0.26}{2017/03/30}{Fix for \cs{makebox} in \env{picture}.} % \changes{v0.44}{2017/11/16}{\pkg{overpic}: Fix: Groups for lateximages.} +% \changes{v0.59}{2018/09/05}{Added an \attribute{alt} tag.} % \begin{macrocode} -\BeforeBeginEnvironment{picture}{\begin{lateximage}} +\BeforeBeginEnvironment{picture}{\begin{lateximage}[(picture)]} \AfterEndEnvironment{picture}{\end{lateximage}} % \end{macrocode} @@ -31413,7 +31602,7 @@ width:\LWR@printlength{\LWR@tempwidth}% % % \changes{v0.20}{2016/12/12}{Code factored into independent \filenm{lwarp\_html} files.} % -% The following adjustments apply to the lwarp-* package listings: +% ^^A The following adjustments apply to the lwarp-* package listings: % % \titleformat{\part}[hang] % {\hrule\nopagebreak[4]\large\ttfamily\bfseries}{}{0pt}{}[\marginpar{\hfill{}File\,\thepart}] @@ -31663,6 +31852,36 @@ width:\LWR@printlength{\LWR@tempwidth}% % % % \iffalse +%<*accsupp> +% \fi +% +% \part{lwarp-accsupp.sty} +% +% \section{accsupp} +% +% \DescribePackage{accsupp} +% \pkg{accsupp} is ignored. +% +% \changes{v0.59}{2018/07/25}{\pkg{accsupp}: Added.} +% +% \codehtml +% +% \begin{macrocode} +\LWR@ProvidesPackageDrop{accsupp} +% \end{macrocode} +% +% \begin{macrocode} +\newcommand*{\BeginAccSupp}[1]{} +\newcommand*{\EndAccSupp}[1]{} +% \end{macrocode} +% +% \iffalse +%</accsupp> +% \fi +% +% +% +% \iffalse %<*acro> % \fi % @@ -32401,6 +32620,394 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"% % % % +% +% \iffalse +%<*amsmath> +% \fi +% +% \part{lwarp-amsmath.sty} +% +% \section{amsmath} +% +% \credits{American Mathematical Society, \LaTeX3 Project} +% +% \DescribePackage{amsmath} +% \pkg{amsmath} is patched for use by \pkg{lwarp}. +% +% \changes{v0.33}{2016/06/21}{\pkg{amsmath}: Removed \optn{fleqn} option.} +% \changes{v0.59}{2018/07/13}{\pkg{amsmath}: Moved from the \pkg{lwarp} core.} +% +% \codehtml +% +% \begin{macrocode} +\LWR@ProvidesPackagePass{amsmath} +% \end{macrocode} +% +% Patches to allow \cs{eqref} inside a caption: +% +% \changes{v0.49}{2018/02/18}{\pkg{amsmath}: Fix: Patches for \cs{eqref}.} +% \changes{v0.50}{2018/03/02}{\pkg{amsmath}: Fix: Upright tags for \SVG math.} +% \begin{macrocode} +\def\maketag@@@#1{\text{#1}} +\def\tagform@#1{\maketag@@@{(\ignorespaces#1\unskip)}} +% \end{macrocode} + +% Patches for \AmS\ math \cs{tag} macro to remember the first tag: +% \begin{macrocode} +\ifbool{mathjax}{}{% not mathjax + +\LetLtxMacro\LWR@origmake@df@tag@@\make@df@tag@@ +\LetLtxMacro\LWR@origmake@df@tag@@@\make@df@tag@@@ + +\renewcommand*{\make@df@tag@@}[1]{% +\LWR@remembertag{#1}% +\LWR@origmake@df@tag@@{#1}% +} + +\renewcommand*{\make@df@tag@@@}[1]{% +\LWR@remembertag{#1}% +\LWR@origmake@df@tag@@@{#1}% +} + +}% not mathjax +% \end{macrocode} +% +% The following \AmS\ environments are more easily patched in-place: +% +% \changes{v0.44}{2017/11/16}{AMS environments: Fix: Groups for \env{lateximage}s.} +% \changes{v0.50}{2018/03/01}{AMS environments: Improved \SVG\ math display.} +% \changes{v0.51}{2018/03/11}{AMS environments: Fix: \cs{addcontentsline} inside \SVG\ math. Provides an autoid anchor.} +% +% \begin{environment}{multline} +% \begin{macrocode} +\BeforeBeginEnvironment{multline}{ + +\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% +{ + \LWR@syncmathjax + \booltrue{LWR@amsmultline} + \LWR@beginhideamsmath +} +{ + \begin{BlockClass}{displaymathnumbered} + \LWR@newautoidanchor% + \booltrue{LWR@indisplaymathimage}% + \begin{lateximage}[\LWR@amsmathbodynumbered{multline}] +} +} + +\AfterEndEnvironment{multline}{ + +\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% +{ + \LWR@endhideamsmath + \boolfalse{LWR@amsmultline} + \LWR@addmathjax{multline}{\the\@envbody} +} +{\end{lateximage}\end{BlockClass}} + +} +% \end{macrocode} +% \end{environment} + + +% \begin{environment}{multline*} +% \begin{macrocode} +\BeforeBeginEnvironment{multline*}{ + +\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% +{ + \LWR@syncmathjax + \booltrue{LWR@amsmultline} + \LWR@beginhideamsmath +} +{ + \begin{BlockClass}{displaymath} + \LWR@newautoidanchor + \booltrue{LWR@indisplaymathimage}% + \begin{lateximage}[\LWR@amsmathbody{multline*}] +} +} + +\AfterEndEnvironment{multline*}{ + +\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% +{ + \LWR@endhideamsmath + \boolfalse{LWR@amsmultline} + \LWR@addmathjax{multline*}{\the\@envbody} +} +{\end{lateximage}\end{BlockClass}} + +} + +% \end{macrocode} +% \end{environment} + + +% \begin{environment}{gather} +% \begin{macrocode} +\BeforeBeginEnvironment{gather}{ + +\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% +{ + \LWR@syncmathjax + \boolfalse{LWR@amsmultline} + \LWR@beginhideamsmath +} +{ + \begin{BlockClass}{displaymathnumbered} + \LWR@newautoidanchor% + \booltrue{LWR@indisplaymathimage}% + \begin{lateximage}[\LWR@amsmathbodynumbered{gather}] +} +} + +\AfterEndEnvironment{gather}{ + +\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% +{ + \LWR@endhideamsmath + \LWR@addmathjax{gather}{\the\@envbody} +} +{\end{lateximage}\end{BlockClass}} + +} +% \end{macrocode} +% \end{environment} + +% \begin{environment}{gather*} +% \begin{macrocode} +\BeforeBeginEnvironment{gather*}{ + +\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% +{ + \LWR@syncmathjax + \boolfalse{LWR@amsmultline} + \LWR@beginhideamsmath +} +{ + \begin{BlockClass}{displaymath} + \LWR@newautoidanchor% + \booltrue{LWR@indisplaymathimage}% + \begin{lateximage}[\LWR@amsmathbody{gather*}] +} +} + +\AfterEndEnvironment{gather*}{ + +\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% +{ + \LWR@endhideamsmath + \LWR@addmathjax{gather*}{\the\@envbody} +} +{\end{lateximage}\end{BlockClass}} + +} +% \end{macrocode} +% \end{environment} + + +% \begin{environment}{align} +% \begin{macrocode} +\BeforeBeginEnvironment{align}{ + +\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% +{ + \LWR@syncmathjax + \boolfalse{LWR@amsmultline} + \LWR@beginhideamsmath +} +{ + \begin{BlockClass}{displaymathnumbered} + \LWR@newautoidanchor% + \booltrue{LWR@indisplaymathimage}% + \begin{lateximage}[\LWR@amsmathbodynumbered{align}] +} +} + +\AfterEndEnvironment{align}{ + +\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% +{ + \LWR@endhideamsmath + \LWR@addmathjax{align}{\the\@envbody} +} +{\end{lateximage}\end{BlockClass}} + +} +% \end{macrocode} +% \end{environment} + + +% \begin{environment}{align*} +% \begin{macrocode} +\BeforeBeginEnvironment{align*}{ + +\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% +{ + \LWR@syncmathjax + \boolfalse{LWR@amsmultline} + \LWR@beginhideamsmath +} +{ + \begin{BlockClass}{displaymath} + \LWR@newautoidanchor% + \booltrue{LWR@indisplaymathimage}% + \begin{lateximage}[\LWR@amsmathbody{align*}] +} +} + +\AfterEndEnvironment{align*}{ + +\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% +{ + \LWR@endhideamsmath + \LWR@addmathjax{align*}{\the\@envbody} +} +{\end{lateximage}\end{BlockClass}} + +} +% \end{macrocode} +% \end{environment} + + +% \begin{environment}{flalign} +% \begin{macrocode} +\BeforeBeginEnvironment{flalign}{ + +\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% +{ + \LWR@syncmathjax + \boolfalse{LWR@amsmultline} + \LWR@beginhideamsmath +} +{ + \begin{BlockClass}{displaymathnumbered} + \LWR@newautoidanchor% + \booltrue{LWR@indisplaymathimage}% + \begin{lateximage}[\LWR@amsmathbodynumbered{flalign}] +} +} + +\AfterEndEnvironment{flalign}{ + +\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% +{ + \LWR@endhideamsmath + \LWR@addmathjax{flalign}{\the\@envbody} +} +{\end{lateximage}\end{BlockClass}} + +} +% \end{macrocode} +% \end{environment} + + +% \begin{environment}{flalign*} +% \begin{macrocode} +\BeforeBeginEnvironment{flalign*}{ + +\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% +{ + \LWR@syncmathjax + \boolfalse{LWR@amsmultline} + \LWR@beginhideamsmath +} +{ + \begin{BlockClass}{displaymath} + \LWR@newautoidanchor% + \booltrue{LWR@indisplaymathimage}% + \begin{lateximage}[\LWR@amsmathbody{flalign*}] +} +} + +\AfterEndEnvironment{flalign*}{ + +\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% +{ + \LWR@endhideamsmath + \LWR@addmathjax{flalign*}{\the\@envbody} +} +{\end{lateximage}\end{BlockClass}} + +} +% \end{macrocode} +% \end{environment} + + +% \begin{environment}{alignat} +% \changes{v0.51}{2018/03/11}{Fix: Added.} +% \begin{macrocode} +\BeforeBeginEnvironment{alignat}{ + +\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% +{ + \LWR@syncmathjax + \boolfalse{LWR@amsmultline} + \LWR@beginhideamsmath +} +{ + \begin{BlockClass}{displaymathnumbered} + \LWR@newautoidanchor% + \booltrue{LWR@indisplaymathimage}% + \begin{lateximage}[\LWR@amsmathbodynumbered{alignat}] +} +} + +\AfterEndEnvironment{alignat}{ + +\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% +{ + \LWR@endhideamsmath + \LWR@addmathjax{alignat}{\the\@envbody} +} +{\end{lateximage}\end{BlockClass}} + +} +% \end{macrocode} +% \end{environment} + + +% \begin{environment}{alignat*} +% \begin{macrocode} +\BeforeBeginEnvironment{alignat*}{ + +\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% +{ + \LWR@syncmathjax + \boolfalse{LWR@amsmultline} + \LWR@beginhideamsmath +} +{ + \begin{BlockClass}{displaymath} + \LWR@newautoidanchor% + \booltrue{LWR@indisplaymathimage}% + \begin{lateximage}[\LWR@amsmathbody{alignat*}] +} +} + +\AfterEndEnvironment{alignat*}{ + +\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }% +{ + \LWR@endhideamsmath + \LWR@addmathjax{alignat*}{\the\@envbody} +} +{\end{lateximage}\end{BlockClass}} + +} +% \end{macrocode} +% \end{environment} +% +% \iffalse +%</amsmath> +% \fi +% +% +% +% +% % \iffalse %<*amsthm> % \fi @@ -32409,7 +33016,7 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"% % \section{amsthm} % -% \credits{Publications Technical Group --- American Mathematical Society} +% \credits{Publications Technical Group \Dash American Mathematical Society} % % The original source code is located in |amsclass.dtx|, and printed in % |amsclass.pdf|. @@ -32421,7 +33028,7 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"% % % \begin{table}[ht] % \hrule\smallskip -% \caption{AMSthm package --- CSS styling of theorems and proofs} +% \caption{AMSthm package \Dash CSS styling of theorems and proofs} % \begin{description} % \item [Theorem:] \element{div} of class |amsthmbody<theoremstyle>| % \item [Theorem Name:] \element{span} of class |amsthmname<theoremtyle>| @@ -32943,6 +33550,52 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"% % % % +% +% \iffalse +%<*asymptote> +% \fi +% +% \part{lwarp-asymptote.sty} +% +% \section{asymptote} +% +% \credits{Andy Hammerlindl, John Bowman, Tom Prince} +% +% \DescribePackage{asymptote} +% \pkg{asymptote} is patched for use by \pkg{lwarp}. +% +% \changes{v0.59}{2018/07/10}{\pkg{asymptote}: Added.} +% +% \codehtml +% +% \begin{macrocode} +\LWR@ProvidesPackagePass{asymptote} +% \end{macrocode} +% +% \begin{macrocode} +\BeforeBeginEnvironment{asy}{\begin{lateximage}} +\AfterEndEnvironment{asy}{\end{lateximage}} + +\xpatchcmd{\asyinclude} + {\begingroup} + {\begin{lateximage}} + {} + {\LWR@patcherror{asymptote}{asyinclude-begingroup}} + +\xpatchcmd{\asyinclude} + {\endgroup} + {\end{lateximage}} + {} + {\LWR@patcherror{asymptote}{asyinclude-endgroup}} +% \end{macrocode} +% +% \iffalse +%</asymptote> +% \fi +% +% +% +% % \iffalse %<*atbegshi> % \fi @@ -33265,6 +33918,34 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"% % % % \iffalse +%<*axessibility> +% \fi +% +% \part{lwarp-axessibility.sty} +% +% \section{axessibility} +% +% \DescribePackage{axessibility} +% \pkg{axessibility} is ignored. +% +% \changes{v0.59}{2018/07/25}{\pkg{axessibility}: Added.} +% +% \codehtml +% +% \begin{macrocode} +\LWR@ProvidesPackageDrop{axessibility} +% \end{macrocode} +% +% \begin{macrocode} +\newcommand{\wrap}[1]{} +% \end{macrocode} +% +% \iffalse +%</axessibility> +% \fi +% +% +% \iffalse %<*axodraw2> % \fi % @@ -33804,6 +34485,143 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"% % % % \iffalse +%<*breqn> +% \fi +% +% \part{lwarp-breqn.sty} +% +% \section{breqn} +% +% \credits{Michael J. Downes, Morten Høgholm} +% +% \DescribePackage{breqn} +% \pkg{breqn} is patched for use by \pkg{lwarp}. +% +% \env{darray} is not supported. +% \watchout +% +% MathJax does not support \pkg{breqn}. +% \watchout +% +% \changes{v0.59}{2018/07/25}{\pkg{breqn}: Added.} +% +% \codehtml +% +% \begin{macrocode} +\LWR@ProvidesPackagePass{breqn} +% \end{macrocode} +% +% \begin{macrocode} +\setkeys{breqn}{spread={5pt}} + +\def\eqnumside{R} +% \def\eqnumplace{T} + +\BeforeBeginEnvironment{dmath}{ + \begin{BlockClass}{displaymathnumbered} + \LWR@newautoidanchor% + \booltrue{LWR@indisplaymathimage}% + \begin{lateximage}[-breqn dmath- \mathimagename] +} + +\AfterEndEnvironment{dmath}{ + \end{lateximage}\end{BlockClass} +} + +\BeforeBeginEnvironment{dmath*}{ + \begin{BlockClass}{displaymath} + \LWR@newautoidanchor% + \booltrue{LWR@indisplaymathimage}% + \begin{lateximage}[-breqn dmath*- \mathimagename] +} + +\AfterEndEnvironment{dmath*}{ + \end{lateximage}\end{BlockClass} +} + +\BeforeBeginEnvironment{dseries}{ + \begin{BlockClass}{displaymathnumbered} + \LWR@newautoidanchor% + \booltrue{LWR@indisplaymathimage}% + \begin{lateximage}[-breqn dseries- \mathimagename] +} + +\AfterEndEnvironment{dseries}{ + \end{lateximage}\end{BlockClass} +} + +\BeforeBeginEnvironment{dseries*}{ + \begin{BlockClass}{displaymath} + \LWR@newautoidanchor% + \booltrue{LWR@indisplaymathimage}% + \begin{lateximage}[-breqn dseries*- \mathimagename] +} + +\AfterEndEnvironment{dseries*}{ + \end{lateximage}\end{BlockClass} +} + +\BeforeBeginEnvironment{dgroup}{ + \begin{BlockClass}{displaymath} + \LWR@newautoidanchor% + \booltrue{LWR@indisplaymathimage}% + \begin{lateximage}[-breqn dgroup- \mathimagename] +} + +\AfterEndEnvironment{dgroup}{ + \end{lateximage}\end{BlockClass} +} + +\BeforeBeginEnvironment{dgroup*}{ + \begin{BlockClass}{displaymath} + \LWR@newautoidanchor% + \booltrue{LWR@indisplaymathimage}% + \begin{lateximage}[-breqn dgroup*- \mathimagename] +} + +\AfterEndEnvironment{dgroup*}{ + \end{lateximage}\end{BlockClass} +} +% \end{macrocode} +% +% \iffalse +%</breqn> +% \fi +% +% +% +% \iffalse +%<*bxpapersize> +% \fi +% +% \part{lwarp-bxpapersize.sty} +% +% \section{bxpapersize} +% +% \DescribePackage{bxpapersize} +% \pkg{bxpapersize} is ignored. +% +% \changes{v0.59}{2018/09/06}{\pkg{bxpapersize}: Added.} +% +% \codehtml +% +% \begin{macrocode} +\LWR@ProvidesPackageDrop{bxpapersize} +% \end{macrocode} +% +% \begin{macrocode} +\providecommand*\papersizesetup{\bxpapersizesetup} +\newcommand*\bxpapersizesetup[1]{} +% \end{macrocode} +% +% \iffalse +%</bxpapersize> +% \fi +% +% +% +% +% \iffalse %<*bytefield> % \fi % @@ -33909,6 +34727,39 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"% % % % +% +% +% \iffalse +%<*canoniclayout> +% \fi +% +% \part{lwarp-canoniclayout.sty} +% +% \section{canoniclayout} +% +% \DescribePackage{canoniclayout} +% \pkg{canoniclayout} is ignored. +% +% \changes{v0.59}{2018/07/10}{\pkg{canoniclayout}: Added.} +% +% \codehtml +s% +% \begin{macrocode} +\LWR@ProvidesPackageDrop{canoniclayout} +% \end{macrocode} +% +% \begin{macrocode} +\newcommand*{\currentfontletters}{} +\newcommand*{\charactersperpage}{} +% \end{macrocode} +% +% \iffalse +%</canoniclayout> +% \fi +% +% +% +% % \iffalse %<*caption> % \fi @@ -34132,6 +34983,11 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"% % \DescribePackage{cases} % \pkg{cases} is patched for use by \pkg{lwarp}. % +% +% +% MathJax does not support \pkg{cases}. +% \watchout +% % \changes{v0.58}{2018/06/08}{\pkg{cases}: Added.} % % \codehtml @@ -35434,7 +36290,7 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"% % \begin{macrocode} \AtBeginDocument{ \@ifchemmacrosmoduleloaded{reactions}{ -\PackageInfo{lwarp}{Patching~chemmacros~module~orbital} +\PackageInfo{lwarp}{Patching~chemmacros~module~reactions} \cs_gset_protected:Npn \chemmacros_declare_reaction_env:nnnn #1#2#3#4 { @@ -35710,7 +36566,11 @@ name = \chemmacros_translate:n {scheme-name} \bool_if:NT \l__chemmacros_nmr_solvent_bool { \bool_if:NTF \l__chemmacros_nmr_parse_bool - { \chemformula_ch:nn { } {#4} } +% \end{macrocode} +% \changes{v0.59}{2018/08/30}{\pkg{chemformula}: Fix for \cs{NMR}.} +% \begin{macrocode} +% { \chemformula_ch:nn { } {#4} }% original + {\ch{#4}}% lwarp {#4} } \bool_if:NT \l__chemmacros_nmr_delimiters_bool @@ -36533,6 +37393,46 @@ name = \chemmacros_translate:n {scheme-name} % % % +% \iffalse +%<*draftcopy> +% \fi +% +% \part{lwarp-draftcopy.sty} +% +% \section{draftcopy} +% +% \DescribePackage{draftcopy} +% \pkg{draftcopy} is ignored. +% +% \changes{v0.59}{2018/09/06}{\pkg{draftcopy}: Added.} +% +% \codehtml +% +% \begin{macrocode} +\LWR@ProvidesPackageDrop{draftcopy} +% \end{macrocode} +% +% \begin{macrocode} +\newcommand{\draftcopyVersion}[1]{} +\newcommand{\draftcopySetGrey}[1]{} +\newcommand{\draftcopySetScale}[1]{} +\newcommand{\draftcopySetScaleFactor}[1]{} +\newcommand{\draftcopyFirstPage}[1]{} +\newcommand{\draftcopyLastPage}[1]{} +\newcommand{\draftcopyName}[2]{} +\newcommand{\draftcopyPageTransform}[1]{} +\newcommand{\draftcopyBottomTransform}[1]{} +\newcommand{\draftcopyPageX}[1]{} +\newcommand{\draftcopyPageY}[1]{} +\newcommand{\draftcopyBottomX}[1]{} +\newcommand{\draftcopyBottomY}[1]{} +% \end{macrocode} +% +% \iffalse +%</draftcopy> +% \fi +% +% % % \iffalse %<*draftwatermark> @@ -37088,23 +37988,20 @@ name = \chemmacros_translate:n {scheme-name} % \section{epstopdf} % % \DescribePackage{epstopdf} -% \pkg{epstopdf} is ignored. +% Previous versions of \pkg{lwarp} had a nullfied verison, but +% now \pkg{epstopdf-base} is supported. +% \pkg{lwarp-epstopdf} becomes a placeholder to overwrite +% previous versions. % -% Filenames should be used without a suffix so that -% \SVG, \PNG, or \JPG\ versions of the file will be used for \HTML\ output. +% See package \pkg{epstopdf-base} for details. % % \changes{v0.50}{2018/02/21}{\pkg{epstopdf}: Added.} +% \changes{v0.59}{2018/08/27}{\pkg{epstopdf}: Improved.} % % \codehtml % % \begin{macrocode} -\LWR@ProvidesPackageDrop{epstopdf} -% \end{macrocode} -% -% \begin{macrocode} -\providecommand*{\epstopdfsetup}[1]{} -\providecommand*{\epstopdfcall}[1]{} -\providecommand*{\epstopdfDeclareGraphicsRule}[4]{} +\LWR@ProvidesPackagePass{epstopdf}[2016/05/15] % \end{macrocode} % % \iffalse @@ -37122,23 +38019,57 @@ name = \chemmacros_translate:n {scheme-name} % \section{epstopdf-base} % % \DescribePackage{epstopdf-base} -% \pkg{epstopdf-base} is ignored. % -% Filenames should be used without a suffix so that -% \SVG, \PNG, or \JPG\ versions of the file will be used for \HTML\ output. +% \limitsepstopdf % % \changes{v0.51}{2018/03/03}{\pkg{epstopdf-base}: Added.} +% \changes{v0.59}{2018/08/27}{\pkg{epstopdf-base}: Improved.} % % \codehtml % % \begin{macrocode} -\LWR@ProvidesPackageDrop{epstopdf-base}[2016/05/15] +\LWR@ProvidesPackagePass{epstopdf-base}[2016/05/15] % \end{macrocode} % +% Redefine to remember the image filename, replacing |.pdf| with |.svg|. +% Use the \pkg{epstopdf} print version inside a \env{lateximage}. % \begin{macrocode} -\providecommand*{\epstopdfsetup}[1]{} -\providecommand*{\epstopdfcall}[1]{} -\providecommand*{\epstopdfDeclareGraphicsRule}[4]{} +\newcommand*{\LWR@HTML@ETE@OrgGin@setfile}[3]{% + \edef\LWR@tempone{#3}% + \StrSubstitute{\LWR@tempone}{.pdf}{.svg}[\LWR@tempone]% + \StrSubstitute{\LWR@tempone}{.PDF}{.SVG}[\LWR@tempone]% + \xdef\LWR@parsedfilename{\LWR@tempone}% +} + +\LWR@formatted{ETE@OrgGin@setfile} +% \end{macrocode} +% +% \cs{includegraphics} in \HTML\ mode redefines \cs{Gin@setfile} to +% be \cs{LWR@HTML@Gin@setfile}, which is now redirected to \pkg{epstopdf}'s version: +% \begin{macrocode} +\renewcommand*{\LWR@HTML@Gin@setfile}[3]{% + \ETE@Gin@setfile{#1}{#2}{#3}% +} +% \end{macrocode} +% +% Allow \filenm{.eps} images to be found if a suffix is not provided: +% \begin{macrocode} +\AtBeginDocument{ +\DeclareGraphicsExtensions{% + .eps,.EPS,.svg,.SVG,.gif,.GIF,.png,.PNG,.jpg,.JPG,.jpeg,.JPEG% +} +\DeclareGraphicsRule{.svg}{svg}{.svg}{} +\DeclareGraphicsRule{.SVG}{svg}{.SVG}{} +} +% \end{macrocode} +% +% Likewise when inside a \env{lateximage}: +% \begin{macrocode} +\appto\LWR@restoreorigformatting{% +\DeclareGraphicsExtensions{% + .eps,.EPS,.pdf,.PDF,.gif,.GIF,.png,.PNG,.jpg,.JPG,.jpeg,.JPEG% +}% +} % \end{macrocode} % % \iffalse @@ -39070,7 +40001,7 @@ solid \LWR@origpound\LWR@tempcolor ; % % Discard all options for \pkg{lwarp-flushend}: % \begin{macrocode} \LWR@ProvidesPackageDrop{flushend} -% \end{ma-crocode} +% \end{macrocode} % % \begin{macrocode} \newcommand*{\flushend}{} @@ -39089,6 +40020,39 @@ solid \LWR@origpound\LWR@tempcolor ; % % % % +% \iffalse +%<*fnbreak> +% \fi +% +% \part{lwarp-fnbreak.sty} +% +% \section{fnbreak} +% +% \DescribePackage{fnbreak} +% \pkg{fnbreak} is ignored. +% +% \changes{v0.59}{2018/07/09}{\pkg{fnbreak}: Added.} +% +% \codehtml +% +% \begin{macrocode} +\LWR@ProvidesPackageDrop{fnbreak} +% \end{macrocode} +% +% \begin{macrocode} +\newcommand*{\fnbreakverbose}{} +\newcommand*{\fnbreaknonverbose}{} +\newcommand*{\fnbreaklabel}{} +\newcommand*{\fnbreaknolabel}{} +% \end{macrocode} +% +% \iffalse +%</fnbreak> +% \fi +% +% +% +% % % \iffalse %<*fncychap> @@ -40236,6 +41200,7 @@ solid \LWR@origpound\LWR@tempcolor ; % \boolfalse{LWR@infloatrow} % \end{macrocode} + % \begin{macro}{\LWR@opacity} For \HTML, used only for \cs{includegraphics}. % % \cs{LWR@opacity} may be set by the \pkg{transparent} package. @@ -40253,9 +41218,12 @@ solid \LWR@origpound\LWR@tempcolor ; % % \end{macro} -% \begin{macro}{\Gin@setfile} Sets the parsed filename. +% \begin{macro}{\LWR@HTML@Gin@setfile} \marg{w} \marg{h} \marg{filename} +% Sets the parsed filename for \HTML output. % \begin{macrocode} -\let\LWR@origGin@setfile\Gin@setfile +\newcommand*{\LWR@HTML@Gin@setfile}[3]{% + \xdef\LWR@parsedfilename{#3}% +} % \end{macrocode} % \end{macro} @@ -40272,6 +41240,27 @@ solid \LWR@origpound\LWR@tempcolor ; % % \end{macrocode} +% \begin{macro}{\LWR@replaceEPSSVG} +% +% Usually, references to \EPS\ files become \SVG\ files, +% but if the \pkg{epstopdf} package is being used, it automatically +% converts \EPS\ to \PDF, and the following must NOT be done. +% \begin{macrocode} +\AtBeginDocument{ +\@ifpackageloaded{epstopdf} +{ + \newcommand*{\LWR@replaceEPSSVG}{} +}{% + \newcommand*{\LWR@replaceEPSSVG}{% + \StrSubstitute{\LWR@tempone}{.eps}{.svg}[\LWR@tempone]% + \StrSubstitute{\LWR@tempone}{.EPS}{.SVG}[\LWR@tempone]% + } +}% +} +% \end{macrocode} +% \end{macro} + + % \begin{macro}{\LWR@includegraphicsb} * \oarg{2: options} \oarg{3: options} \marg{4: filename} % % \pkg{graphics} syntax is \cs{includegraphics} * \oarg{llx,lly} \oarg{urx,ury} \marg{file} @@ -40292,6 +41281,8 @@ solid \LWR@origpound\LWR@tempcolor ; % % \changes{v0.40}{2017/09/08}{Add: Full \cs{graphicspath} support.} % \changes{v0.42}{2017/10/26}{Fix: Filename expansion.} % \changes{v0.45}{2017/12/29}{Improved URLs with underscores.} +% \changes{v0.59}{2018/09/07}{Now works with \filenm{.pdf} and \filenm{.eps} +% filename extensions.} % \begin{macrocode} \NewDocumentCommand{\LWR@includegraphicsb}{s o o m} {% @@ -40317,13 +41308,18 @@ solid \LWR@origpound\LWR@tempcolor ; % }% }{}% % \end{macrocode} +% Fully expand and detokenize the filename, +% changing the file extension to \filenm{.svg} if necessary. +% \changes{v0.59}{2018/08/28}{Fix: Expand filename.} % \begin{macrocode} \begingroup% -\renewcommand*{\Gin@setfile}[3]{% -\LWR@traceinfo{Gin@setfile ##3}% -\xdef\LWR@parsedfilename{##3}% -}% -\Ginclude@graphics{\detokenize\expandafter{#4}}% +\LetLtxMacro\Gin@setfile\LWR@HTML@Gin@setfile% +\edef\LWR@tempone{#4}% +\StrSubstitute{\LWR@tempone}{.pdf}{.svg}[\LWR@tempone]% +\StrSubstitute{\LWR@tempone}{.PDF}{.SVG}[\LWR@tempone]% +\LWR@replaceEPSSVG% +\xdef\LWR@parsedfilename{\LWR@tempone}% +\Ginclude@graphics{\detokenize\expandafter{\LWR@tempone}}% \endgroup% \filename@parse{\LWR@parsedfilename}% \LWR@traceinfo{LWR@parsedfilename is \LWR@parsedfilename}% @@ -45275,6 +46271,67 @@ class="td% % % % +% \iffalse +%<*nccfancyhdr> +% \fi +% +% \part{lwarp-nccfancyhdr.sty} +% +% \section{nccfancyhdr} +% +% \credits{Alexander I. Rozhenko} +% +% \DescribePackage{nccfancyhdr} +% \pkg{nccfancyhdr} is ignored. +% +% \changes{v0.59}{2018/08/06}{\pkg{nccfancyhdr}: Added.} +% +% \codehtml +% +% \begin{macrocode} +\LWR@ProvidesPackageDrop{nccfancyhdr} +% \end{macrocode} +% +% \begin{macrocode} +\newcommand*{\headrulewidth}{} +\newcommand*{\footrulewidth}{} +\newcommand{\headstrutheight}{} +\newcommand{\footstrutheight}{} +\newcommand*{\headrule}{} +\newcommand*{\footrule}{} + +\newdimen\headwidth +\newcommand*{\extendedheaders}{} +\newcommand*{\normalheaders}{} + +\newcommand*{\fancyhead}[2][]{} +\newcommand*{\fancyfoot}[2][]{} +\newcommand*{\fancyhf}[2][]{} +\newcommand*{\fancypagestyle}[2]{} +\newcommand*{\lhead}[2][]{} +\newcommand*{\chead}[2][]{} +\newcommand*{\rhead}[2][]{} +\newcommand*{\lfoot}[2][]{} +\newcommand*{\cfoot}[2][]{} +\newcommand*{\rfoot}[2][]{} + +\newcommand{\nouppercase}[1]{#1} + +\NewDocumentCommand{\fancycenter}{o o m m m}{} + +\NewDocumentCommand{\newpagestyle}{m o m}{} + +\newcommand*{\iffloatpage}[2]{#2} +\newcommand*{\ifftopfloat}[2]{#2} +\newcommand*{\iffbotfloat}[2]{#2} +% \end{macrocode} +% +% \iffalse +%</nccfancyhdr> +% \fi +% +% +% % % % @@ -45445,6 +46502,11 @@ class="td% \endgroup% } % \end{macrocode} +% +% For Mathjax: +% \begin{macrocode} +\CustomizeMathJax{\newcommand{\nicefrac}[3][]{#2/#3}} +% \end{macrocode} % \iffalse %</nicefrac> @@ -45615,7 +46677,7 @@ class="td% % \begin{table}[ht] % \hrule % \smallskip -% \caption{Ntheorem package --- CSS styling of theorems and proofs}\unskip +% \caption{Ntheorem package \Dash CSS styling of theorems and proofs}\unskip % \begin{description} % \item [Theorem:] \element{div} of class |theorembody<theoremstyle>| % \item [Theorem Header:] \element{span} of class |theoremheader<style>| @@ -46877,6 +47939,59 @@ class="td% % % % \iffalse +%<*pdftricks> +% \fi +% +% \part{lwarp-pdftricks.sty} +% +% \section{pdftricks} +% +% \credits{C. V. Radhakrishnan, C. V. Rajagopal, Antoine Chambert-Loir} +% +% \DescribePackage{pdftricks} +% \pkg{pdftricks} is patched for use by \pkg{lwarp}. +% +% \limitspdftricks +% +% \changes{v0.59}{2018/08/29}{\pkg{pdftricks}: Added.} +% +% \codehtml +% +% \begin{macrocode} +\LWR@ProvidesPackagePass{pdftricks} +% \end{macrocode} +% +% Reuse the print-mode images: +% \begin{macrocode} +\def\PDFTfigname{\BaseJobname-fig\thepsfig} +% \end{macrocode} +% +% If the \filenm{.pdf} images have not yet been converted to \filenm{.svg} then +% an error about a missing file will occur. +% Warn the user to convert the images. +% \begin{macrocode} +\PackageWarning{lwarp-pdftricks}{ +When the pdftricks images change, +remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf', +} + +\AfterEndDocument{\typeout{***}} +\AfterEndDocument{\typeout{*** Note: If pdftricks images are not found, new, or updated,}} +\AfterEndDocument{\typeout{*** \space use 'lwarpmk pdftosvg \BaseJobname-fig*.pdf'}} +\AfterEndDocument{\typeout{***}} +% \end{macrocode} +% +% \begin{macrocode} +% \end{macrocode} +% +% \iffalse +%</pdftricks> +% \fi +% +% +% +% +% \iffalse %<*pdfx> % \fi % @@ -47113,6 +48228,72 @@ class="td% % % % +% \iffalse +%<*pst-eps> +% \fi +% +% \part{lwarp-pst-eps.sty} +% +% \section{pst-eps} +% +% \credits{Herbert Voß} +% +% \DescribePackage{pst-eps} +% \pkg{pst-eps} is patched for use by \pkg{lwarp}. +% +% \changes{v0.59}{2018/09/05}{\pkg{pst-eps}: Added.} +% +% \codehtml +% +% \begin{macrocode} +\LWR@ProvidesPackagePass{pst-eps} +% \end{macrocode} +% +% \begin{macrocode} +\renewenvironment{TeXtoEPS}{}{} +\renewcommand{\PSTtoEPS}[3][]{} +% \end{macrocode} +% +% \iffalse +%</pst-eps> +% \fi +% +% +% +% \iffalse +%<*pstricks> +% \fi +% +% \part{lwarp-pstricks.sty} +% +% \section{pstricks} +% +% \credits{Timothy Van Zandt} +% +% \DescribePackage{pstricks} +% \pkg{pstricks} is patched for use by \pkg{lwarp}. +% +% \limitspstricks +% +% \changes{v0.59}{2018/09/05}{\pkg{pstricks}: Added.} +% +% \codehtml +% +% \begin{macrocode} +\LWR@ProvidesPackagePass{pstricks} +% \end{macrocode} +% +% \begin{macrocode} +\BeforeBeginEnvironment{pspicture}{\begin{lateximage}[(pspicture)]} +\AfterEndEnvironment{pspicture}{\end{lateximage}} +% \end{macrocode} +% +% \iffalse +%</pstricks> +% \fi +% +% +% % % \iffalse %<*quotchap> @@ -48762,6 +49943,60 @@ class="td% % % % +% \iffalse +%<*SIunits> +% \fi +% +% \part{lwarp-SIunits.sty} +% +% \section{SIunits} +% +% \credits{Marcel Heldoorn} +% +% \DescribePackage{SIunits} +% \pkg{SIunits} is patched for use by \pkg{lwarp}. +% +% It is recommended to use \cs{unit} where possible, which +% combines the entire expression into a single \env{lateximage}, +% and adds the \attribute{alt} tag containing the \LaTeX\ code, allowing for +% copy/paste. When units are used outside of the \cs{unit} macro, +% each unit macro will have its own \env{lateximage}, +% and each will have the \attribute{alt} tag set to ``|(|<\cs{mathimagename}>|)|'', +% which defaults to ``|(math image)|''. +% +% \changes{v0.59}{2018/07/11}{\pkg{SIunits}: Added.} +% +% \codehtml +% +% \begin{macrocode} +\LWR@ProvidesPackagePass{SIunits} +% \end{macrocode} +% +% Patched for copy/paste with the \HTML\ \attribute{alt} tag: +% \begin{macrocode} +\DeclareRobustCommand{\unit}[2]{% +\@inunitcommandtrue% original +\LWR@subsingledollar*% lwarp +{% alt tag + \textbackslash{}unit\{\LWR@HTMLsanitize{#1}\}% + \{ \LWR@HTMLsanitize{#2}\}% extra space +}% +{SIunits}% add'l hashing +{% + \LWR@origensuredmath{% lwarp modification + \SI@fstyle{#1\@qsk\period@active{#2}}% original + }% +}% contents +\@inunitcommandfalse% original +} +% \end{macrocode} +% +% \iffalse +%</SIunits> +% \fi +% +% +% % % \iffalse %<*siunitx> @@ -50078,7 +51313,7 @@ class="td% % \credits{Alexander I. Rozhenko} % % \DescribePackage{textarea} -% \pkg{textarea} is emulated. +% \pkg{textarea} is ignored. % % \changes{v0.39}{2017/08/27}{\pkg{textarea}: Added.} % @@ -50398,7 +51633,7 @@ class="td% % \begin{table}[ht] % \hrule % \smallskip -% \caption{Theorem package --- CSS styling of theorems and proofs} +% \caption{Theorem package \Dash CSS styling of theorems and proofs} % \begin{description} % \item [Theorem:] \element{div} of class |theorembody<theoremstyle>| % \item [Theorem Header:] \element{span} of class |theoremheader| @@ -52922,6 +54157,39 @@ class="td% % % % \iffalse +%<*units> +% \fi +% +% \part{lwarp-units.sty} + +% \section{units} +% +% \credits{Axel Reichert} +% +% \DescribePackage{units} +% \pkg{units} is patched for use by \pkg{lwarp}. +% +% \changes{v0.59}{2018/07/13}{\pkg{units}: Added support for \pkg{MathJax.}} +% +% \codehtml +% +% \begin{macrocode} +\LWR@ProvidesPackagePass{units}[1998/08/04] +% \end{macrocode} +% +% For Mathjax: +% \begin{macrocode} +\CustomizeMathJax{\newcommand{\unit}[2][]{#1 #2}} +\CustomizeMathJax{\newcommand{\unitfrac}[3][]{#1 #2/#3}} +% \end{macrocode} + +% \iffalse +%</units> +% \fi +% +% +% +% \iffalse %<*upref> % \fi % @@ -54747,6 +56015,44 @@ scaling = false % % % \iffalse +%<*xunicode> +% \fi +% +% \part{lwarp-xunicode.sty} +% +% \section{xunicode} +% +% \DescribePackage{xunicode} +% Error if \pkg{xunicode} is loaded after \pkg{lwarp}. +% +% \changes{v0.59}{2018/08/03}{\pkg{xunicode}: Added.} + +% Patch \pkg{lwarp-xunicode}, but also verify that is was loaded before \pkg{lwarp}: +% +% \codehtml +% \begin{macrocode} +\@ifpackageloaded{lwarp}{\LWR@loadbefore{xunicode}}{} + +\LWR@ProvidesPackagePass{xunicode}[2011/09/09] +% \end{macrocode} +% +% \cs{textcircled} becomes a span with a rounded border: +% \begin{macrocode} +\newcommand*{\LWR@HTML@textcircled}[1]{% +\InlineClass[border: 1px solid \LWR@currenttextcolor]{textcircled}{#1}% +} + +\LWR@formatted{textcircled} +% \end{macrocode} + +% \iffalse +%</xunicode> +% \fi +% +% +% +% +% \iffalse %<*xurl> % \fi % @@ -56518,7 +57824,7 @@ scaling = false % \part{Change History and Index} % \label{sec:changehistory} % -% For the most recent changes and the start of the Index, +% For the most recent changes, followed by the start of the Index, % see page \pageref{sec:changesend}. % % \pagestyle{plain} |