summaryrefslogtreecommitdiff
path: root/macros/latex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-10-02 03:03:32 +0000
committerNorbert Preining <norbert@preining.info>2021-10-02 03:03:32 +0000
commitac5a96ddb02c62d71eb214ed35e3be9a154d991f (patch)
treecdf35312568ce6b2b69e7374745ddafdd3e3c66b /macros/latex
parent569e4d488d3398f8ed12807dd67e2b301b7447d5 (diff)
CTAN sync 202110020303
Diffstat (limited to 'macros/latex')
-rw-r--r--macros/latex/contrib/decision-table/README2
-rw-r--r--macros/latex/contrib/decision-table/decision-table.dtx595
-rw-r--r--macros/latex/contrib/decision-table/decision-table.ins4
-rw-r--r--macros/latex/contrib/decision-table/decision-table.pdfbin112176 -> 111518 bytes
-rw-r--r--macros/latex/contrib/lwarp/README.txt2
-rw-r--r--macros/latex/contrib/lwarp/lwarp.dtx2822
-rw-r--r--macros/latex/contrib/lwarp/lwarp.ins2
-rw-r--r--macros/latex/contrib/lwarp/lwarp.pdfbin3136003 -> 3144374 bytes
-rwxr-xr-xmacros/latex/contrib/lwarp/lwarpmk.lua2
-rw-r--r--macros/latex/contrib/tabularray/tabularray.pdfbin725112 -> 760493 bytes
-rw-r--r--macros/latex/contrib/tabularray/tabularray.sty247
-rw-r--r--macros/latex/contrib/tabularray/tabularray.tex204
12 files changed, 2494 insertions, 1386 deletions
diff --git a/macros/latex/contrib/decision-table/README b/macros/latex/contrib/decision-table/README
index feb434fb75..1ca5b7404e 100644
--- a/macros/latex/contrib/decision-table/README
+++ b/macros/latex/contrib/decision-table/README
@@ -1,5 +1,5 @@
decision-table.sty
-Copyright 2020 Simon Vandevelde, Francois Pantigny
+Copyright 2020-2021 Simon Vandevelde, Francois Pantigny
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3c
diff --git a/macros/latex/contrib/decision-table/decision-table.dtx b/macros/latex/contrib/decision-table/decision-table.dtx
index ba9eada069..b457046377 100644
--- a/macros/latex/contrib/decision-table/decision-table.dtx
+++ b/macros/latex/contrib/decision-table/decision-table.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 2020 by S. Vandevelde, F. Pantigny
+% Copyright (C) 2020-2021 by S. Vandevelde, F. Pantigny
% ------------------------------------------------
%
% This file may be distributed and/or modified under the
@@ -16,8 +16,8 @@
% \fi
% \iffalse
%
-\def\dmnfileversion{0.0.3}
-\def\dmnfiledate{2020/12/08}
+\def\dmnfileversion{0.0.4}
+\def\dmnfiledate{2021/10/01}
%
%<*batchfile>
\begingroup
@@ -26,7 +26,7 @@
\usedir{tex/latex/cascade}
\preamble
-Copyright (C) 2020 by S.Vandevelde, F. Pantigny
+Copyright (C) 2020-2021 by S.Vandevelde, F. Pantigny
-----------------------------------
This file may be distributed and/or modified under the
@@ -78,8 +78,9 @@ version 2005/12/01 or later.
% \maketitle
%
% \begin{abstract}
-% The LaTeX package \pkg{decision-table} provides a command |\dmntable|, which allows for an easy way to generate decision tables in the Decision Model and Notation (DMN) format. (See Fig. \ref{ex1})
+% The LaTeX package \pkg{decision-table} provides a command |\dmntable|, which allows for an easy way to generate decision tables in the Decision Model and Notation (DMN) format. (See Fig.~\ref{ex1})
% This package ensures consistency in the tables (i.e. fontsize), and is thus a better alternative to inserting tables via images.
+% Besides pure DMN tables, it also supports the tables used in the cDMN and pDMN extensions, namely glossary and probability tables.
% \end{abstract}
%
%
@@ -87,21 +88,37 @@ version 2005/12/01 or later.
% \vspace{1cm}
% \section{Description}
%
-% The \texttt{decision-table} package allows for an easy way to generate decision tables in the Decision Model and Notation (DMN) format. (See Fig. \ref{ex1})
-% This package ensures consistency in the tables (i.e. fontsize), and is thus a better alternative to inserting tables via images.
+% The \texttt{decision-table} package allows for easy and straightforward generation of decision tables (with or without input columns) in the Decision Model and Notation (DMN) format, as demonstrated in Fig.~\ref{ex1}.
+% Additionally, it also supports glossary and goal tables as defined by cDMN\footnote{https://cdmn.be}, and probability tables as defined by pDMN\footnote{Vandevelde S., et al., ``A Table-Based Representation for Probabilistic Logic: Preliminary Result''.}.
+% Usage of this package ensures consistency in tables (i.e. font type, font size, color, $\ldots$), and is thus a better alternative to inserting tables via images.
%
% \begin{figure}[H]
% \centering
-% \dmntable{Calculate BMI}{U}{Weight(kgs),Length(m)}{BMI}{ % ---,---,weight/length*length}
+% \dmntable{BMI Level}{U}{BMI}{BMILevel}
+% {$< 18.5$, Underweight,
+% $[18.5..25]$, Normal,
+% $(25..30]$, Overweight,
+% $> 30$, Obese}
% \caption{Example of a DMN table}
% \label{ex1}
% \end{figure}
-% \section{How to use}
-%
-% The \texttt{decision-table} package adds the \texttt{dmntable} command, with which tables can be created.
+% \section{Usage}
+%
+% In total, the \texttt{decision-table} package adds 5 new commands.
+% \begin{itemize}
+% \item \texttt{dmntable}: basic DMN table.
+% \item \texttt{dmnoutputtable}: basic DMN table, but without input columns.
+% \item \texttt{dmnglossarytable}: glossary table, as defined by cDMN.
+% \item \texttt{goaltable}: goal table, as defined by cDMN.
+% \item \texttt{pdmntable}: probability table, as defined by pDMN.
+% \item \texttt{pdmnoutputtable}: probability table, but without input columns.
+% \end{itemize}
+
+% \subsection{dmntable}
+% The \texttt{dmntable} command generates standard DMN decision tables.
% This command expands into a \texttt{tabular}, so it can be used within a \texttt{table} or \texttt{figure} environment.
-% Furthermore, this allows labels and captions to be added seamlessly.
-% It is also possible to place multiple DMN tables in one \texttt{table}/\texttt{figure} environment.
+% Furthermore, this allows labels and captions to be added seamlessly, and allows placing multiple DMN tables in the same environment.
+% These tables will automatically arrange themselves based on size.
%
% The \texttt{dmntable} command has the following inputs:
% \begin{itemize}
@@ -112,166 +129,197 @@ version 2005/12/01 or later.
% \item the table values
% \end{itemize}
% The command is used as follows:
-% \begin{lstlisting}[language=tex, frame=single]
-% \dmntable{title}{hitpolicy}{input}{output}{values}
-% \end{lstlisting}
+% \iffalse
+%<*example>
+% \fi
+\begin{lstlisting}[language=tex, frame=single]
+\dmntable{title}{hitpolicy}{input}{output}{values}
+\end{lstlisting}
+% \iffalse
+%</example>
+% \fi
%
% The input, output and cell values are split by a comma.
% It is not necessary to include the row numbers for the cell values.
-% For example, \ref{ex1} is generated by the following code:
-% \begin{lstlisting}[language=tex, frame=single, basicstyle=\small]
-% \begin{figure}[H]
-% \centering
-% \dmntable{Calculate BMI}{U} % Title and HP
-% {Weight(kgs),Length(m)}{BMI} % Input, output
-% {---,---,weight/length*length} % Cell values
-% \caption{Example of a DMN table}
-% \label{ex1}
-% \end{figure}
-% \end{lstlisting}
+% For example, Fig.~\ref{ex1} is generated by the following code:
+
+% \iffalse
+%<*example>
+% \fi
+\begin{lstlisting}[language=tex, frame=single, basicstyle=\small]
+\begin{figure}[H]
+ \centering
+ \dmntable{BMI Level}{U}{BMI}{BMILevel}
+ {$< 18.5$, Underweight,
+ $[18.5..25]$, Normal,
+ $(25..30]$, Overweight,
+ $> 30$, Obese}
+ \caption{Example of a DMN table}
+ \label{ex1}
+\end{figure}
+\end{lstlisting}
+% \iffalse
+%</example>
+% \fi
%
% If a cell value contains multiple values (e.g. multiple string values), then accolades should be written around them.
-% See the example \ref{ex2}.
-%
-%
-% \section{Examples}
-% This section contains some example code and their resulting tables.
-%
-% \begin{lstlisting}[language=tex, frame=single, basicstyle=\small]
-% \begin{figure}[H]
-% \centering
-% \dmntable{Calculate BMI}{U} % Title and HP
-% {Weight(kgs),Length(m)}{BMI} % Input, output
-% {---,---,weight/length*length} % Cell values
-% \caption{Example of a DMN table}
-% \end{figure}
-% \end{lstlisting}
-% \begin{figure}[H]
-% \centering
-% \dmntable{Calculate BMI}{U}
-% {Weight(kgs),Length(m)}{BMI}
-% {---,---,weight/length*length}
-% \caption{Example of a DMN table}
-% \end{figure}
-%
+% See the example shown in Fig.~\ref{ex2}.
+
+% It is also possible to have cells be multiline using the \texttt{makecell} package. This is useful in cases where large text causes page overflow.
+% \iffalse
+%<*example>
+% \fi
+\begin{lstlisting}[language=tex, frame=single, basicstyle=\small]
+\include{makecell} % This should be somewhere at the top of document
+\begin{figure}[H]
+ \centering
+ \dmntable{BMI Level}{U}{BMI}{\makecell{BMI \\ Level}}
+ {$< 18.5$, Underweight,
+ $[18.5..25]$, Normal,
+ $(25..30]$, Overweight,
+ $> 30$, Obese}
+ \caption{Example of a DMN table with multiline cell}
+ \label{ex1}
+\end{figure}
+\end{lstlisting}
+% \iffalse
+%</example>
+% \fi
%
-% \begin{lstlisting}[language=tex, frame=single, basicstyle=\small]
-% \begin{ligure}[H]
-% \centering
-% \dmntable{Decide BMI Level}{U}
-% {BMI}{BMI Level, Risk Level}
-% {$< 18.5$, Underweight, Increased,
-% $[18.5..24.9]$, Normal, Low,
-% $[25..29.9]$, overweight, Increased,
-% $[30..34.9]$, Obese I, High,
-% $[35..39.9]$, Obese II, Very High,
-% $> 39.9$, Extreme Obesity, Extremely High}
-% \caption{Example of a DMN table}
-% \end{figure}
-% \end{lstlisting}
+% \subsection{dmnoutputtable}
+% Decision tables that have no input columns can be created using the \texttt{dmnoutputtable} command.
+% Its usage is the same as the standard decision table, except that no input columns should be given.
+% For example, the following code generates the table shown in Fig.~\ref{outputtable}.
+% \iffalse
+%<*example>
+% \fi
+\begin{lstlisting}[language=tex, frame=single, basicstyle=\small]
+\begin{figure}[H]
+ \centering
+ \dmnoutputtable{BMI Level}{U}{BMI}{5}
+ \caption{Example of a DMN output table}
+ \label{ex1}
+\end{figure}
+\end{lstlisting}
+% \iffalse
+%</example>
+% \fi
% \begin{figure}[H]
% \centering
-% \dmntable{Decide BMI Level}{U}
-% {BMI}{BMI Level, Risk Level}
-% {$< 18.5$, Underweight, Increased,
-% $[18.5..24.9]$, Normal, Low,
-% $[25..29.9]$, overweight, Increased,
-% $[30..34.9]$, Obese I, High,
-% $[35..39.9]$, Obese II, Very High,
-% $> 39.9$, Extreme Obesity, Extremely High}
-% \caption{Example of a larger DMN table}
+% \dmnoutputtable{BMI Level}{U}{BMI}{5}
+% \caption{Example of a DMN output table}
+% \label{outputtable}
% \end{figure}
%
-% \begin{lstlisting}[language=tex, frame=single, basicstyle=\tiny]
+% \subsection{dmnglossarytable}
+% Glossary tables are added by using the \texttt{glossarytable} command.
+% This command accepts three inputs: the title, the sub-titles of the columns, and the actual elements.
+% See Fig. \ref{glos1} for an example.
+% \iffalse
+%<*example>
+% \fi
+\begin{lstlisting}[language=tex, frame=single, basicstyle=\small]
+\begin{figure}[H]
+ \centering
+ \glossarytable{Type}{Name, DataType, Possible Values}
+ {Country, String, {Belgium, France, Germany}}
+ \glossarytable{Function}{Name, DataType}{color of Country, Color}
+ \glossarytable{Relation}{Name}{Country borders Country}
+ \caption{Example glossary}
+ \label{glos1}
+\end{figure}
+\end{lstlisting}
+% \iffalse
+%</example>
+% \fi
+%
+%
% \begin{figure}[H]
-% \centering
-% \dmntable{Decide Risk Level}{U}
-% {BMI level, Waist(cm)}{Risk Level}
-% {Overweight, $<=88$, Increased,
-% Overweight, $ > 88$, High,
-% Obese I,$ <= 88$, High,
-% Obese II, ---, Very High,
-% Extreme Obesity, ---, Extremely High,
-% {not(Overweight, Obese I, Obese II, Extreme Obesity)}, ---, Low
-% }
-% \caption{Example of cell with multiple values}
-% \label{ex2}
+% \centering
+% \glossarytable{Type}{Name, DataType, Possible Values}
+% {Country, String, {Belgium, France, Germany}}
+% \glossarytable{Function}{Name, DataType}{color of Country, Color}
+% \glossarytable{Relation}{Name}{Country borders Country}
+% \caption{Example glossary}
+% \label{glos1}
% \end{figure}
-% \end{lstlisting}
-%
+
+% \subsection{goaltable}
+
+% Generating a \texttt{Goal} table is straightforward:
+
+% \iffalse
+%<*example>
+% \fi
+\begin{lstlisting}[language=tex, frame=single]
+\goaltable{tablename}{values}
+\end{lstlisting}
+% \iffalse
+%</example>
+% \fi
+
% \begin{figure}[H]
% \centering
-% \dmntable{Decide Risk Level}{U}
-% {BMI level, Waist(cm)}{Risk Level}
-% {Overweight, $<=88$, Increased,
-% Overweight, $ > 88$, High,
-% Obese I,$ <= 88$, High,
-% Obese II, ---, Very High,
-% Extreme Obesity, ---, Extremely High,
-% {not(Overweight, Obese I, Obese II, Extreme Obesity)}, ---, Low
-% }
-% \caption{Example of cell with multiple values}
-% \label{ex2}
+% \goaltable{tablename}{value1, value2}
% \end{figure}
-%
-% \begin{lstlisting}[language=tex, frame=single, basicstyle=\tiny]
+
+% \subsection{pdmntable}
+
+% pDMN probability tables are similar to standard DMN tables, but with a few changes.
+% The biggest change is the addition of probabilities. The syntax of \texttt{pdmntable} is as follows:
+
+% \iffalse
+%<*example>
+% \fi
+\begin{lstlisting}[language=tex, frame=single]
+\pdmntable{title}{hitpolicy}{inputs}{outputs}{output values}{cell values}
+\end{lstlisting}
+% \iffalse
+%</example>
+% \fi
+
+%For example, a table expressing the probabilities of an unbiased and biased dice throw can be expressed as follows:
+
+% \iffalse
+%<*example>
+% \fi
+\begin{lstlisting}[language=tex, frame=single]
+\pdmntable{Throwing Dice}{Ch}{biased}{die value}
+ {one, two, three, four, five, six}
+ {No, $1/6$, $1/6$, $1/6$, $1/6$, $1/6$, $1/6$,
+ Yes, $0.1$, $0.1$, $0.1$, $0.1$, $0.1$, $0.5$}
+\end{lstlisting}
+% \iffalse
+%</example>
+% \fi
+
% \begin{figure}[H]
% \centering
-% \dmntable{Rule 1}{U}
-% {Age, Service Years}{Eligible1}
-% {$\leq18$, ---, Yes,
-% $\geq60$, ---, Yes,
-% {$[18, 60]$}, $\geq 30$, Yes
-% }
-% \dmntable{Rule 2}{U}
-% {Age, Service Years}{Eligible2}
-% {---,$\geq30$, Yes,
-% $\geq60$,$<30$, Yes
-% }
-% \dmntable{Rule 3}{U}
-% {Age, Service Years}{Eligible3}
-% {$< 45$, {$[15, 30)$}, Yes,
-% $> 45$, ---, Yes
-% }
-% \dmntable{Vacation days}{C+}
-% {Eligible1, Eligible2, Eligble3}{Vacation Days}
-% {---, ---, ---, 22,
-% Yes, ---, ---, 5,
-% ---, Yes, ---, 3,
-% No, ---, Yes, 2
-% }
-% \caption{dmn table example for the Vacation Days}
+% \pdmntable{Throwing Dice}{Ch}{biased}{die value}
+% {one, two, three, four, five, six}
+% {No, $1/6$, $1/6$, $1/6$, $1/6$, $1/6$, $1/6$,
+% Yes, $0.1$, $0.1$, $0.1$, $0.1$, $0.1$, $0.5$}
% \end{figure}
-% \end{lstlisting}
+
+
+% \subsection{pdmnoutputtable}
+% The final type of table, \texttt{pdmnoutputtable}, is the same as the one shown in the previous subsection but without any input columns.
+
+% \iffalse
+%<*example>
+% \fi
+\begin{lstlisting}[language=tex, frame=single]
+\pdmnoutputtable{tablename}{hitpolicy}{output}{outputvalue}{probabilities}
+\end{lstlisting}
+% \iffalse
+%</example>
+% \fi
+
% \begin{figure}[H]
% \centering
-% \dmntable{Rule 1}{U}
-% {Age, Service Years}{Eligible1}
-% {$\leq18$, ---, Yes,
-% $\geq60$, ---, Yes,
-% {$[18, 60]$}, $\geq 30$, Yes
-% }
-% \dmntable{Rule 2}{U}
-% {Age, Service Years}{Eligible2}
-% {---,$\geq30$, Yes,
-% $\geq60$,$<30$, Yes
-% }
-% \dmntable{Rule 3}{U}
-% {Age, Service Years}{Eligible3}
-% {$< 45$, {$[15, 30)$}, Yes,
-% $> 45$, ---, Yes
-% }
-% \dmntable{Vacation days}{C+}
-% {Eligible1, Eligible2, Eligble3}{Vacation Days}
-% {---, ---, ---, 22,
-% Yes, ---, ---, 5,
-% ---, Yes, ---, 3,
-% No, ---, Yes, 2
-% }
-% \caption{DMN table example for the Vacation Days}
+% \pdmnoutputtable{h1}{U}{heads1}{Yes}{0.5}
% \end{figure}
-%
-%
+
% \section{Contributing}
%
% Contributions are always welcome.
@@ -302,13 +350,12 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \bigskip
-% We define the command |\dmntable| with the tools of \pkg{xparse} (in 2020
-% October, \pkg{xparse} will be included in the LaTeX kernel).
+% We define the command |\dmntable| with the tools of \pkg{xparse}.
% \begin{macrocode}
\NewDocumentCommand \dmntable { m m m m m }
{
% \end{macrocode}
-% The clist (\emph{commad separated list}) |\l_@@_input_clist| is for the list
+% The clist (\emph{comma separated list}) |\l_@@_input_clist| is for the list
% of the names of the input fields.
% \begin{macrocode}
\clist_clear_new:N \l_@@_input_clist
@@ -453,6 +500,244 @@ version 2005/12/01 or later.
\end { NiceTabular }
}
% \end{macrocode}
+% The other two commands are simply more of the same.
+% \begin{macrocode}
+\NewDocumentCommand \dmnoutputtable { m m m m }
+ {
+ \clist_clear_new:N \l__dmn_output_clist
+ \clist_set:Nn \l__dmn_output_clist { #3 }
+ \int_zero_new:N \l__dmn_output_int
+ \int_set:Nn \l__dmn_output_int { \clist_count:N \l__dmn_output_clist }
+ \seq_clear_new:N \l__dmn_cells_seq
+ \seq_set_split:Nnn \l__dmn_cells_seq { , } { #4 }
+ \use:x
+ {
+ \exp_not:N \begin { NiceTabular }
+ { r \prg_replicate:nn { \l__dmn_output_int } l }
+ [
+ hvlines-except-corners ,
+ code-before =
+ \exp_not:N \rectanglecolor
+ { blue!10!green!60!black!30 }
+ { 2 - 2 }
+ { 2 - \int_eval:n { 1 } }
+ \exp_not:N \rectanglecolor
+ { green!30!blue!15 }
+ { 2 - \int_eval:n { 2 } }
+ { 2 - \int_eval:n { \l__dmn_output_int + 1 } }
+ ]
+ }
+ \exp_args:Ne \multicolumn
+ { \int_eval:n { 1 } }
+ { l }
+ { #1 } \\
+ #2 &
+ \clist_use:Nn \l__dmn_output_clist { & } \\
+ 1 &
+ \seq_map_inline:Nn \l__dmn_cells_seq
+ {
+ \int_compare:nT { \c@jCol = 0 } { \int_eval:n { \c@iRow - 1 } & }
+ ##1
+ \int_compare:nTF { \c@jCol = \l__dmn_output_int + 1 }
+ { \\ }
+ { & }
+ }
+ \end { NiceTabular }
+ }
+
+\NewDocumentCommand \glossarytable { m m m }
+ {
+ \clist_clear_new:N \l__clist
+ \clist_set:Nn \l__clist { #2 }
+ \int_zero_new:N \l__cint
+ \int_set:Nn \l__cint { \clist_count:N \l__clist }
+ \seq_clear_new:N \l__dmn_cells_seq
+ \seq_set_split:Nnn \l__dmn_cells_seq { , } { #3 }
+ \use:x
+ {
+ \exp_not:N \begin { NiceTabular }
+ { c \prg_replicate:nn { \l__cint -1 } c }
+ [
+ hvlines-except-corners ,
+ code-before =
+ \exp_not:N \rectanglecolor
+ { blue!30!green!10!red!40 }
+ { 1 - \int_eval:n { 1 } }
+ { 1 - \int_eval:n { \l__cint} }
+ ]
+ }
+ \exp_args:Ne \multicolumn
+ { \int_eval:n { \l__cint } }
+ { c }
+ { \textbf{#1} } \\
+ \bf \clist_use:Nn \l__clist { & \bf } \\
+ \seq_map_inline:Nn \l__dmn_cells_seq
+ {
+ \int_compare:nT { \c@jCol = 0 } { }
+ ##1
+ \int_compare:nTF { \c@jCol = \l__cint }
+ { \\ }
+ { & }
+ }
+ \end { NiceTabular }
+ }
+\NewDocumentCommand \pdmntable { m m m m m m}
+ {
+ \clist_clear_new:N \l__dmn_input_clist
+ \clist_set:Nn \l__dmn_input_clist { #3 }
+ \clist_clear_new:N \l__dmn_output_clist
+ \clist_set:Nn \l__dmn_output_clist { #4 }
+ \clist_clear_new:N \l__suboutput_clist
+ \clist_set:Nn \l__dmn_suboutput_clist { #5 }
+ \int_zero_new:N \l__dmn_input_int
+ \int_set:Nn \l__dmn_input_int { \clist_count:N \l__dmn_input_clist }
+ \int_zero_new:N \l__dmn_output_int
+ \int_set:Nn \l__dmn_output_int { \clist_count:N \l__dmn_output_clist }
+ \int_zero_new:N \l__dmn_suboutput_int
+ \int_set:Nn \l__dmn_suboutput_int { \clist_count:N \l__dmn_suboutput_clist }
+ \seq_clear_new:N \l__dmn_cells_seq
+ \seq_set_split:Nnn \l__dmn_cells_seq { , } { #6 }
+ \seq_clear_new:N \l__dmn_inputcells_seq
+ \seq_set_split:Nnn \l__dmn_inputcells_seq { , } { #3 }
+ \use:x
+ {
+ \exp_not:N \begin { NiceTabular }
+ { r \prg_replicate:nn { \l__dmn_input_int + \l__dmn_suboutput_int + 1} l }
+ [
+ hvlines-except-corners ,
+ code-before =
+ \exp_not:N \rectanglecolor
+ { blue!10!green!60!black!30 }
+ { 2 - 2 }
+ { 2 - \int_eval:n { \l__dmn_input_int + 1 } }
+ \exp_not:N \rectanglecolor
+ { green!30!blue!15 }
+ { 2 - \int_eval:n { \l__dmn_input_int + 2 } }
+ { 2 - \int_eval:n { \l__dmn_input_int + \l__dmn_suboutput_int + 1 } }
+ \exp_not:N \rectanglecolor
+ { red!60!green!60!blue!15}
+ { 3 - \int_eval:n { 1 } }
+ { 3 - \int_eval:n { \l__dmn_input_int + \l__dmn_suboutput_int + 1 } }
+ ]
+ }
+ \exp_args:Ne \multicolumn
+ { \int_eval:n { \l__dmn_input_int + 1 } }
+ { l }
+ { #1 } \\
+ #2 &
+ \clist_use:Nn \l__dmn_input_clist { & } &
+ \exp_args:Ne \multicolumn
+ { \int_eval:n {\l__dmn_suboutput_int}}
+ { c }
+ { #4 } \\
+ \seq_map_inline:Nn \l__dmn_inputcells_seq
+ { & }
+ & \clist_use:Nn \l__dmn_suboutput_clist { & } & \\
+ %\clist_use:Nn \l__dmn_output_clist { & } \\
+ 1 &
+ \seq_map_inline:Nn \l__dmn_cells_seq
+ {
+ \int_compare:nT { \c@jCol = 0 } { \int_eval:n { \c@iRow - 2 } & }
+ ##1
+ \int_compare:nTF { \c@jCol = \l__dmn_input_int + \l__dmn_suboutput_int + 1 }
+ { \\ }
+ { & }
+ }
+ \end { NiceTabular }
+ }
+\NewDocumentCommand \pdmnoutputtable { m m m m m }
+ {
+ \clist_clear_new:N \l__dmn_output_clist
+ \clist_set:Nn \l__dmn_output_clist { #3 }
+ \clist_clear_new:N \l__suboutput_clist
+ \clist_set:Nn \l__dmn_suboutput_clist { #4 }
+ \int_zero_new:N \l__dmn_output_int
+ \int_set:Nn \l__dmn_output_int { \clist_count:N \l__dmn_output_clist }
+ \int_zero_new:N \l__dmn_suboutput_int
+ \int_set:Nn \l__dmn_suboutput_int { \clist_count:N \l__dmn_suboutput_clist }
+ \seq_clear_new:N \l__dmn_cells_seq
+ \seq_set_split:Nnn \l__dmn_cells_seq { , } { #5 }
+ \use:x
+ {
+ \exp_not:N \begin { NiceTabular }
+ { r \prg_replicate:nn { \l__dmn_suboutput_int } l }
+ [
+ hvlines-except-corners ,
+ code-before =
+ \exp_not:N \rectanglecolor
+ { blue!10!green!60!black!30 }
+ { 2 - 2 }
+ { 2 - \int_eval:n { 1 } }
+ \exp_not:N \rectanglecolor
+ { green!30!blue!15 }
+ { 2 - \int_eval:n { 2 } }
+ { 2 - \int_eval:n { \l__dmn_suboutput_int + 1 } }
+ \exp_not:N \rectanglecolor
+ { red!60!green!60!blue!15}
+ { 3 - \int_eval:n { 1 } }
+ { 3 - \int_eval:n { \l__dmn_suboutput_int + 1 } }
+ ]
+ }
+ \exp_args:Ne \multicolumn
+ { \int_eval:n { 1 } }
+ { l }
+ { #1 } \\
+ #2 &
+ \exp_args:Ne \multicolumn
+ { \int_eval:n {\l__dmn_suboutput_int}}
+ { c }
+ { #3 } \\
+ & \clist_use:Nn \l__dmn_suboutput_clist { & } \\
+ 1 &
+ \seq_map_inline:Nn \l__dmn_cells_seq
+ {
+ \int_compare:nT { \c@jCol = 0 } { \int_eval:n { \c@iRow - 1 } & }
+ ##1
+ \int_compare:nTF { \c@jCol = \l__dmn_suboutput_int + 1 }
+ { \\ }
+ { & }
+ }
+ \end { NiceTabular }
+ }
+
+\NewDocumentCommand \goaltable { m m }
+ {
+ \seq_clear_new:N \l__dmn_cells_seq
+ \seq_set_split:Nnn \l__dmn_cells_seq { , } { #2 }
+ \use:x
+ {
+ \exp_not:N \begin { NiceTabular }
+ { \prg_replicate:nn { 1 } c }
+ [
+ hvlines-except-corners ,
+ code-before =
+ \exp_not:N \rectanglecolor
+ { blue!30!green!10!red!20 }
+ { 1 - \int_eval:n { 1 } }
+ { 1 - \int_eval:n { 1} }
+ ]
+ }
+ \textbf{#1} \\
+ %\exp_args:Ne \multicolumn
+ % { \int_eval:n { 1 } }
+ % { c }
+ % { \textbf{#1} } \\
+ \seq_map_inline:Nn \l__dmn_cells_seq
+ {
+ \int_compare:nT { \c@jCol = 0 } { }
+ ##1
+ \int_compare:nTF { \c@jCol = 1 }
+ { \\ }
+ { & }
+ }
+ \end { NiceTabular }
+ }
+
+\endinput
+%%
+%% End of file `decision-table.sty'.
+
+% \end{macrocode}
%
%
%
diff --git a/macros/latex/contrib/decision-table/decision-table.ins b/macros/latex/contrib/decision-table/decision-table.ins
index e6e24bff6f..015a099668 100644
--- a/macros/latex/contrib/decision-table/decision-table.ins
+++ b/macros/latex/contrib/decision-table/decision-table.ins
@@ -1,5 +1,5 @@
%%
-%% Copyright (C) 2020 by S. Vandevelde and F. Pantigny
+%% Copyright (C) 2020-2021 by S. Vandevelde and F. Pantigny
%%
%%
%% This file may be distributed and/or modified under the
@@ -17,7 +17,7 @@
\usedir{tex/latex/decision-table}
\preamble
-Copyright (C) 2020 by S. Vandevelde, F. Pantigny
+Copyright (C) 2020-2021 by S. Vandevelde, F. Pantigny
This file may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either
diff --git a/macros/latex/contrib/decision-table/decision-table.pdf b/macros/latex/contrib/decision-table/decision-table.pdf
index 001dea8435..9849c4298c 100644
--- a/macros/latex/contrib/decision-table/decision-table.pdf
+++ b/macros/latex/contrib/decision-table/decision-table.pdf
Binary files differ
diff --git a/macros/latex/contrib/lwarp/README.txt b/macros/latex/contrib/lwarp/README.txt
index b493fb76a1..d6e0d17d05 100644
--- a/macros/latex/contrib/lwarp/README.txt
+++ b/macros/latex/contrib/lwarp/README.txt
@@ -1,5 +1,5 @@
-LaTeX lwarp package v0.901 README.txt
+LaTeX lwarp package v0.902 README.txt
Files included are:
diff --git a/macros/latex/contrib/lwarp/lwarp.dtx b/macros/latex/contrib/lwarp/lwarp.dtx
index 1f899bfa1f..743e616dc1 100644
--- a/macros/latex/contrib/lwarp/lwarp.dtx
+++ b/macros/latex/contrib/lwarp/lwarp.dtx
@@ -16,7 +16,7 @@
% \iffalse
%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<package>\ProvidesPackage{lwarp}
-%<package> [2021/08/27 v0.901 Allows LaTeX to directly produce HTML5 output.]
+%<package> [2021/10/01 v0.902 Allows LaTeX to directly produce HTML5 output.]
%
%<*driver>
\documentclass{ltxdoc}
@@ -144,24 +144,10 @@
bottom=1in
]{geometry}
-\usepackage{graphicx}
-\graphicspath{{images/}}
+\usepackage{pict2e}% for the Lwarp logo
-
-\usepackage{metalogo}
-
-\makeatletter
-\@ifpackageloaded{erewhon}{
-% for erewhon:
-\setlogokern{Te}{-.08em}
-\setlogokern{eX}{-0.04em}
-\setlogokern{La}{-.25em}
-\setlogokern{aT}{-.10em}
-\setlogokern{Xe}{-.04em}
-\setlogokern{eL}{-.06em}
-\setlogodrop{0.27ex}
-}{}
-\makeatother
+% Improve the LaTeX and related logos:
+\usepackage{metalogox}
\usepackage{enumitem}
@@ -210,7 +196,8 @@
\pagestyle{pageheadfoot}
-\usepackage{dtxdescribe}[2019/07/16]
+% Indexing, logos, \Describexxxx, etc:
+\usepackage{dtxdescribe}[2021/09/02]
\usepackage{splitidx}
@@ -362,19 +349,15 @@ is also loaded automatically if \pkg{koma-script} classes are in use.
\cs{DeclareDocumentCommand} is used to overwrite the \pkg{koma-script} definitions.
}
-\newcommand{\documentationnotes}{
-The following sections document the actual implementation of the \pkg{lwarp} package.
-
-The small numbers at the left end of a line refer to line numbers
-\margintag{line numbers}
-in the \texttt{lwarp.sty} file.
-
+\makeatletter
+\newcommand{\maindocumentationnotes}{
Blue-colored tags in the left margin
\margintag{subjects}
aid in quickly identifying the subject of each paragraph.
+These are often the targets of index entries.
Black-colored tags in the left marign are used to
-\margintag{objects}
+\DTXD@margintag{}{Lwarp}{Prog}%
identify programming objects such as files, packages,
environments, booleans, and counters.
Items without a tag are command macros.
@@ -385,6 +368,17 @@ individual entries, and are also listed together under ``files'', ``packages'',
Special warnings are marked with a warning icon.
\watchout[warnings]
+}
+\makeatother
+
+\newcommand{\codedocumentationnotes}{
+The following sections document the actual implementation of the \pkg{lwarp} package.
+
+The small numbers at the left end of a line refer to line numbers
+\margintag{line numbers}
+in the \texttt{lwarp.sty} file.
+
+\maindocumentationnotes
\codehtml\vspace*{5.25ex}\ignorespaces
\codeprint\vspace*{5.25ex}\ignorespaces
@@ -410,8 +404,8 @@ where it will affect the following \cs{includegraphics} and other images.
to the next image generated by a \env{lateximage}, \env{picture}, \env{tikzpicture},
or any other similar environment which generates an image,
or the next \SVG\ math expression. This tag is cleared after use.
-The tag is also cleared after each \brand{MathJax} expression, in case the user
-changes between \SVG\ math and \brand{MathJax}.
+The tag is also cleared after each \MathJax\ expression, in case the user
+changes between \SVG\ math and \MathJax.
\cs{ThisAltText} also may be used to add an \HTML\ \attribute{title} to
a reference or hyperlink, such as a \cs{ref}, \cs{cref}, \cs{href},
@@ -786,7 +780,7 @@ if \texttt{FileDepth} allows:
\cs{theendnotes}
\end{sourcedisplay}
-If using \brand{MathJax}, see \cref{sec:limitsfootnotes}
+If using \MathJax, see \cref{sec:limitsfootnotes}
\watchout[\cs{endnotemark}]\margintag{numbering}
regarding the use of \cs{endnotemark} and \cs{endnotetext}.
}
@@ -910,7 +904,7 @@ due to the limited number of symbols which are available.
\limitsperpage
% No longer true:
-% If using \brand{MathJax}, \cs{footnote} and \cs{endnote} work,
+% If using \MathJax, \cs{footnote} and \cs{endnote} work,
% \watchout[MathJax, \cs{footnotemark}]
% but for \cs{footnotemark}, after each math expression with a \cs{footnotemark}
% adjust the \ctr{footnote} counter by the number of \cs{footnotemark}s:
@@ -920,8 +914,8 @@ due to the limited number of symbols which are available.
% \end{sourcedisplay}
% Similarly for \pkg{endnotes}, but \emph{not} \pkg{sidenotes}.
-Also for \brand{MathJax}, \cs{footnotename} is used for a \cs{footnotemark}
-\margintag{\brand{MathJax}}
+Also for \MathJax, \cs{footnotename} is used for a \cs{footnotemark}
+\margintag{\MathJax}
if the actual footnote number is not known.
To redefine it, provide it before loading \pkg{lwarp}:
\begin{sourcedisplay}
@@ -1003,7 +997,7 @@ If using the \pkg{bigfoot} package, and possibly also \pkg{manyfoot},
\trouble{bigfoot=\pkg{bigfoot}}
\trouble{manyfoot=\pkg{manyfoot}}
problems may occur with counter allocation because \pkg{lwarp} uses many counters,
-and there is a difference in how counters numbered 256 and up are handled in pdf\LaTeX.
+and there is a difference in how counters numbered 256 and up are handled in \pdfLaTeX.
With \pkg{bigfoot} this has been known to show up as an error
related to one footnote insert being forbidden inside another. Another problem
showed up as a input stack error, and which of these problems occurred depended on how
@@ -1013,7 +1007,7 @@ As a possible solution, try creating several new counters before defining
\pkg{bigfoot} or \pkg{manyfoot} footnotes,
hoping to shift the problematic counter above the 256 threshold.
It may instead be necessary to use \XeLaTeX\ or \LuaLaTeX\
-instead of pdf\LaTeX.
+instead of \pdfLaTeX.
}
\newcommand{\limitskomascript}{
@@ -1187,8 +1181,8 @@ which defaults to:
Math may be rendered
\margintag{Math rendering}
-as \SVG\ graphics or using the \brand{MathJax} JavaScript display engine.
-\gindex{JavaScript=\brand{JavaScript}>mathjax=\brand{MathJax}}
+as \SVG\ graphics or using the \MathJax\ JavaScript display engine.
+\gindex{JavaScript=\brand{JavaScript}>mathjax=\MathJax}
Rendering math as images creates a new \SVG\ file for each expression,
\margintag{\SVG\ files}
@@ -1214,7 +1208,7 @@ Conversion to \MathML\ might be a better approach,
among other things allowing a more compact representation of math than \SVG\ drawings.
Problems with \MathML\ include limited browser support and some
issues with the fine control of the appearance of the result.
-Also see \cref{sec:epub} regarding \EPUB\ output with \brand{MathJax}.
+Also see \cref{sec:epub} regarding \EPUB\ output with \MathJax.
\subsubsection{\SVG\ option}
@@ -1256,71 +1250,71 @@ end of the compile if \pkg{graphics} or \pkg{graphicx} are not used.
\trouble[\SVG\ math in \TeX\ boxes]{math>in \TeX\ boxes}
before and after each image.
-\subsubsection{\brand{MathJax} option}
+\subsubsection{\MathJax\ option}
\label{sec:limitsmathjax}
-The \brand{MathJax} (\url{mathjax.org}) \LaTeX-math to \HTML\ converter
-\margintag{\brand{MathJax} math option}
+The \MathJax\ (\url{mathjax.org}) \LaTeX-math to \HTML\ converter
+\margintag{\MathJax\ math option}
may be used to display math.
\DescribeProgram{MathJax}
-\gindex{math>mathjax=\brand{MathJax} summary}
-\gindex{mathjax=\brand{MathJax}>summary}
+\gindex{math>mathjax=\MathJax\ summary}
+\gindex{mathjax=\MathJax>summary}
-When \brand{MathJax} is enabled, math is rendered twice:
+When \MathJax\ is enabled, math is rendered twice:
\begin{enumerate}
\item As regular \LaTeX\ \PDF\ output placed inside an \HTML\ comment, allowing
equation numbering and cross referencing to be almost entirely under the control of \LaTeX, and
\item As detokenized printed \LaTeX{} commands placed directly into the \HTML\ output
-for interpretation by the \brand{MathJax} display scripts. An additional script is used to
+for interpretation by the \MathJax\ display scripts. An additional script is used to
pre-set the equation number format and value according to the current \LaTeX\ values,
-and the \brand{MathJax} equation numbering system is ignored in favor of the \LaTeX\ internal system,
+and the \MathJax\ equation numbering system is ignored in favor of the \LaTeX\ internal system,
seamlessly integrating with the rest of the \HTML\ output, including any math
-appearing in non-\brand{MathJax} \SVG\ output.
+appearing in non-\MathJax\ \SVG\ output.
\end{enumerate}
-\subsubsection{Customizing \brand{MathJax}}
+\subsubsection{Customizing \MathJax}
\label{sec:limitscustomizemathjax}
-\gindex{mathjax=\brand{MathJax}>custom functions}
-\gindex{math>mathjax=\brand{MathJax} custom functions}
+\gindex{mathjax=\MathJax>custom functions}
+\gindex{math>mathjax=\MathJax\ custom functions}
\limitscustomizemathjax
-\subsubsection{\brand{MathJax} limitations}
-Limitations when using \brand{MathJax} include:
-\margintag{\brand{MathJax} limitations}
+\subsubsection{\MathJax\ limitations}
+Limitations when using \MathJax\ include:
+\margintag{\MathJax\ limitations}
\DescribeProgram{MathJax}
\begin{itemize}
-\item \brand{MathJax} does not support \cs{multicolumn} or \pkg{multirow}.
+\item \MathJax\ does not support \cs{multicolumn} or \pkg{multirow}.
\trouble[\cs{multicolumn}, \pkg{multirow}]%
- {multicolumn=\cs{multicolumn}>mathjax=\brand{MathJax}}
- \trouble{multirow=\pkg{multirow}>mathjax=\brand{MathJax}}
- \trouble{array=\env{array}>mathjax=\brand{MathJax}}
- \trouble{mathjax=\brand{MathJax}>multicolumn=\cs{multicolumn}}
- \trouble{mathjax=\brand{MathJax}>multirow=\cs{multirow}}
+ {multicolumn=\cs{multicolumn}>mathjax=\MathJax}
+ \trouble{multirow=\pkg{multirow}>mathjax=\MathJax}
+ \trouble{array=\env{array}>mathjax=\MathJax}
+ \trouble{mathjax=\MathJax>multicolumn=\cs{multicolumn}}
+ \trouble{mathjax=\MathJax>multirow=\cs{multirow}}
These may be used in text \env{tabular}s or \SVG\ math,
- but in \brand{MathJax} math \env{array}s they are emulated.
+ but in \MathJax\ math \env{array}s they are emulated.
\cs{multicolumn} only fills a single cell, resulting in a short row.
\cs{multirow} simply prints its text on the first line.
-\item Footnotes are emulated when used inside a \brand{MathJax} expression.
+\item Footnotes are emulated when used inside a \MathJax\ expression.
\watchout[footnotes]
For an equation with a single footnote, the correct footnote number is used.
For non-equations, \cs{footnotename} is used instead, since the actual
number cannot be tracked.
- See \cref{sec:limitsfootnotes} regarding the use of footnotes with \brand{MathJax}.
+ See \cref{sec:limitsfootnotes} regarding the use of footnotes with \MathJax.
-\item Inside a \brand{MathJax} expression,
- \trouble[references]{mathjax=\brand{MathJax}>references}
- \trouble{cross reference>mathjax=\brand{MathJax}}
- \trouble{reference>mathjax=\brand{MathJax}}
+\item Inside a \MathJax\ expression,
+ \trouble[references]{mathjax=\MathJax>references}
+ \trouble{cross reference>mathjax=\MathJax}
+ \trouble{reference>mathjax=\MathJax}
references to equations work within the same \HTML\ web page, but do not
work when referring to an equation in a different \HTML\ web page.
- Outside of a \brand{MathJax} expression, in the text body, references work
+ Outside of a \MathJax\ expression, in the text body, references work
as expected.
\item Math appearing inside a lateximage,
\margintag{lateximage}
and therefore also inside a \tikz\ or \env{picture}
- environment, is rendered as \SVG\ math even if \brand{MathJax}
+ environment, is rendered as \SVG\ math even if \MathJax
is used in the rest of the document.
\item For \pkg{siunitx},
@@ -1333,21 +1327,38 @@ Limitations when using \brand{MathJax} include:
\item A \env{tabbing} environment is emulated
using an \HTML\ \element{pre}.\margintag{tabbing}\
- While \brand{MathJax} is enabled inside \env{tabbing}, the browser may not correctly
+ While \MathJax\ is enabled inside \env{tabbing}, the browser may not correctly
render the horizontal alignment of the math and text following after on the same line.
-\item \brand{MathJax} includes the \prog{textmacros} extension,
+\item \MathJax\ includes the \prog{textmacros} extension,
\margintag{\cs{text}}
which supports various macros which are commonly used inside \cs{text},
such as \cs{textbf} and text accents.
\pkg{Lwarp} supports this extension.
+\item If using \dviLaTeX\ or \pdfLaTeX,
+ \trouble[Unicode]{Unicode>mathjax=\MathJax}
+ \trouble{encoding>mathjax=\MathJax}
+ \trouble{character encoding>mathjax=\MathJax}
+ \trouble{mathjax=\MathJax>encoding}
+ \trouble{mathjax=\MathJax>character encoding}
+ \trouble{mathjax=\MathJax>Unicode}
+ unicode input may not appear correctly in \MathJax.
+ Either use \XeLaTeX\ or \LuaLaTeX, or replace Unicode special characters such as
+\begin{sourcedisplay}
+\cs{text}\{special character \ae\}
+\end{sourcedisplay}
+ with their special macros, such as
+\begin{sourcedisplay}
+\cs{text}\{special character \cs{ae}\}
+\end{sourcedisplay}
+
\item Many other math-related macros and packages are
- \trouble[other macros and packages]{mathjax=\brand{MathJax}>unsupported packages}
- \trouble{package>mathjax=\brand{MathJax} support}
- not directly supported by \brand{MathJax},
+ \trouble[other macros and packages]{mathjax=\MathJax>unsupported packages}
+ \trouble{package>mathjax=\MathJax\ support}
+ not directly supported by \MathJax,
including \cs{ensuremath} and occasionally-used macros such as \cs{relax}.
- While using \brand{MathJax}, \pkg{lwarp} provides emulation
+ While using \MathJax, \pkg{lwarp} provides emulation
for many of these macros, as well as for footnotes and emulation for
dozens of packages (see \cref{tab:supported}).
In many cases these emulations simply ignore the package in a source-compatible way.
@@ -1380,7 +1391,7 @@ package.
\DescribeMacro{\inlinemathnormal}
\DescribeMacro{\inlinemathother}
An inline math expression is usually converted to a reusable hashed \SVG\ math
-image, or a \brand{MathJax} expression. The hash or expression depends on the contents
+image, or a \MathJax\ expression. The hash or expression depends on the contents
of the math expression. In most cases this math expression is static, such as \texttt{\$x+1\$},
so the image can be reused for multiples instances of the same expression.
In some cases,
@@ -1391,11 +1402,11 @@ Another problem is complicated contents
\margintag{complicated \attribute{alt} tag}
which do not expand well in an \attribute{alt} tag.
Yet another problem is math packages which are only partially emulated
-\margintag{\brand{MathJax} limitations}
-in \brand{MathJax}.
+\margintag{\MathJax\ limitations}
+in \MathJax.
The macro \cs{inlinemathother} may be used before a sequence of dynamic or complicated
math expressions, and \cs{inlinemathnormal} after. Doing so tells \pkg{lwarp} to
-use unhashed \SVG\ math images for those particular expressins, even if \brand{MathJax}
+use unhashed \SVG\ math images for those particular expressins, even if \MathJax
is otherwise in use.
See \cref{sec:localizingdynamicmath}.
}
@@ -1404,7 +1415,7 @@ See \cref{sec:localizingdynamicmath}.
\DescribeMacro{\displaymathnormal}
By default, or when selecting \cs{displaymathnormal},
\brand{Mathjax} math display environments print their contents
-as text into \HTML\ for \brand{MathJax} to interpret,
+as text into \HTML\ for \MathJax\ to interpret,
and \SVG\ display math environments render their contents as \SVG\ images
and use their contents as the \attribute{alt} tag of \HTML\ output.
To do so, the contents are loaded into a macro for reuse.
@@ -1415,12 +1426,12 @@ When selecting \cs{displaymathother},
it is assumed that the contents are more complicated than ``pure''
math.
An example is an elaborate \tikz\ picture,
-\margintag{\brand{MathJax} unsupported}
-which will not render in \brand{MathJax} and
+\margintag{\MathJax\ unsupported}
+which will not render in \MathJax\ and
will not make sense as an \HTML\ \attribute{alt} tag.
\margintag{complicated \attribute{alt} tag}
-In this mode, \brand{MathJax} is turned off,
-math display environments become \SVG\ images, even if \brand{MathJax} is selected,
+In this mode, \MathJax\ is turned off,
+math display environments become \SVG\ images, even if \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.
@@ -1428,14 +1439,14 @@ so complicated objects such as \tikz\ pictures are more likely to compile succes
\newcommand{\limitscustomizemathjax}{%
-\pkg{lwarp} detects and adjusts \brand{MathJax} equation numbering format for
+\pkg{lwarp} detects and adjusts \MathJax\ equation numbering format for
\margintag{equation numbering}
-\gindex{equation numbering>mathjax=\brand{MathJax}}
-\gindex{math>equation numbering, mathjax=\brand{MathJax}}
-\gindex{mathjax=\brand{MathJax}>equation numbering}
-\trouble{equation numbering>mathjax=\brand{MathJax}}
-\trouble{mathjax=\brand{MathJax}>equation numbering}
-\trouble{math>equation numbering>mathjax=\brand{MathJax}}
+\gindex{equation numbering>mathjax=\MathJax}
+\gindex{math>equation numbering, mathjax=\MathJax}
+\gindex{mathjax=\MathJax>equation numbering}
+\trouble{equation numbering>mathjax=\MathJax}
+\trouble{mathjax=\MathJax>equation numbering}
+\trouble{math>equation numbering>mathjax=\MathJax}
\pkg{article} and \pkg{book} style equations as well as
\pkg{amsmath} \cs{numberwithin} for chapters, sections, and subsections.
Custom equation number formats may be set as follows, for example:
@@ -1449,9 +1460,9 @@ The \pkg{amsmath} \env{subequations} environment is supported, but only
\watchout[\env{subequation}]
with \cs{alpha} subequation numbering.
-\brand{MathJax} does not have preexisting support every possible math function.
+\MathJax\ does not have preexisting support every possible math function.
\margintag{global customizations}
-Additional \brand{MathJax} function definitions may be
+Additional \MathJax\ function definitions may be
defined in the preamble. These will be declared at the start of each \HTML\ page,
and thus will have a global effect across all \HTML\ pages.
@@ -1468,14 +1479,14 @@ Examples:
\textred{\cs{end}\{warpMathJax\}}
\end{sourcedisplay}
To avoid a slowdown in compile speed, use
-\trouble[slow compilation]{mathjax=\brand{MathJax}>slow compilation}
-\trouble{compiling>slow \brand{MathJax}}
+\trouble[slow compilation]{mathjax=\MathJax>slow compilation}
+\trouble{compiling>slow \MathJax}
the \env{warpMathJax} environment to prevent its contents from being processed in
print or \SVG\ math output.
Also, place each new definition inside its own \cs{CustomizeMathJax}.
A warning to this effect is issued if an overly-long definition is attempted.
-\pkg{lwarp} already provides \brand{MathJax} customizations for some packages.
+\pkg{lwarp} already provides \MathJax\ customizations for some packages.
When using \pkg{siunitx}, a similar process may be used to add custom units:
\margintag{\pkg{siunitx}}
@@ -1508,16 +1519,16 @@ To maintain compile speed, use the \env{warpMathJax} environment,
and use a separate math environment for each definition.
\DescribeMacro{\ifstar}
-For \brand{MathJax}, use \cs{ifstar} instead of \cs{@ifstar}:
+For \MathJax, use \cs{ifstar} instead of \cs{@ifstar}:
\gindex{starred macros}
-\gindex{ifnextstar=\cs{@ifnextstar} with \brand{MathJax}}
-\gindex{@ifstar=\cs{@ifstar} with \brand{MathJax}}
-\gindex{mathjax=\brand{MathJax}>starred macros}
-\trouble{mathjax=\brand{MathJax}>starred macros}
-\trouble{math>starred macros and mathjax=\brand{MathJax}}
-\gindex{mathjax=\brand{MathJax}>@ifstar=\cs{@ifstar} macros}
-\trouble{mathjax=\brand{MathJax}>@ifstar=\cs{@ifstar} macros}
-\trouble{math>@ifstar=\cs{@ifstar} macros and \brand{MathJax}}
+\gindex{ifnextstar=\cs{@ifnextstar} with \MathJax}
+\gindex{@ifstar=\cs{@ifstar} with \MathJax}
+\gindex{mathjax=\MathJax>starred macros}
+\trouble{mathjax=\MathJax>starred macros}
+\trouble{math>starred macros and mathjax=\MathJax}
+\gindex{mathjax=\MathJax>@ifstar=\cs{@ifstar} macros}
+\trouble{mathjax=\MathJax>@ifstar=\cs{@ifstar} macros}
+\trouble{math>@ifstar=\cs{@ifstar} macros and \MathJax}
\begin{sourcedisplay}
\cs{CustomizeMathJax}\{ \\
\fquad \cs{def}\cs{myname}\{\\
@@ -1528,12 +1539,12 @@ For \brand{MathJax}, use \cs{ifstar} instead of \cs{@ifstar}:
\end{sourcedisplay}
\DescribeMacro{\ifnextchar}
-For \brand{MathJax}, use \cs{ifnextchar} instead of \cs{@ifnextchar}:
-\gindex{@ifnextchar=\cs{@ifnextchar} with \brand{MathJax}}
-\gindex{ifnextchar=\cs{@ifnextchar} with \brand{MathJax}}
-\gindex{mathjax=\brand{MathJax}>@ifnextchar=\cs{@ifnextchar} macros}
-\trouble{mathjax=\brand{MathJax}>@ifnextchar=\cs{@ifnextchar} macros}
-\trouble{math>@ifnextchar=\cs{@ifnextchar} macros and \brand{MathJax}}
+For \MathJax, use \cs{ifnextchar} instead of \cs{@ifnextchar}:
+\gindex{@ifnextchar=\cs{@ifnextchar} with \MathJax}
+\gindex{ifnextchar=\cs{@ifnextchar} with \MathJax}
+\gindex{mathjax=\MathJax>@ifnextchar=\cs{@ifnextchar} macros}
+\trouble{mathjax=\MathJax>@ifnextchar=\cs{@ifnextchar} macros}
+\trouble{math>@ifnextchar=\cs{@ifnextchar} macros and \MathJax}
\begin{sourcedisplay}
\cs{CustomizeMathJax}\{\cs{def}\cs{myname}\{\cs{ifnextchar} X \cs{found}\cs{notfound}\}\}
\end{sourcedisplay}
@@ -1590,19 +1601,19 @@ from the \pkg{hyperref} package:
\optn{mathic} is not emulated for \HTML.
\watchout[italic correction]
- If using \brand{MathJax}:
- \trouble[\brand{MathJax}]{mathjax=\brand{MathJax}>mathtools=\pkg{mathtools}}
+ If using \MathJax:
+ \trouble[\MathJax]{mathjax=\MathJax>mathtools=\pkg{mathtools}}
\begin{itemize}
- \item \pkg{mathtools} \optn{disallowspaces} does not work for \brand{MathJax}.
+ \item \pkg{mathtools} \optn{disallowspaces} does not work for \MathJax.
Protect brackets which are not optional arguments, such as:
\begin{sourcedisplay}
\cs{begin}\{gathered\}\textred{\{\}} \\
{[}p{]}=1 \dots \\
\cs{end}\{gathered\}
\end{sourcedisplay}
- \item \optn{showonlyrefs} does not work in \brand{MathJax}, and will result
+ \item \optn{showonlyrefs} does not work in \MathJax, and will result
in a difference in equation numbering compared to the print version.
- \item \env{alignat} in \brand{MathJax} requires math mode, but
+ \item \env{alignat} in \MathJax\ requires math mode, but
in \LaTeX\ it doesn't. It may be required to use \env{warpHTML} and
\env{warpprint} to isolate a version for each mode.
\item \cs{DeclarePairedDelimiter} and related must be in the preamble
@@ -1628,15 +1639,15 @@ wrap both inside a single \env{lateximage}:
}
\newcommand{\limitschemformula}{%
-\pkg{chemformula} works best without \brand{MathJax}.
-\trouble[\pkg{chemformula} with \brand{MathJax}]{mathjax=\brand{MathJax}>chemformula=\pkg{chemformula}}
-\trouble{chemformula=\pkg{chemformula}>mathjax=\brand{MathJax}}
-If \brand{MathJax} is used,
+\pkg{chemformula} works best without \MathJax.
+\trouble[\pkg{chemformula} with \MathJax]{mathjax=\MathJax>chemformula=\pkg{chemformula}}
+\trouble{chemformula=\pkg{chemformula}>mathjax=\MathJax}
+If \MathJax\ is used,
\cs{displaymathother} must be used before \env{array}, and then
\cs{displaymathnormal} may be used after.
(The \pkg{chemformula} package adapts to \env{array},
but does not know about \brand{Mathjax}, and
-\brand{MathJax} does not know about \pkg{chemformula}.)
+\MathJax\ does not know about \pkg{chemformula}.)
While using \brand{Mathjax}, \cs{displaymathother} may also be used
for other forms of display and inline math which contain \pkg{chemformula} expressions.
@@ -1917,7 +1928,7 @@ into a single image file,
but display math and other environments such as \env{picture} and \tikz\ require
one image file each.
For a document with a large amount of math,
-see \cref{sec:tutorialmathjax} to use \brand{MathJax} instead.
+see \cref{sec:tutorialmathjax} to use \MathJax\ instead.
}
\newcommand{\limitstikz}{%
@@ -2352,9 +2363,9 @@ or the packages \pkg{multirow}, \pkg{longtable}, \pkg{supertabular}, or \pkg{xta
\dots\ \& & \textred{\cs{mcolrowcell}} \hfill \& \hfill \textred{\cs{mcolrowcell}} & \&\ \dots \\
\end{tabular}
\end{sourcedisplay}
- \item \brand{MathJax} does not support \pkg{multirow}, so it is emulated
- \trouble[MathJax]{mathjax=\brand{MathJax}>multirow=\cs{multirow}}
- \trouble{multirow=\pkg{multirow}>mathjax=\brand{MathJax}}
+ \item \MathJax\ does not support \pkg{multirow}, so it is emulated
+ \trouble[MathJax]{mathjax=\MathJax>multirow=\cs{multirow}}
+ \trouble{multirow=\pkg{multirow}>mathjax=\MathJax}
to only print its text on the first row.
\cs{multirow} works as expected in text \env{tabular}s or \SVG\ math.
\end{itemize}
@@ -2496,7 +2507,7 @@ are above or below the delimiter:
\hrule
\end{sourcedisplay}
-For \brand{MathJax}, limited emulation is provided which merely prints the
+For \MathJax, limited emulation is provided which merely prints the
delimter and optional text in the first row.
}
@@ -2899,24 +2910,24 @@ For math mode with \SVG\ display, the original \pkg{siunitx} code is used while
generating the \SVG\ image.
For text mode, \pkg{lwarp} uses an emulation which provides a very effective
\HTML\ interpretation of \pkg{siunitx}.
-For math expressions while using \brand{MathJax},
-\trouble{siunitx=\pkg{siunitx}>mathjax=\brand{MathJax}}
-\trouble[MathJax]{mathjax=\brand{MathJax}>siunitx=\pkg{siunitx}}
+For math expressions while using \MathJax,
+\trouble{siunitx=\pkg{siunitx}>mathjax=\MathJax}
+\trouble[MathJax]{mathjax=\MathJax>siunitx=\pkg{siunitx}}
a limited emulation is used.
Most functions work reasonably well, but many options cannot be emulated.
Complicated parsing such as for \cs{ang} is not supported.
The result usually looks fine, and otherwise is enough to get the meaning across.
-% \pkg{lwarp}'s \brand{MathJax} emulation for \pkg{siunitx} is meant to be a
-% stop-gap measure until an extension is included in \brand{MathJax}.
+% \pkg{lwarp}'s \MathJax\ emulation for \pkg{siunitx} is meant to be a
+% stop-gap measure until an extension is included in \MathJax.
% As of this writing, the third-party \pkg{siunitx} extension
-% for \brand{MathJax} is not currently hosted at any public CDN,
+% for \MathJax\ is not currently hosted at any public CDN,
% thus \pkg{siunitx} is not usable with this extension unless a local copy
% of this extension is created first.
-% See \cs{MathJaxFilename} to select a custom \brand{MathJax} script, but \pkg{lwarp}'s
+% See \cs{MathJaxFilename} to select a custom \MathJax\ script, but \pkg{lwarp}'s
% emulation would have to be diabled as well.
-Document modifications required for \brand{MathJax}:
+Document modifications required for \MathJax:
\begin{itemize}
\item Custom units may be added with \cs{CustomizeMathJax}.
\margintag{custom units}
@@ -2940,16 +2951,16 @@ Also see \nameref{sec:limitsmathjax}, \cref{sec:limitsmathjax}.
\trouble{nicefrac=\pkg{nicefrac}}
\trouble{units=\pkg{units}}
\pkg{units} and \pkg{nicefrac} work with \pkg{lwarp}, but
-\brand{MathJax} does not have an extension for \pkg{units} or \pkg{nicefrac}.
+\MathJax\ does not have an extension for \pkg{units} or \pkg{nicefrac}.
These packages do work with \pkg{lwarp}'s option \optn{svgmath}.
}
\newcommand{\limitsphysics}{%
\pkg{physics} works as-is for \HTML\ with \SVG\ math.
-For \brand{MathJax}, the \brand{MathJax} v3 \pkg{physics} extension is used.
-% emulation is provided via \pkg{lwarp}'s \brand{MathJax} macros.
-% These are not the same as the third-party \brand{MathJax} extension.
+For \MathJax, the \MathJax\ v3 \pkg{physics} extension is used.
+% emulation is provided via \pkg{lwarp}'s \MathJax\ macros.
+% These are not the same as the third-party \MathJax\ extension.
%
% \begin{itemize}
% \item The \optn{notrig} option is honored.
@@ -3141,7 +3152,7 @@ This boolean may be tested by the user for later use.
%<*package>
% \fi
%
-% \CheckSum{53937}
+% \CheckSum{54254}
%
% \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
@@ -3284,6 +3295,7 @@ This boolean may be tested by the user for later use.
% \changes{v0.899}{2021/06/29}{\ 2021/06/29}
% \changes{v0.900}{2021/07/17}{\ 2021/07/17}
% \changes{v0.901}{2021/08/27}{\ 2021/08/27}
+% \changes{v0.902}{2021/10/01}{\ 2021/10/01}
@@ -3299,7 +3311,16 @@ This boolean may be tested by the user for later use.
% \newgeometry{margin=1in}
%
% \begin{center}
-% \includegraphics[width=.3\linewidth]{lwarp_logo.pdf}
+%
+% ^^A Generate the Lwarp logo:
+% \setlength{\unitlength}{1cm}
+% \begin{picture}(5,2)
+% \put(0,1){\textcolor[HTML]{74515b}{\fontsize{55}{65}\selectfont L\raisebox{.2ex}{\hspace*{-.1em}warp}}}
+% \put(0,.25){\parbox{5cm}{%
+% \textcolor[HTML]{8c6b1d}{\fontsize{22}{30}\selectfont \LaTeX} \hfill
+% \textcolor[HTML]{1d3d8c}{\fontsize{22}{30}\selectfont HTML5}%
+% }}
+% \end{picture}
%
% {\Huge The \pkg{lwarp} package}
%
@@ -3316,9 +3337,9 @@ This boolean may be tested by the user for later use.
% The \pkg{lwarp} package converts \LaTeX\ to \HTML\ by using \LaTeX\ to process the
% user's document and directly generate \HTML\ tags. External utility programs are only
% used for the final conversion of text and images. Math may be represented
-% by \SVG\ images or \brand{MathJax}.
+% by \SVG\ images or \MathJax.
% More than 500 \LaTeX\ packages and classes are supported,
-% of which more than 90 also support \brand{MathJax}.
+% of which more than 90 also support \MathJax.
%
% Documents may be produced by \DVI\ or \PDF\ \LaTeX, Lua\LaTeX, \XeLaTeX;
% by several CJK engines, classes, and packages;
@@ -3343,7 +3364,7 @@ This boolean may be tested by the user for later use.
%
% \SVG\ math and many other generated images
% include \LaTeX\ expressions in the \attribute{alt} tags.
-% \brand{MathJax} may be used with advanced equation numbering
+% \MathJax\ may be used with advanced equation numbering
% under the direct control of \pkg{lwarp}.
%
% Complicated tables are supported, which copy/paste well into \brand{LibreOffice Writer}.
@@ -3363,9 +3384,9 @@ This boolean may be tested by the user for later use.
%
% ^^A The \pkg{lwarp} package allows \LaTeX\ to directly produce \HTMLfive\ output,
% ^^A using external utility programs only for the final conversion of text and images.
-% ^^A Math may be represented by \SVG\ files or \brand{MathJax}.
+% ^^A Math may be represented by \SVG\ files or \MathJax.
%
-% ^^A Documents may be produced by pdf\LaTeX, \LuaLaTeX, or \XeLaTeX.
+% ^^A Documents may be produced by \pdfLaTeX, \LuaLaTeX, or \XeLaTeX.
% ^^A A \prog{texlua} script removes the need for system utilities such as \prog{make} and \prog{gawk},
% ^^A and also supports \prog{xindy} and \prog{latexmk}. Configuration is automatic at the
% ^^A first manual compile.
@@ -3460,7 +3481,7 @@ This boolean may be tested by the user for later use.
% \item[GUST e-foundry fonts:] Enhanced for math and additional language groups.
% \item[LaTeX Project:] Modernizing the \LaTeX\ core.
% \item[Libre Font Fund:] Fonts, tools (FontForge), and distribution (the Open Font Library).
-% \item[LuaTeX:] Combining the pdf\TeX\ engine and the Lua language.
+% \item[LuaTeX:] Combining the \pdfTeX\ engine and the Lua language.
% \item[MetaPost:] Postscript graphics.
% \item[MacTeX:] \TeX\ for Mac.
% \item[PDF Accessibility:] Modern \PDF\ standards.
@@ -3509,7 +3530,20 @@ This boolean may be tested by the user for later use.
%
% \begin{description}
% \needspace{2\baselineskip}
-% \item[v0.901:] Tabular columns, float caption \CSS, \brand{MathJax} packages.
+% \item[v0.902:] \pkg{beamerarticle}, footnotes, paragraph tags.
+% \begin{itemize}
+% \item Fixed footnotes inside descriptions, minipages, \pkg{amsthm}, \cs{nameref}.
+% \margintag{core}
+% \item Improved various paragraph tags.
+% \item Improved \pkg{parnotes}, \pkg{sympytex}.
+% \margintag{packages}
+% \item Added \pkg{beamerarticle}.
+% \item Updated \pkg{luatexko}, \pkg{xetexko}, \pkg{tagpdf}.
+% \item Added missing standard international text symbols for \MathJax.
+% \margintag{\MathJax}
+% \end{itemize}
+% \needspace{2\baselineskip}
+% \item[v0.901:] Tabular columns, float caption \CSS, \MathJax\ packages.
% \begin{itemize}
% \item Added \env{warpsvg} to isolate \SVG\ math, as opposed to \env{warpMathJax}.
% \margintag{core}
@@ -3520,8 +3554,8 @@ This boolean may be tested by the user for later use.
% now sets \HTML\ \CSS\ \progcode{text-align}.
% Also detects \cs{itshape}, \cs{bfseries}, and \cs{bfseries}\cs{itshape}.
% See \cref{sec:limitstabular}.
-% \item Now uses \brand{MathJax} 3.2 packages for \pkg{centernot}, \pkg{colortbl},
-% \margintag{\brand{MathJax}}
+% \item Now uses \MathJax\ 3.2 packages for \pkg{centernot}, \pkg{colortbl},
+% \margintag{\MathJax}
% \pkg{gensymb}, \pkg{mathtools}, \pkg{textcomp}, \pkg{upgreek}.
% \item \pkg{dcolumn}: Now works inside a \env{lateximage}.
% \margintag{packages}
@@ -3533,7 +3567,7 @@ This boolean may be tested by the user for later use.
% \begin{itemize}
% \item Fix for detecting |\usepackage{lwarp}|.
% \margintag{core}
-% \item \pkg{amsmath}: Fixed \env{alignat} with \brand{MathJax}.
+% \item \pkg{amsmath}: Fixed \env{alignat} with \MathJax.
% \margintag{packages}
% \item \pkg{changes}: Updated to v4.2.1.
% \item \pkg{froufrou}: Updated to v1.4.0.
@@ -3579,8 +3613,8 @@ This boolean may be tested by the user for later use.
% \item Fixed footnotes at the end of the document,
% or inside a \env{description} label.
% \item Added an error if using braces inside \cs{usepackage} options.
-% \item Fixed footnotes in bracket display math with \brand{MathJax}.
-% \margintag{\brand{MathJax}}
+% \item Fixed footnotes in bracket display math with \MathJax.
+% \margintag{\MathJax}
% \item \LaTeX\ theorems, \pkg{amsthm}, \pkg{ntheorem}, \pkg{theorem}:
% \margintag{theorems}
% Print theorem footnotes following theorems.
@@ -3606,13 +3640,13 @@ This boolean may be tested by the user for later use.
% \item Verified support for \pkg{doi}, \pkg{doipubmed}.
% \end{itemize}
% \needspace{2\baselineskip}
-% \item[v0.895:] Vector packages, greatly improved \brand{MathJax} for \pkg{siunitx}.
+% \item[v0.895:] Vector packages, greatly improved \MathJax\ for \pkg{siunitx}.
% \begin{itemize}
% \item Fixed quotes in \HTML\ tags while using old font packages with
% \margintag{core}
% \XeLaTeX\ and \LuaLaTeX.
-% \item Added \cs{ifblank} and \cs{ifstrequal} to \brand{MathJax} emulation.
-% \margintag{\brand{MathJax}}
+% \item Added \cs{ifblank} and \cs{ifstrequal} to \MathJax\ emulation.
+% \margintag{\MathJax}
% \item \pkg{multirow}: Allow \cs{par} per v2.7.
% \margintag{packages}
% \item \pkg{acro}: Updated to v3.5.
@@ -3620,10 +3654,10 @@ This boolean may be tested by the user for later use.
% \item \pkg{changes}: Updated to v4.0.1.
% \item \pkg{epsfig}, \pkg{rotating}: Now work inside \env{lateximage}.
% \item \pkg{amscdx}: Verified to work with \SVG\ math.
-% Warning added about use with \brand{MathJax}.
-% \item Added \brand{MathJax} emulation for \pkg{isomath}, \pkg{mattens},
+% Warning added about use with \MathJax.
+% \item Added \MathJax\ emulation for \pkg{isomath}, \pkg{mattens},
% \pkg{maybemath}, \pkg{skmath}, \pkg{tensor}.
-% \item Improved \brand{MathJax} emulation for \pkg{siunitx} \cs{ang},
+% \item Improved \MathJax\ emulation for \pkg{siunitx} \cs{ang},
% \cs{num}, \cs{SI}.
% \item Added \pkg{epsf}, \pkg{impnattypo}, \pkg{isotope},
% \pkg{lpic}, \pkg{luavlna},
@@ -3632,41 +3666,41 @@ This boolean may be tested by the user for later use.
% \item Verified to work as-is: \pkg{tensind}.
% \end{itemize}
% \needspace{2\baselineskip}
-% \item[v0.894:] \brand{MathJax} additions and improvements.
+% \item[v0.894:] \MathJax\ additions and improvements.
% \begin{itemize}
% \item Improved warning message for enabling \SVG\ graphics for
-% \margintag{\brand{MathJax}}
-% select math expressions while using \brand{MathJax}.
+% \margintag{\MathJax}
+% select math expressions while using \MathJax.
% \item Accept and ignore a star for \cs{hspace}.
% \item Ignores \cs{arabic}, \cs{number}, \cs{noalign}.
-% \item Added \brand{MathJax} emulation for \pkg{backnaur},
+% \item Added \MathJax\ emulation for \pkg{backnaur},
% \pkg{colortbl}, \pkg{nicematrix}.
% \margintag{packages}
-% \item \pkg{booktabs}: \brand{MathJax} emulation now absorbs and discards trim.
+% \item \pkg{booktabs}: \MathJax\ emulation now absorbs and discards trim.
% \item \pkg{menukeys}: Updated to v1.6.1.
% \end{itemize}
% \needspace{2\baselineskip}
% \item[v0.893:] Minor fixes, more packages.
% \begin{itemize}
-% \item Added \brand{MathJax} emulation for \cs{mathnormal}.
-% \margintag{\brand{MathJax}}
+% \item Added \MathJax\ emulation for \cs{mathnormal}.
+% \margintag{\MathJax}
% \item Fixed \pkg{pstricks} \env{pspicture*}.
% \margintag{packages}
% \item Fixed \pkg{tikz} font macros.
-% \item \pkg{braket}: Now uses the \brand{MathJax} extension.
+% \item \pkg{braket}: Now uses the \MathJax\ extension.
% \item Added \pkg{esvect}, \pkg{fixmath}, \pkg{keystroke}, \pkg{mathastext},
% \pkg{menukeys}, \pkg{picinpar}, \pkg{plimsoll}, \pkg{repltext},
% \pkg{selectp}, \pkg{seqsplit}, \pkg{simplebnf}, \pkg{statistics},
% \pkg{swfigure}.
-% \item Added \brand{MathJax} emulation for \pkg{mathspec}.
+% \item Added \MathJax\ emulation for \pkg{mathspec}.
% \item Verified to work as-is for \pkg{apxproof}, \pkg{syntaxdi}, \pkg{venndiagram}.
% \end{itemize}
% \needspace{2\baselineskip}
-% \item[v0.892:] \pkg{minted}, \pkg{fvextra}, \brand{MathJax} \cs{left} \Slash \cs{right}.
+% \item[v0.892:] \pkg{minted}, \pkg{fvextra}, \MathJax\ \cs{left} \Slash \cs{right}.
% \begin{itemize}
% \item \pkg{fourier}, \pkg{libertinust1math}, \pkg{newpxmath}, \pkg{newtxmath},
-% \margintag{\brand{MathJax}}
-% \pkg{newtxsf}, \pkg{unicode-math}: Added \brand{MathJax}
+% \margintag{\MathJax}
+% \pkg{newtxsf}, \pkg{unicode-math}: Added \MathJax
% \cs{left} \Slash \cs{right} support for additional delimiters.
% \item \pkg{textpos}: Updated to v1.10.
% \margintag{packages}
@@ -3674,25 +3708,25 @@ This boolean may be tested by the user for later use.
% \item Added \pkg{fvextra}, \pkg{minted}.
% \end{itemize}
% \needspace{2\baselineskip}
-% \item[v0.891:] \brand{MathJax} additions and improvements.
+% \item[v0.891:] \MathJax\ additions and improvements.
% \begin{itemize}
% \item Now displays inline \cs{verb} text as \cs{texttt}.
% \margintag{core}
% \item Fixed \pkg{alltt} and verbatims with \LaTeX\ lists.
% \item Now generates an error if nested each of \env{warpHTML}, \env{warpprint}, \env{warpMathJax}
% inside itself.
-% \item Added \brand{MathJax} \prog{textmacros} extension, allowing
-% \margintag{\brand{MathJax}}
+% \item Added \MathJax\ \prog{textmacros} extension, allowing
+% \margintag{\MathJax}
% formatting inside \cs{text}.
% \item \pkg{biblatex}, \pkg{hyperref}: Added back page references.
% \margintag{packages}
% \item \pkg{fancyvrb}: Fixed \env{BVerbatim} with a label.
-% \item \pkg{listings}: Fixed \brand{MathJax} with captions, improved \HTML\ sanitation.
+% \item \pkg{listings}: Fixed \MathJax\ with captions, improved \HTML\ sanitation.
% \item \pkg{babel-french}: Fixed \cs{texorpdfstring} conflict.
% \item Now honors Greek package options for \pkg{mathdesign},
% \pkg{mathpazo}, \pkg{mathptmx},
% \pkg{newpxmath}, \pkg{newtxmath}.
-% \item Improved \brand{MathJax} for \pkg{colonequals}, \pkg{mathdesign},
+% \item Improved \MathJax\ for \pkg{colonequals}, \pkg{mathdesign},
% \pkg{mathdots}, \pkg{mathfixs}, \pkg{mathtools}, \pkg{multiobjective},
% \pkg{nicefrac}, \pkg{shuffle}, \pkg{units}.
% \item \pkg{unicode-math}: Added Greek macros, as well as macros for
@@ -3703,21 +3737,21 @@ This boolean may be tested by the user for later use.
% \pkg{libertinust1math}, \pkg{scalerel}, \pkg{txgreeks}.
% \end{itemize}
% \needspace{2\baselineskip}
-% \item[v0.89:] Additional \brand{MathJax} support.
+% \item[v0.89:] Additional \MathJax\ support.
% \begin{itemize}
% \item Adapted to upcoming \LaTeX\ kernel changes.
% \margintag{core}
% \item Allows load of \pkg{amsmath} before \pkg{lwarp}.
% \item Also removes \filenm{*.bbl} when cleaning aux files.\margintag{\prog{lwarpmk}}
-% \item \brand{MathJax}: Neutralized \cs{protect}, \cs{mathcode} and related,
-% \margintag{\brand{MathJax}}
+% \item \MathJax: Neutralized \cs{protect}, \cs{mathcode} and related,
+% \margintag{\MathJax}
% ligatures. Fixed nested environments.
% \item \pkg{caption}: Updated for v3.5, fix for label sep.
% \margintag{packages}
% \item \pkg{thmtools}: Updated for v0.72. Fixed \optn{swapnumber}, \optn{margin}.
-% \item Improved \brand{MathJax} for \pkg{centernot}, \pkg{mathtools},
+% \item Improved \MathJax\ for \pkg{centernot}, \pkg{mathtools},
% \pkg{mismath}, \pkg{SIunits}, \pkg{siunitx}, \pkg{statmath}.
-% \item Added \brand{MathJax} emulation for \pkg{accents}, \pkg{hepunits},
+% \item Added \MathJax\ emulation for \pkg{accents}, \pkg{hepunits},
% \pkg{hhtensor}, \pkg{mathalpha}, \pkg{mathdesign},
% \pkg{mathpazo}, \pkg{mathptmx},
% \pkg{mleftright}, \pkg{newpxmath}, \pkg{newtxmath}, \pkg{newtxsf},
@@ -3729,8 +3763,8 @@ This boolean may be tested by the user for later use.
% \item[v0.88:] Indexing, boxing, theorems.
% \begin{itemize}
% \item \textgreen{Now has programmed support for more than 500 packages and classes,
-% of which more than 60 also support \brand{MathJax}.}
-% \item Fixed: \cs{ref*}, and also added \brand{MathJax} emulation.
+% of which more than 60 also support \MathJax.}
+% \item Fixed: \cs{ref*}, and also added \MathJax\ emulation.
% \margintag{core}
% \item If starting a new paragraph, \cs{hrulefill} creates a
% \element{div} with a thin horizontal line across the page.
@@ -3754,7 +3788,7 @@ This boolean may be tested by the user for later use.
% \pkg{thmbox}, \pkg{thmtools}.
% \end{itemize}
% \needspace{2\baselineskip}
-% \item[v0.87:] \brand{MathJax}, bibliography packages.
+% \item[v0.87:] \MathJax, bibliography packages.
% \begin{itemize}
% \item Added boolean \bool{FixSmallCaps} for fonts which render small caps as
% \margintag{core}
@@ -3762,41 +3796,41 @@ This boolean may be tested by the user for later use.
% \item Fixed \cs{bibliography} to use the \HTML\ version's \filenm{.bbl} file.
% Previously the \HTML\ bibliography relied on the print version's \filenm{.bbl},
% thus would fail if the print document had not yet been created.
-% \item Added \cs{ifstar} and \cs{ifnextchar} to \brand{MathJax}, and
-% \margintag{\brand{MathJax}}
+% \item Added \cs{ifstar} and \cs{ifnextchar} to \MathJax, and
+% \margintag{\MathJax}
% removed \cs{DeclareIfstar}.
% \watchout[Removed \cs{DeclareIfstar}]
% See \cref{sec:limitscustomizemathjax}.
-% \item \pkg{physics}: Now supports the \brand{MathJax} v3 extension.
+% \item \pkg{physics}: Now supports the \MathJax\ v3 extension.
% \margintag{packages}
-% \item \pkg{mathtools}: Improved \cs{underbrakcet}, \cs{overbracket} for \brand{MathJax}.
-% \item \pkg{nccmath}: Improved \cs{underrel} for \brand{MathJax}.
-% \item \pkg{mhchem}: Now supports the \brand{MathJax} v3 extension for \cs{ce} inside math.
-% \item \pkg{cancel}: Now supports the \brand{MathJax} v3 extension.
+% \item \pkg{mathtools}: Improved \cs{underbrakcet}, \cs{overbracket} for \MathJax.
+% \item \pkg{nccmath}: Improved \cs{underrel} for \MathJax.
+% \item \pkg{mhchem}: Now supports the \MathJax\ v3 extension for \cs{ce} inside math.
+% \item \pkg{cancel}: Now supports the \MathJax\ v3 extension.
% \item \pkg{embrac}: Neutralized kerning for improved \HTML\ conversion.
% \item Added \pkg{citeref}, \pkg{drftcite}, \pkg{jurabib}, \pkg{multibib}, \pkg{splitbib}.
% \item Verified to work as-is with \pkg{bibtopic}, \pkg{collref}, \pkg{mciteplus}.
% \end{itemize}
% \needspace{2\baselineskip}
-% \item[v0.86:] \brand{MathJax} major updates.
+% \item[v0.86:] \MathJax\ major updates.
% \begin{itemize}
% \item Fixed: Filename if named files with \filenm{*}, parens, period in section name.
% \margintag{core}
% \item Fixed: Labels in \env{eqnarray}, \env{lateximage}.
-% \item Updated to \brand{MathJax} v3. New repository.
-% \margintag{\brand{MathJax}}
-% \item Fixed forward references for \brand{MathJax}.
-% \item Improved \brand{MathJax} equation number formatting, now compatible with
+% \item Updated to \MathJax\ v3. New repository.
+% \margintag{\MathJax}
+% \item Fixed forward references for \MathJax.
+% \item Improved \MathJax\ equation number formatting, now compatible with
% \pkg{amsmath} \cs{numberwithin} for chapters, sections, subsections,
% as well as \pkg{amsmath} \env{subequation}s.
% See \cref{sec:limitscustomizemathjax}.
-% \item Added \cs{DeclareIfstar} to define starred \TeX\ macros in \brand{MathJax}.
+% \item Added \cs{DeclareIfstar} to define starred \TeX\ macros in \MathJax.
% See \cref{sec:limitscustomizemathjax}.
% \item Generates an error if \cs{MathJaxFilename} file does not exist.
% \item \pkg{mathtools}, \pkg{nccmath}, \pkg{physics}:
% \margintag{packages}
-% Added starred macros for \brand{MathJax}.
-% \item \pkg{nccmath}: Fixed \cs{nr}, \cs{displaybreak} for \brand{MathJax}.
+% Added starred macros for \MathJax.
+% \item \pkg{nccmath}: Fixed \cs{nr}, \cs{displaybreak} for \MathJax.
% \item \pkg{xcolor}: Fixed \cs{textcolor} with \pkg{babel-french}.
% \end{itemize}
% \needspace{2\baselineskip}
@@ -3864,11 +3898,11 @@ This boolean may be tested by the user for later use.
% \item \pkg{physunits}: Updated to v1.0.4.
% \end{itemize}
% \needspace{2\baselineskip}
-% \item[v0.82:] \brand{MathJax} notes, \pkg{xpinyin} improvements, various updates.
+% \item[v0.82:] \MathJax\ notes, \pkg{xpinyin} improvements, various updates.
% \begin{itemize}
-% \item Improved footnotes with \brand{MathJax}.
-% \margintag{\brand{MathJax}}
-% \item Added \brand{MathJax} emulation for \pkg{endnotes}, \pkg{marginnote},
+% \item Improved footnotes with \MathJax.
+% \margintag{\MathJax}
+% \item Added \MathJax\ emulation for \pkg{endnotes}, \pkg{marginnote},
% \pkg{nccfoots}, \pkg{pagenote}, \pkg{parnotes}, \pkg{sidenotes}.
% \item \pkg{xpinyin}: Added pinyin with modern \HTML.
% \margintag{packages}
@@ -3877,20 +3911,20 @@ This boolean may be tested by the user for later use.
% \item \pkg{chemfig}: Updated to v1.5.
% \item \pkg{draftwatermark}: Updated to v2.0.
% \item \pkg{ulem}: Fixed: \cs{dashuline}.
-% \item \pkg{amsmath}: Fixed: \cs{intertext} with \brand{MathJax}.
+% \item \pkg{amsmath}: Fixed: \cs{intertext} with \MathJax.
% \item \pkg{endnotes}: Fixed: Marks in print mode.
% \item \pkg{tocvsec2}, \pkg{tableof}: Verified to work as-is.
% \item Added \pkg{etoc} (nullified).
% \end{itemize}
% \needspace{2\baselineskip}
-% \item[v0.81:] \brand{MathJax} speedup and additional emulations.
+% \item[v0.81:] \MathJax\ speedup and additional emulations.
% \begin{itemize}
% \item Improved warning regarding \SVG\ math sizing \Slash baselines and
% \margintag{core}
% \pkg{graphics} \Slash \pkg{graphicx}. See \cref{sec:limitsmath}.
-% \item Improved \brand{MathJax} emulation processing speed.
-% \margintag{\brand{MathJax}}
-% \item Added \brand{MathJax} emulation for \pkg{accsupp}, \pkg{axessibiltiy},
+% \item Improved \MathJax\ emulation processing speed.
+% \margintag{\MathJax}
+% \item Added \MathJax\ emulation for \pkg{accsupp}, \pkg{axessibiltiy},
% \pkg{colonequals},
% \pkg{decimal}, \pkg{dotlessi}, \pkg{econometrics}, \pkg{engtlc},
% \pkg{multiobjective}, \pkg{physunits}, \pkg{SIunits}, \pkg{stackrel},
@@ -3905,19 +3939,19 @@ This boolean may be tested by the user for later use.
% \pkg{textualicomma}.
% \end{itemize}
% \needspace{2\baselineskip}
-% \item[v0.80:] \brand{MathJax}, \pkg{biblatex}.
+% \item[v0.80:] \MathJax, \pkg{biblatex}.
% \begin{itemize}
% \item Added docs and warning/info messages
-% \margintag{\brand{MathJax}}
-% re: avoiding slow \brand{MathJax} compilation.
+% \margintag{\MathJax}
+% re: avoiding slow \MathJax\ compilation.
% See \cref{sec:limitscustomizemathjax}, \nameref{sec:limitscustomizemathjax}.
-% \item Added \brand{MathJax} emulation for \pkg{accessibility}, \pkg{autobreak},
+% \item Added \MathJax\ emulation for \pkg{accessibility}, \pkg{autobreak},
% \pkg{centernot}, \pkg{extarrows}, \pkg{fouridx}, \pkg{gensymb},
% \pkg{leftidx}, \pkg{mathcomp}, \pkg{mathdots}, \pkg{mathfixs}, \pkg{mismath},
% \pkg{nccmath}, \pkg{noitcrul},
% \pkg{pdfcomment}, \pkg{relsize}, \pkg{rmathbr},
% \pkg{subsupscripts}, \pkg{xfrac}.
-% \item Improved \brand{MathJax} emulation for \pkg{unicode-math}.
+% \item Improved \MathJax\ emulation for \pkg{unicode-math}.
% \item \pkg{biblatex}, \pkg{url}: Now create hyperlinks.
% \margintag{packages}
% \item \pkg{amsmath}: Fix to center starred environments.
@@ -3928,15 +3962,15 @@ This boolean may be tested by the user for later use.
% \pkg{mismath}, \pkg{nccmath}.
% \end{itemize}
% \needspace{2\baselineskip}
-% \item[v0.79:] \brand{MathJax}, nested \env{tabular}.
+% \item[v0.79:] \MathJax, nested \env{tabular}.
% \begin{itemize}
-% \item Added or improved \brand{MathJax} emulation for
-% \margintag{\brand{MathJax}}
+% \item Added or improved \MathJax\ emulation for
+% \margintag{\MathJax}
% \pkg{amsmath}, \pkg{ar}, \pkg{arydshln}, \pkg{bm},
% \pkg{bigdelim}, \pkg{bigstrut}, \pkg{booktabs}, \pkg{braket},
% \pkg{mathtools}, \pkg{multirow}, \pkg{physics}, \pkg{siunitx}, \pkg{slashed},
% \pkg{unicode-math}, \pkg{xfakebold}.
-% \item Warn if using certain packages not supported by \brand{MathJax}.
+% \item Warn if using certain packages not supported by \MathJax.
% \item \env{tabular}: Now may be nested.
% \margintag{core}
% \item \env{minipage}, \cs{parbox}, \env{fminipage},
@@ -3986,13 +4020,13 @@ This boolean may be tested by the user for later use.
% \item \pkg{chemformula}: Updated to v4.15.
% \end{itemize}
% \needspace{2\baselineskip}
-% \item[v0.76:] \brand{MathJax}, updates for \LaTeX\ 2019/10 release.
+% \item[v0.76:] \MathJax, updates for \LaTeX\ 2019/10 release.
% \begin{itemize}
% \item Docs: Expanded documentation regarding the use of multiple projects
% \margintag{docs}
% in the same directory. See \cref{sec:multipleprojects}.
-% \item \brand{MathJax}: Updated to v2.7.6.
-% \margintag{\brand{MathJax}}
+% \item \MathJax: Updated to v2.7.6.
+% \margintag{\MathJax}
% \item \pkg{xr}: Updated to v5.05.
% \margintag{packages}
% \item \pkg{xr-hyper}: Updated to v6.1.
@@ -4128,7 +4162,7 @@ This boolean may be tested by the user for later use.
% \margintag{multimedia}
% \end{itemize}
% \needspace{2\baselineskip}
-% \item[v0.70:] Error handling, \brand{MathJax}, \pkg{mathtools}.
+% \item[v0.70:] Error handling, \MathJax, \pkg{mathtools}.
% \begin{itemize}
% \item Error handling for ``Label(s) changed.''
% Refuses to \cmds{lwarpmk limages} until recompile first.
@@ -4136,12 +4170,12 @@ This boolean may be tested by the user for later use.
% is used.
% \item Fixes for \cs{makebox}.
% \item Fixes for \cs{parbox} inside a \element{span}.
-% \item \brand{MathJax}: Updated to v2.7.5.
+% \item \MathJax: Updated to v2.7.5.
% Loads the \filenm{autoload-all.js} extension.
% Added \cs{MathJaxFilename} to select custom scripts.
% \item \pkg{textcomp}, \pkg{xunicode}: Fix for \cs{textinterrobang}.
% \margintag{packages}
-% \item \pkg{mhchem}: Works with \brand{MathJax}. See \cref{sec:mhchem}.
+% \item \pkg{mhchem}: Works with \MathJax. See \cref{sec:mhchem}.
% \item \pkg{changes}: Updated to v3.1.2.
% \item Added \pkg{autonum}, \pkg{changelayout}, \pkg{inputtrc}, \pkg{mathtools}, \pkg{metalogox}.
% \end{itemize}
@@ -4391,7 +4425,7 @@ This boolean may be tested by the user for later use.
% \item \pkg{xfrac}: Improved \CSS.
% \item \pkg{textcomp} and \pkg{xunicode}: Fix conflicts with \cs{textcircled}.
% \item \pkg{ulem}: Improved compatibility with \pkg{CJKulem}, \env{lateximage}.
-% \item \brand{MathJax} and \pkg{siunitx}: Removed inoperable extension.
+% \item \MathJax\ and \pkg{siunitx}: Removed inoperable extension.
% \item Added \pkg{bitpattern}, \pkg{pdfcomment},
% \pkg{pdfmarginpar}, \pkg{tram}, \pkg{unitsdef}, \pkg{xechangebar}.
% \item Added \pkg{musicography}, \pkg{octave}, \pkg{semantic-markup}.
@@ -4453,7 +4487,7 @@ This boolean may be tested by the user for later use.
% \item Added \pkg{fancytabs}, \pkg{thumb}, \pkg{thumbs}.
% \end{itemize}
% \needspace{2\baselineskip}
-% \item[v0.59:] \DVI\ \prog{latex}, \brand{MathJax}, \pkg{asymptote},
+% \item[v0.59:] \DVI\ \prog{latex}, \MathJax, \pkg{asymptote},
% \pkg{pdftricks} and \pkg{pstricks}, \pkg{epstopdf}, \pkg{brqen}.
% \begin{itemize}
% \item \newlwarpmkconf
@@ -4473,10 +4507,10 @@ This boolean may be tested by the user for later use.
% \margintag{\DVI\ \prog{latex}}
% \item Fix for \optn{-\/-shell-escape} with \prog{latexmk}.
% \margintag{\prog{latexmk}}
-% \item Updated \brand{MathJax} script to v2.7.4.
+% \item Updated \MathJax\ script to v2.7.4.
% \margintag{math}
% \item Fix: \brand{Mathjax} chapter number removed from non-numeric tagged equations.
-% \item Added \brand{MathJax} support for \pkg{nicefrac}, \pkg{units}.
+% \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}
@@ -4541,7 +4575,7 @@ This boolean may be tested by the user for later use.
% \needspace{2\baselineskip}
% \item[v0.57:] \pkg{algorithm2e}, \pkg{float} styles, tabular packages, internal improvements.
% \begin{itemize}
-% \item Added support for \brand{MathJax} equations with \cs{footnote}, \cs{footnotemark}.
+% \item Added support for \MathJax\ equations with \cs{footnote}, \cs{footnotemark}.
% \margintag{MathJax}
% \item Added \cs{StartDefiningMath} and \cs{StopDefiningMath} for
% \margintag{math macros}
@@ -4551,7 +4585,7 @@ This boolean may be tested by the user for later use.
% \margintag{dynamic math}
% delimit math expressions which depend on a variable condition
% such as a counter. Such expressions will not be hashed for reuse,
-% and will be converted to \SVG\ math images even when \brand{MathJax} is enabled.
+% and will be converted to \SVG\ math images even when \MathJax\ is enabled.
% See \cref{sec:mathdynamic}.
% \item Renamed \cs{EndDefiningTabulars} to \cs{StopDefiningTabulars}.
% \watchout[new name]
@@ -4718,7 +4752,7 @@ This boolean may be tested by the user for later use.
% \item Improved \cs{ensuremath} hashing expansion.
% \item Fix: \env{equation*} with \env{split}.
% \item \env{tabbing} now works inside a \env{lateximage}. Use for math in \env{tabbing}.
-% \item Fix: \brand{MathJax} script was not executing in some conditions.
+% \item Fix: \MathJax\ script was not executing in some conditions.
% \margintag{MathJax}
% \item Added \cs{CustomizeMathJax} to add custom functions.
% See \cref{sec:limitsmath}.
@@ -4753,7 +4787,7 @@ This boolean may be tested by the user for later use.
% ^^A % such as \pkg{tikz-cd}. See \cref{sec:displaymathother}.
% ^^A % \item Fix: \cs{addcontentsline} inside \SVG\ math.
% ^^A % \item Fix: \SVG\ math containing an embedded \env{lateximage}.
-% ^^A % \item \brand{MathJax} now handles \cs{ensuremath} in expressions.\margintag{MathJax}
+% ^^A % \item \MathJax\ now handles \cs{ensuremath} in expressions.\margintag{MathJax}
% ^^A % \item Fix: Added \env{alignat} environment. \margintag{misc. fixes}
% ^^A % \item Fix: \pkg{afterpackage} no longer required, which conflicted with \pkg{scrlfile}.
% ^^A % \item Fix: \pkg{titling} \cs{thanks} mark.
@@ -4784,7 +4818,7 @@ This boolean may be tested by the user for later use.
% ^^A \item Improved \SVG\ display math and tags.
% ^^A \item Improved \SVG\ math and \pkg{siunitx} \attribute{alt} tags.
% ^^A \item Improved \pkg{siunitx} units.
-% ^^A \item Fix: \cs{ensuremath} with \brand{MathJax} now creates a \env{lateximage}.
+% ^^A \item Fix: \cs{ensuremath} with \MathJax\ now creates a \env{lateximage}.
% ^^A \item Fix: \cs{centering}, etc. in \SVG\ math, \env{lateximage}, \tikz.
% ^^A \item Fix: Made various macros robust,
% ^^A additionally fixing \pkg{authblk}.\margintag{misc. fixes}
@@ -4859,7 +4893,7 @@ This boolean may be tested by the user for later use.
% ^^A \item Fix: Stack unnesting.
% ^^A \item Fix: \SVG\ math and \env{lateximage}s in numerous situations.
% ^^A \item Fix: Spaces in \cs{usepackage}.
-% ^^A \item Fix: Now allows \brand{MathJax} inside \env{verse}.
+% ^^A \item Fix: Now allows \MathJax\ inside \env{verse}.
% ^^A \end{itemize}
% ^^A \needspace{2\baselineskip}
% ^^A \item[v0.45:] \
@@ -4872,7 +4906,7 @@ This boolean may be tested by the user for later use.
% ^^A See \cref{sec:limitsmemoir}.\margintag{memoir}
% ^^A \item Fix: Now allows underscores in labels.\margintag{cross-references}
% ^^A \item Fix: \cs{\_} and |\<blank>| in section/file names.
-% ^^A \item Fix: Now allows \brand{MathJax} inside \env{tabbing}.\margintag{math}
+% ^^A \item Fix: Now allows \MathJax\ inside \env{tabbing}.\margintag{math}
% ^^A \item Fix: Bibliography \cs{em} names.\margintag{bibliography}
% ^^A \item Added \pkg{cite}, \pkg{natbib}, \pkg{backref}.
% ^^A (Also works as-is with \pkg{biblatex}.)
@@ -4909,7 +4943,7 @@ This boolean may be tested by the user for later use.
% ^^A \item Fix: \cs{multicolumn} alignment if formatting for a word processor.
% ^^A \margintag{tabular}
% ^^A \item Added \pkg{ltxtable}.
-% ^^A \item Fix: \brand{MathJax} combined with \env{lateximage}s.\margintag{math}
+% ^^A \item Fix: \MathJax\ combined with \env{lateximage}s.\margintag{math}
% ^^A \item \pkg{algorithmicx}: Improved comment symbol and floating.
% ^^A \item Completed \pkg{todonotes} and \pkg{luatodonotes}.
% ^^A \margintag{\pkg{packages}}
@@ -4977,7 +5011,7 @@ This boolean may be tested by the user for later use.
% ^^A \item Fix: Text copy/paste of \AmS\ math environment numbers and names.
% ^^A \margintag{math}
% ^^A \item Improved \cs{ensuremath}.
-% ^^A \item \brand{MathJax} with \pkg{siunitx}: Updated script and documentation.
+% ^^A \item \MathJax\ with \pkg{siunitx}: Updated script and documentation.
% ^^A \item \pkg{textcomp}: Improved \cs{textinterrobangdown}.
% ^^A \margintag{symbols}
% ^^A \item \pkg{realscripts}: Fix for subscripts in a \env{lateximage}.
@@ -5133,10 +5167,10 @@ This boolean may be tested by the user for later use.
% ^^A \margintag{footnotes}
% ^^A \env{lateximage} footnotes now appear as regular footnotes to match
% ^^A the numbering of the print version.
-% ^^A Also fixed a regression with \brand{MathJax}.
+% ^^A Also fixed a regression with \MathJax.
% ^^A \item Improved \pkg{siunitx} units.
% ^^A \margintag{\pkg{siunitx}}
-% ^^A \item Fix for filenames while using \brand{MathJax}.
+% ^^A \item Fix for filenames while using \MathJax.
% ^^A \item Fix for \cs{rule} when \pkg{xcolor} is not loaded.
% ^^A \item Added \pkg{transparent}, \pkg{upref}.
% ^^A \end{itemize}
@@ -5177,7 +5211,7 @@ This boolean may be tested by the user for later use.
% ^^A and draws a framed minipage in print output.
% ^^A See \cref{sec:framedminipages}.
% ^^A \cs{fbox} and minipages now often work in \SVG\ math and \env{lateximage}s.
-% ^^A \brand{MathJax} supports \cs{fbox}, but not \cs{fboxBlock} nor \env{fminipage}.
+% ^^A \MathJax\ supports \cs{fbox}, but not \cs{fboxBlock} nor \env{fminipage}.
% ^^A \item Improved compatibility between \env{lateximage} and
% ^^A \margintag{\env{lateximage}, \SVG\ math, \env{tabular}}
% ^^A \env{minipage}, \cs{parbox}, \cs{makebox}, \cs{fbox}, \cs{framebox},
@@ -5340,7 +5374,7 @@ This boolean may be tested by the user for later use.
% ^^A These make it easier to identify float boundaries,
% ^^A which are to be manually converted to word-processor frames.
% ^^A Name changed to |WPMarkFloats| as of v0.42.
-% ^^A \item Updated for the new \brand{MathJax} \acro{CDN} repository.
+% ^^A \item Updated for the new \MathJax\ \acro{CDN} repository.
% ^^A \item Adds \pkg{tabulary}.
% ^^A \item Supports the options syntax for \pkg{graphics}.
% ^^A \item Improved index references, now pointing exactly to their target.
@@ -5447,9 +5481,9 @@ This boolean may be tested by the user for later use.
% ^^A \needspace{2\baselineskip}
% ^^A \item[v0.19:] \
% ^^A \begin{itemize}
-% ^^A \item \brand{MathJax} now may be used to display math via the \optn{mathjax} option.
+% ^^A \item \MathJax\ now may be used to display math via the \optn{mathjax} option.
% ^^A See \cref{sec:loading,sec:limitsmath}.
-% ^^A To use \brand{MathJax} with a pre-existing project,
+% ^^A To use \MathJax\ with a pre-existing project,
% ^^A \watchout
% ^^A copy or link the file |lwarp_mathjax.txt| to the project's directory.
% ^^A \item \cs{rule} added, supporting width, height, raise, \cs{textcolor}.
@@ -5492,7 +5526,7 @@ This boolean may be tested by the user for later use.
%
% \section{Introduction}
% \label{sec:introduction}
-% \changes{v0.19}{2016/05/25}{Introduction: \brand{MathJax} support mentioned.}
+% \changes{v0.19}{2016/05/25}{Introduction: \MathJax\ support mentioned.}
%
% The \pkg{lwarp} project aims to allow a rich \LaTeX{} document
% to be converted to a reasonable \HTMLfive\
@@ -5573,10 +5607,10 @@ This boolean may be tested by the user for later use.
% An MD5 hash is used to combine multiple instances of the same inline math expression
% into a single image file, which then needs to be converted to \SVG\ only a single time.
%
-% The \brand{MathJax} JavaScript display engine may be selected
+% The \MathJax\ JavaScript display engine may be selected
% for math display instead of using \SVG\ images.
% Subject to browser support and Internet access,
-% \brand{MathJax} allows an \HTML\ page to display
+% \MathJax\ allows an \HTML\ page to display
% math without relying on a large number of
% external image files.\footnote{One \SVG\ image
% file per math expression, except that duplicate inline math expressions are combined
@@ -5585,7 +5619,7 @@ This boolean may be tested by the user for later use.
% and in one case the MD5 hash cut the number of files in half and the rendering
% time by 30\%.}
% \pkg{lwarp} maintains \LaTeX\ control for cross-referencing
-% and equation numbering, and attempts to force \brand{MathJax} to tag equations accordingly.
+% and equation numbering, and attempts to force \MathJax\ to tag equations accordingly.
%
% \rulebreak
%
@@ -5643,6 +5677,8 @@ This boolean may be tested by the user for later use.
% \end{tabular}
% \end{table}
%
+% \maindocumentationnotes
+%
% \clearpage
%
% \subsection{Supported packages and features}
@@ -5661,9 +5697,9 @@ This boolean may be tested by the user for later use.
% as print output in \SVG\ math or \env{lateximage} environments.
% \item[\epkg{name}:] Emulated for \HTML\ output.
% \item[\ipkg{name}:] Ignored for \HTML\ output, but provides source-level compatibility.
-% \item[\sjax:] Supported as-is for \brand{MathJax}, subject to limitations.
-% \item[\ejax:] Emulated for \brand{MathJax} using custom macros, subject to limitations.
-% \item[\ijax:] Ignored by \brand{MathJax}, but may be used in the document source.
+% \item[\sjax:] Supported as-is for \MathJax, subject to limitations.
+% \item[\ejax:] Emulated for \MathJax\ using custom macros, subject to limitations.
+% \item[\ijax:] Ignored by \MathJax, but may be used in the document source.
% May be converted to \SVG\ images.
% \end{description}
%
@@ -5686,9 +5722,11 @@ This boolean may be tested by the user for later use.
%
% \midrule
%
-% Engines: & \DVI\ \LaTeX, pdf\LaTeX, \XeLaTeX, \LuaLaTeX, up\LaTeX \\
+% Engines: & \dviLaTeX, \pdfLaTeX, \XeLaTeX, \LuaLaTeX, up\LaTeX \\
+%
+% \LaTeX\ compiling: & \prog{latexmk}, \prog{make}, etc. \\
%
-% Compiling: & \prog{latexmk}, \prog{perltex}, \prog{pythontex}, \prog{make}, etc. \\
+% External compiling: & \prog{perltex}, \prog{pythontex}, \mpkg{sympytex} \\
%
% \midrule
%
@@ -5701,6 +5739,8 @@ This boolean may be tested by the user for later use.
%
% Memoir: & \ipkg{memhfixc} \\
%
+% Beamer: & \mpkg{beamerarticle}, but not the \pkg{beamer} class. \\
+%
% \midrule
%
% Languages: & \spkg{babel}, \spkg{cjkpunct}, \ipkg{impnattypo}, \mpkg{luavlna},
@@ -5811,7 +5851,7 @@ This boolean may be tested by the user for later use.
% \epkg{scrlayer-notecolumn}, \epkg{versonotes}. \\
%
% Footnotes: & Adds \progcode{FootnoteDepth} to print footnotes at section breaks.
-% \brand{MathJax} emulation for \cs{footnote}, and also as marked in the following:
+% \MathJax\ emulation for \cs{footnote}, and also as marked in the following:
% \epkg{bigfoot}, \ipkg{dblfnote},
% \ipkg{endheads}, \mpkg{endnotes}\ejax, \mpkg{enotez}\ejax, \spkg{fixfoot},
% \ipkg{fnbreak}, \ipkg{fnpara}, \spkg{fnpct}, \ipkg{fnpos},
@@ -5826,7 +5866,7 @@ This boolean may be tested by the user for later use.
%
% Math: & Converted to \SVG\ images with \HTML\ \element{alt} tags containing the
% \LaTeX\ source for the math expression.
-% \brand{MathJax} supported as an alternative.
+% \MathJax\ supported as an alternative.
% \mpkg{amsmath}\ejax: \AmS\ environments are supported.
% User-defined macros are available during converson,
% due to native \LaTeX\ processing.\\
@@ -6017,7 +6057,7 @@ This boolean may be tested by the user for later use.
%
% \smallskip
%
-% Also see the math section for math and \brand{MathJax} support for math font packages. \\
+% Also see the math section for math and \MathJax\ support for math font packages. \\
%
% Symbols: & Native \LaTeX\ diacriticals, \mpkg{academicons}, \spkg{amssymb}\sjax,
% \mpkg{bbding}, \mpkg{ccicons},
@@ -6089,7 +6129,7 @@ This boolean may be tested by the user for later use.
%
% Accessibility: & \epkg{accessibility}\ijax, \ipkg{accsupp}\ijax,
% \ipkg{axessibility}\ijax,
-% \ipkg{pdfcomment}\ijax, \ipkg{repltext}\ijax, \ipkg{tagpdf}. \\
+% \ipkg{pdfcomment}\ijax, \ipkg{repltext}\ijax, \mpkg{tagpdf}. \\
%
% \midrule
%
@@ -6365,7 +6405,7 @@ This boolean may be tested by the user for later use.
% \item[Automatically downloaded from the internet as required:] \
% \begin{description}
%
-% \item[\brand{MathJax}:] Optionally used to display math.
+% \item[\MathJax:] Optionally used to display math.
% From: \url{mathjax.org}
% \DescribeProgram[requirement]{MathJax}
%
@@ -6852,7 +6892,7 @@ This boolean may be tested by the user for later use.
% |lwarp_one_limage.cmd| when images are generated.
%
% \item [|lwarp\_mathjax.txt|:] Inserted into the \HTML\ files when
-% \brand{MathJax} is used to display math.
+% \MathJax\ is used to display math.
% Do not modify, see \cs{MathJaxFilename} instead.
%
% \item [|comment\_*.cut|:] Temporary files used by \pkg{lwarp} to
@@ -6981,7 +7021,7 @@ This boolean may be tested by the user for later use.
% the plain-text \LaTeX\ source,
% until the
% images of the math expressions have been generated. Math may be
-% displayed as \SVG\ images or by a \brand{MathJax} script, as seen in
+% displayed as \SVG\ images or by a \MathJax\ script, as seen in
% \cref{sec:tutorialsvgmath,sec:tutorialmathjax}.
%
% \item Force a recompile:
@@ -7038,11 +7078,11 @@ This boolean may be tested by the user for later use.
%
% \clearpage
%
-% \subsection{Using \brand{MathJax} for math}
+% \subsection{Using \MathJax\ for math}
% \label{sec:tutorialmathjax}
%
-% Math may also be represented using the \brand{MathJax} \brand{Javascript} project.
-% \margintag{math with \brand{MathJax}}
+% Math may also be represented using the \MathJax\ \brand{Javascript} project.
+% \margintag{math with \MathJax}
%
% \begin{enumerate}
% \item In the tutorial's source code, uncomment the \optn{mathjax} package option for \pkg{lwarp}:
@@ -7055,13 +7095,13 @@ This boolean may be tested by the user for later use.
% \item Reload the math page.
% \end{enumerate}
%
-% \brand{MathJax} requires web access unless a local copy of \brand{MathJax} is available,
-% \watchout[\brand{MathJax} requirements]
+% \MathJax\ requires web access unless a local copy of \MathJax\ is available,
+% \watchout[\MathJax\ requirements]
% and it also requires that \brand{Javascript} is enabled for the web page.
-% The math is rendered by \brand{MathJax}. Right-click on math to see several
+% The math is rendered by \MathJax. Right-click on math to see several
% options for rendering, and for copying the \LaTeX\ source.
%
-% While using \brand{MathJax} has many advantages, it may not be able to represent
+% While using \MathJax\ has many advantages, it may not be able to represent
% complex expressions or spacing adjustments as well as \LaTeX, and it
% may not support some math-related packages.
%
@@ -7352,7 +7392,7 @@ This boolean may be tested by the user for later use.
% \item [Shell escape:] See \cref{sec:shellescape}, \nameref{sec:shellescape}.
% \item [\CSS\ customization:] See \cref{sec:csscustomization},
% \nameref{sec:csscustomization}.
-% \item [\brand{MathJax} customization:] See \cref{sec:limitscustomizemathjax},
+% \item [\MathJax\ customization:] See \cref{sec:limitscustomizemathjax},
% \nameref{sec:limitscustomizemathjax}.
% \item [Localization:] (languages) --- See \cref{sec:localization},
% \nameref{sec:localization}.
@@ -7462,7 +7502,7 @@ This boolean may be tested by the user for later use.
% \cs{AltTextOpen}, \cs{AltTextClose}:] The defaults used for \HTML\
% \attribute{alt} text for images. See \cref{sec:accessibility}.
% \item [\cs{CSSFilename}:] The name of the \CSS\ file to use.
-% \item [\cs{MathJaxFilename}:] The name of the \brand{MathJax} script to use.
+% \item [\cs{MathJaxFilename}:] The name of the \MathJax\ script to use.
% \end{description}
% \item [Package options:] \
% \begin{description}
@@ -7486,7 +7526,7 @@ This boolean may be tested by the user for later use.
% \gindex{HTML>alt text=\attribute{alt} text}
% \gindex{image>alt text=\attribute{alt} text}
% \gindex{math>alt text=\attribute{alt} text}
-% \gindex{mathjax=\brand{MathJax}>accessibility}
+% \gindex{mathjax=\MathJax>accessibility}
% \gindex{link>title=\attribute{title} text}
% \gindex{hyperref=\pkg{hyperref}>title=\attribute{title} text}
% \gindex{settings>accessibility}
@@ -7504,7 +7544,7 @@ This boolean may be tested by the user for later use.
% \ARIA\ roles for increased accessibility, and \pkg{lwarp} assigns the |math|
% role for \SVG\ math images, and the |note| role for footnotes, end notes,
% margin paragraphs and notes, etc.
-% \brand{MathJax} also has provisions for improved accessibility
+% \MathJax\ also has provisions for improved accessibility
% as well. See \cref{tab:accessibility}.
%
% \begin{table}
@@ -7534,9 +7574,9 @@ This boolean may be tested by the user for later use.
% the \HTML\ \attribute{alt} text will be set to \cs{MathImageAltText}.
% Set with \cs{renewcommand}.
%
-% \item [\brand{MathJax}:]
-% For \brand{MathJax}, the accessibility tools provided by \brand{MathJax} are
-% enabled by default by \pkg{lwarp}'s \brand{MathJax} scripts.
+% \item [\MathJax:]
+% For \MathJax, the accessibility tools provided by \MathJax\ are
+% enabled by default by \pkg{lwarp}'s \MathJax\ scripts.
%
% \item [\cs{PackageDiagramAltText}:]
% Various packages create diagrams which \pkg{lwarp} converts into \SVG\ images.
@@ -7797,7 +7837,7 @@ This boolean may be tested by the user for later use.
% \begin{tabular}{>{\ttfamily}lp{3.25in}}
% Option & Description \\ \midrule
% mathsvg & Show math using \SVG\ images. \\
-% mathjax & Show math using \brand{MathJax}. \\
+% mathjax & Show math using \MathJax. \\
% 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. \\
@@ -7867,7 +7907,7 @@ This boolean may be tested by the user for later use.
% \DescribeOption{mathsvg}
% \DescribeOption{mathjax}
% \DescribeDefault{mathsvg}
-% Selects \SVG\ images or \brand{MathJax} for math display.
+% Selects \SVG\ images or \MathJax\ for math display.
% See \cref{sec:limitsmath}.
% ^^A \DescribeOption{mathKaTeX}
% ^^A For math display, select \optn{mathsvg} (default), \optn{mathjax},
@@ -8230,7 +8270,7 @@ This boolean may be tested by the user for later use.
% \cs{AltTextClose} & PD & End an \HTML\ \attribute{alt} tag. \\
% \midrule
% \cs{CSSFilename} & PS & The \CSS\ for the following files. \\
-% \cs{MathJaxFilename} & PS & The \brand{MathJax} script for the following files. \\
+% \cs{MathJaxFilename} & PS & The \MathJax\ script for the following files. \\
% \midrule
% \cs{HTMLLanguage} & PS & The \HTML\ \attribute{lang} tag. \\
% \cs{HTMLTitle} & PS & The homepage's \element{title}, overriding \cs{title}. \\
@@ -8479,11 +8519,11 @@ This boolean may be tested by the user for later use.
%
% \ItemDescribeMacro{\MathJaxFilename} \marg{filename}
% \DescribeDefault{\filenm{lwarp_mathjax.txt}} \quad
-% Sets the \brand{MathJax} script file to use for the following
+% Sets the \MathJax\ script file to use for the following
% files. May be changed before each each sectioning command which would
% cause a file split.
%
-% The \brand{MathJax} script file is copied into the head of each \HTML\ file.
+% The \MathJax\ script file is copied into the head of each \HTML\ file.
% This may be used to point to a local repository, add extensions, or change
% the script somewhere in the middle of the document.
% \cs{MathJaxFilename} may be used before each file break to set the script file for
@@ -8813,14 +8853,14 @@ This boolean may be tested by the user for later use.
% \osportabilityusage
%
%
-% \subsection{Selecting actions for print, \HTML, or \brand{MathJax} output}
+% \subsection{Selecting actions for print, \HTML, or \MathJax\ output}
% \label{sec:selectingoutput}
% \gindex{settings>selecting print/\HTML\ output}
% \changes{v0.15}{2016/04/05}{Docs: Clarify print/\HTML\ output.}
%
% The following environments and macros are used to select actions which only apply
% to either traditional \LaTeX{} print-formatted \PDF\ generation,
-% or to \HTML\ generation, or to \HTML\ with \brand{MathJax}.
+% or to \HTML\ generation, or to \HTML\ with \MathJax.
%
% For most of built-in \LaTeX\ and many additional packages
% there is user-level source code support or emulation,
@@ -8882,7 +8922,7 @@ This boolean may be tested by the user for later use.
% Performs the given actions only when \HTML\ output is being generated.
%
% \DescribeEnv{warpMathJax}
-% Anything which is to be done only while using \HTML\ output with \brand{MathJax}
+% Anything which is to be done only while using \HTML\ output with \MathJax
% is surrounded by a \env{warpMathJax} environment.
% Usually, this is \cs{CustomizeMathJax}, used to add emulation macros.
% |\end{warpMathJax}| must appear on its own line.
@@ -9384,7 +9424,7 @@ This boolean may be tested by the user for later use.
%
% \DescribePackage{tcolorbox}
% \trouble{tcolorbox=\pkg{tcolorbox}}
-% \pkg{tcolorbox} is emulated for \HTML\ and \brand{MathJax}, and
+% \pkg{tcolorbox} is emulated for \HTML\ and \MathJax, and
% supported as-is inside a \env{lateximage} or \SVG\ math.
%
% What has been tested to work (at least partly) includes:
@@ -9402,10 +9442,10 @@ This boolean may be tested by the user for later use.
% \optn{math}, \optn{ams equation}, etc.\ are not supported. \watchout[math]
% Use a \env{tcolorbox} with regular math inside it.
% \cs{tcboxmath} and \cs{tcbhighmath} are suppored in \SVG\ math, and
-% emulated in \brand{MathJax}.
+% emulated in \MathJax.
% \item Fitting features: \cs{tcboxfit} becomes \cs{tcbox} in \HTML.
% \item Footnote numbering does not match the printed output.\watchout[footnotes]
-% \item \brand{MathJax} emulation is provided for common macros.
+% \item \MathJax\ emulation is provided for common macros.
% \end{itemize}
%
% If using \pkg{cleveref},
@@ -9535,11 +9575,11 @@ This boolean may be tested by the user for later use.
%
% \trouble{footnote>numbering}
% \gindex{footnotes>numbering}
-% \gindex{footnotes>mathjax=\brand{MathJax}}
+% \gindex{footnotes>mathjax=\MathJax}
% \trouble{footnote>in sectioning command}
-% \trouble{mathjax=\brand{MathJax}>footnotes}
-% \trouble{math>footnote>mathjax=\brand{MathJax}}
-% \trouble{footnote>mathjax=\brand{MathJax}}
+% \trouble{mathjax=\MathJax>footnotes}
+% \trouble{math>footnote>mathjax=\MathJax}
+% \trouble{footnote>mathjax=\MathJax}
% \trouble{sidenotes=\pkg{sidenotes}>numbering}
%
% \limitsfootnotes
@@ -10579,7 +10619,7 @@ This boolean may be tested by the user for later use.
% \gindex{dynamic math}
% \trouble{math>tikz=\tikz}
% \trouble{tikz>in math}
-% \trouble{mathjax=\brand{MathJax}>errors}
+% \trouble{mathjax=\MathJax>errors}
% \trouble{HTML>alt tags}
% \trouble{alt tags}
%
@@ -10619,8 +10659,8 @@ This boolean may be tested by the user for later use.
% \subsubsection{\pkg{physics} package}
% \label{sec:limitsphysics}
%
-% \trouble{mathjax=\brand{MathJax}>physics=\pkg{physics}}
-% \trouble{physics=\pkg{physics}>mathjax=\brand{MathJax}}
+% \trouble{mathjax=\MathJax>physics=\pkg{physics}}
+% \trouble{physics=\pkg{physics}>mathjax=\MathJax}
%
% \DescribePackage{physics}
% \limitsphysics
@@ -11174,14 +11214,37 @@ This boolean may be tested by the user for later use.
% as \HTML\ entities.
%
%
-% \subsection{Other packages}
+% \subsection{\pkg{sympytex} package}
%
% \DescribePackage{sympytex}
-% \DescribePackage{rterface}
-% Other packages such as \pkg{sympytex} and \pkg{rterface} would be set up
-% similar to \pkg{pythontex}, and the same warnings would apply.
% \trouble{sympytex=\pkg{sympytex}}
+% For \pkg{sympytex}:
+%
+% \begin{sourcedisplay}
+% \cs{usepackage}[ \\
+% \fquad \dots \\
+% \fquad PrintLatexCmd=\{ \\
+% \fqquad pdflatex project.tex \cs{LWRopseq} \\
+% \fqquad python project.sympy \cs{LWRopseq} \\
+% \fqquad pdflatex project.tex \\
+% \fquad \} , \\
+% \fquad HTMLLatexCmd=\{ \\
+% \fqquad pdflatex project\textgreen{\_html}.tex \cs{LWRopseq} \\
+% \fqquad python project\textgreen{\_html}.sympy \cs{LWRopseq} \\
+% \fqquad pdflatex project\textgreen{\_html}.tex \\
+% \fquad \} , \\
+% \fquad \dots \\
+% ]\{lwarp\}
+% \end{sourcedisplay}
+%
+% Also see the warnings for \pkg{pythontex}, above.
+
+% \subsection{Other packages}
+%
+% \DescribePackage{rterface}
% \trouble{rterface=\pkg{rterface}}
+% Other packages such as \pkg{rterface} would be set up
+% similar to \pkg{pythontex}, and the same warnings would apply.
%
%
% \subsection{\prog{make} program}
@@ -11337,19 +11400,19 @@ This boolean may be tested by the user for later use.
% Once these settings have been made, the \pkg{lwarp}-generated \HTML\ files
% may be loaded by \prog{Calibre}, and then converted to an \EPUB.
%
-% \begin{docsidebar}[\brand{MathJax} support]
-% \brand{MathJax} may be used in \EPUB\ documents.
-% Some e-readers include \brand{MathJax}, but any given reader
+% \begin{docsidebar}[\MathJax\ support]
+% \MathJax\ may be used in \EPUB\ documents.
+% Some e-readers include \MathJax, but any given reader
% may or may not have a recent version, and may or may not include
% extensions such as support for \pkg{siunitx}.
%
% \pkg{lwarp} adds some modifications to \MathML\ to support equations numbered
% by chapter. These modifications may not be compatible with the e-reader's
-% version of \brand{MathJax}, so \pkg{lwarp} requests that a known version be loaded
+% version of \MathJax, so \pkg{lwarp} requests that a known version be loaded
% instead. In some cases chapter numbering of equations still doesn't work.
%
% Until math support in \EPUB\ documents is improved, it is recommended to use
-% \SVG\ images instead of \brand{MathJax}, especially for equations numbered by chapter,
+% \SVG\ images instead of \MathJax, especially for equations numbered by chapter,
% or where \pkg{siunitx} support is important.
% \end{docsidebar}
%
@@ -11541,7 +11604,7 @@ This boolean may be tested by the user for later use.
%
% \newcommand{\describeWPMarkMath}{
% While formatting for word processors,
-% prints math as \LaTeX\ code instead of creating \SVG\ images or \brand{MathJax}.
+% prints math as \LaTeX\ code instead of creating \SVG\ images or \MathJax.
% This is useful for cut/paste into the \prog{LibreOffice Writer TeXMaths} extension.
% }
%
@@ -12332,9 +12395,9 @@ This boolean may be tested by the user for later use.
% \end{description}
%
% \needspace{3\baselineskip}
-% \item [Incorrect \brand{MathJax}:] Some objects do not convert to \brand{Mathjax}.
-% \trouble[\brand{MathJax}]{mathjax=\brand{MathJax}>errors}
-% \trouble{mathjax=\brand{MathJax}>unsupported packages}
+% \item [Incorrect \MathJax:] Some objects do not convert to \brand{Mathjax}.
+% \trouble[\MathJax]{mathjax=\MathJax>errors}
+% \trouble{mathjax=\MathJax>unsupported packages}
% Use \cs{displaymathother} before these objects, then \cs{displaymathnormal} to return
% to ``normal'' display math.
% See \cref{sec:displaymathother}.
@@ -12495,7 +12558,7 @@ This boolean may be tested by the user for later use.
% \item \brand{Linux}® is the registered trademark of Linus Torvalds in the U.S.\ and other countries.
% \item \brand{Mac\,OS}® is a trademark of \brand{Apple Inc.}
% \item \brand{MadCap Flare}™ is the property of \brand{MadCap Software, Inc.}
-% \item \brand{MathJax} is copyright 2009 and later.
+% \item \MathJax\ is copyright 2009 and later.
% The \brand{MathJax Consortium} is a joint venture of the \brand{American Mathematical Society} (AMS)
% and the \brand{Society for Industrial and Applied Mathematics} (SIAM)
% to advance mathematical and scientific content on the web.
@@ -12728,7 +12791,7 @@ This boolean may be tested by the user for later use.
%
% \gindex{numbers>left margin}\gindex{line numbers}
% \gindex{margin>numbers}\gindex{margin>tags}
-% \documentationnotes
+% \codedocumentationnotes
% \gindex{warning icon}\gindex{danger icon}\gindex{icon>warning}
% \changes{v0.15}{2016/04/05}{Docs: Added warning icons for items needing
% special attention.}
@@ -13027,7 +13090,7 @@ This boolean may be tested by the user for later use.
by lwarp's HTML conversion%
\ifblank{#2}{}{%
.\MessageBreak
- Class(es) #2 may be useful instead%
+ #2 may be useful instead%
}%
}
{%
@@ -13035,7 +13098,7 @@ This boolean may be tested by the user for later use.
or is superceded by another class.%
\ifblank{#2}{}{%
\MessageBreak
- For a possible alternative, see class(es) #2.%
+ For a possible alternative, see #2.%
}%
}
}{\relax}%
@@ -13122,7 +13185,6 @@ This boolean may be tested by the user for later use.
\LWR@checkloadnever{auto-pst-pdf-lua}{}
\LWR@checkloadnever{algorithms}{}
\LWR@checkloadnever{arraycols}{}
-\LWR@checkloadnever{beamer}{}
\LWR@checkloadnever{bidi}{}
\LWR@checkloadnever{cals}{}
\LWR@checkloadnever{cellspace}{}
@@ -13231,7 +13293,9 @@ This boolean may be tested by the user for later use.
%
%
% Some classes do not work with \pkg{lwarp}:
+% \changes{v0.902}{2021/09/15}{Forbid \pkg{beamer}.}
% \begin{macrocode}
+\LWR@earlyclassloadnever{beamer}{beamerarticle}
\LWR@earlyclassloadnever{jarticle}{ujarticle}
\LWR@earlyclassloadnever{jbook}{ujbook}
\LWR@earlyclassloadnever{jreport}{ujreport}
@@ -13302,6 +13366,7 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{backref}
\LWR@loadafter{balance}
\LWR@loadafter{bbding}
+\LWR@loadafter{beamerarticle}
\LWR@loadafter{bigdelim}
\LWR@loadafter{bigfoot}
\LWR@loadafter{bigstrut}
@@ -13734,6 +13799,7 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{supertabular}
\LWR@loadafter{svg}
\LWR@loadafter{swfigure}
+\LWR@loadafter{sympytex}
\LWR@loadafter{syntonly}
\LWR@loadafter{t1inc}
\LWR@loadafter{tabfigures}
@@ -13855,7 +13921,7 @@ This boolean may be tested by the user for later use.
}
% \end{macrocode}
%
-% The default for pdf\LaTeX, \DVI\LaTeX, up\LaTeX, etc:
+% The default for \pdfLaTeX, \dviLaTeX, up\LaTeX, etc:
% \changes{v0.63}{2018/11/30}{Fix: Default \cs{LWR@mdfive}.}
% \begin{macrocode}
\let\LWR@mdfive\pdfmdfivesum
@@ -13880,9 +13946,9 @@ This boolean may be tested by the user for later use.
% \end{macrocode}
%
%
-% \section{pdf\LaTeX\ T1 and \UTF-8 encoding}
+% \section{\pdfLaTeX\ T1 and \UTF-8 encoding}
%
-% When using pdf\LaTeX, \pkg{lwarp} requires T1 font encoding,
+% When using \pdfLaTeX, \pkg{lwarp} requires T1 font encoding,
% and recommends \UTF-8 input encoding.
%
% If some other input encoding is already defined, \pkg{lwarp} will
@@ -13998,7 +14064,7 @@ This boolean may be tested by the user for later use.
%
% \section{Upright quotes}
%
-% In pdf\TeX, preserve upright quotes in verbatim text.
+% In \pdfTeX, preserve upright quotes in verbatim text.
% \pkg{upquote} also loads \pkg{textcomp}.
%
% \changes{v0.63}{2018/11/25}{p\TeX: Load \pkg{upquote}.}
@@ -14611,9 +14677,9 @@ This boolean may be tested by the user for later use.
% \end{macrocode}
%
% \DescribeOption{mathjax}
-% Option \optn{mathjax} selects \brand{MathJax} math display:
+% Option \optn{mathjax} selects \MathJax\ math display:
% \gindex{math>mathjax=\optn{mathjax} option}
-% \gindex{mathjax=\brand{MathJax}>mathjax=\optn{mathjax} option}
+% \gindex{mathjax=\MathJax>mathjax=\optn{mathjax} option}
% If the \optn{mathjax} option is given, boolean |mathjax| is true, may be used for \cs{ifbool} tests.
% \begin{macrocode}
\DeclareVoidOption{mathjax}{%
@@ -14635,7 +14701,7 @@ This boolean may be tested by the user for later use.
% ^^A If the \optn{mathKaTeX} option is given, boolean |mathKaTeX| is true,
% ^^A may be used for \cs{ifbool} tests.
% ^^A Boolean |mathjax| is also set true, as most code is shared with
-% ^^A \brand{MathJax} functions.
+% ^^A \MathJax\ functions.
% ^^A \begin{macrocode}
% ^^A \DeclareVoidOption{mathKaTeX}{%
% ^^A \PackageInfo{lwarp}{Using option 'mathKaTeX'}
@@ -15231,7 +15297,7 @@ This boolean may be tested by the user for later use.
% \begin{environment}{warpMathJax}
-% Only if \brand{MathJax} is being used along with \HTML.
+% Only if \MathJax\ is being used along with \HTML.
% \changes{v0.79}{2020/01/26}{Added.}
% \begin{macrocode}
\begin{warpprint}
@@ -15404,7 +15470,7 @@ This boolean may be tested by the user for later use.
% \begin{macrocode}
%
% Disable ligatures for typewriter fonts.
-% The comma was causing issues with \brand{MathJax} and \cs{,} followed by a comma.
+% The comma was causing issues with \MathJax\ and \cs{,} followed by a comma.
% Ligatures for f, q, t, etc used to be disabled for non-typewriter fonts, but
% are now allowed.
% \changes{v0.89}{2020/08/01}{Disable typewriter ligatures.}
@@ -15480,7 +15546,7 @@ This boolean may be tested by the user for later use.
% \changes{v0.20}{2017/01/12}{Page geometry set to 6in wide with large margins.}
% \changes{v0.27}{2017/04/04}{Page geometry modified to reduce line overflow.}
% \changes{v0.28}{2017/04/13}{Forced oneside to maintain large right margin.}
-% \changes{v0.52}{2018/03/31}{Fix: \brand{MathJax} script line wraps. Reduced right margin.}
+% \changes{v0.52}{2018/03/31}{Fix: \MathJax\ script line wraps. Reduced right margin.}
% \changes{v0.74}{2019/08/13}{Remembers user's geometry.}
%
% \codehtml
@@ -15890,23 +15956,6 @@ This boolean may be tested by the user for later use.
-% \codeprint
-% \begin{macrocode}
-\begin{warpprint}
-% \end{macrocode}
-
-% \DescribePackage{varwidth}
-% Used for print-mode \env{lateximage}.
-% \begin{macrocode}
-\RequirePackage{varwidth}
-% \end{macrocode}
-
-% \begin{macrocode}
-\end{warpprint}
-% \end{macrocode}
-
-
-
% \section{Loading packages}
%
%
@@ -17276,7 +17325,7 @@ This boolean may be tested by the user for later use.
% \begin{macrocode}
\LetLtxMacro\LWR@origtie\t
% \end{macrocode}
-% For pdf\LaTeX, additional work is required:
+% For \pdfLaTeX, additional work is required:
% \begin{macrocode}
\ifPDFTeX% pdflatex or dvi latex
\LetLtxMacro\LWR@origgraveaccent\`
@@ -17295,7 +17344,7 @@ This boolean may be tested by the user for later use.
% \end{macrocode}
% The \HTML\ redefinitions follow.
%
-% For pdf\LaTeX, Unicode diacritical marks are used:
+% For \pdfLaTeX, Unicode diacritical marks are used:
% \begin{macrocode}
\renewcommand*{\`}[1]{#1\HTMLunicode{0300}}
\renewcommand*{\'}[1]{#1\HTMLunicode{0301}}
@@ -17917,6 +17966,9 @@ This boolean may be tested by the user for later use.
% \changes{v0.899}{2021/06/25}{\filenm{lwarp.css}: Improved \pkg{multicol}.}
% \changes{v0.901}{2021/08/20}{\filenm{lwarp.css}: Tabular cell text alignment.}
% \changes{v0.901}{2021/08/20}{\filenm{lwarp.css}: Improved captions.}
+% \changes{v0.902}{2021/09/15}{\filenm{lwarp.css}: Centered \element{div} \attribute{author}.}
+% \changes{v0.902}{2021/09/15}{\filenm{lwarp.css}: Added \pkg{beamerarticle}.}
+% \changes{v0.902}{2021/09/28}{\filenm{lwarp.css}: Added \attribute{textnormal}.}
%
% ^^A *lwarp.css
%
@@ -18003,6 +18055,15 @@ span.textit, div.textit, table td.tditshape { font-style: italic; }
table td.tdbfit { font-weight: bold ; font-style:italic }
+span.textnormal, div.textnormal {
+ font-weight: normal;
+ font-style: normal;
+ font-variant: normal;
+ font-variant-numeric: normal ;
+ font-family: "DejaVu Serif", "Bitstream Vera Serif",
+ "Lucida Bright", Georgia, serif;
+}
+
span.textmd, div.textmd { font-weight: normal; }
span.textup, div.textup {
@@ -18642,7 +18703,7 @@ div.wpminipage { border: 1px solid green ; margin: .5ex ; padding: .5ex ;}
.fcolorbox .minipage, .fcolorboxBlock .minipage
{border: none ; background: none;}
-.fbox, .fboxBlock { border: 1px solid black ; }
+.fbox, .fboxBlock { border: 1px solid black ; padding: 4pt }
.fbox, .fboxBlock, .fcolorbox, .fcolorboxBlock, .colorbox, .colorboxBlock,
.fminipage, .fcolorminipage
@@ -18795,6 +18856,15 @@ div.generalframe {
}
+/* For beamerarticle: */
+div.beamerframe {
+ margin: 3ex 1em 3ex 1em ;
+ border: 1px solid gray;
+ border-radius: 0px ;
+ padding: .3ex 1em 0ex 1em ;
+ display: block ;
+}
+
dl {
margin: 1ex 2em 1ex 0em;
@@ -19190,6 +19260,7 @@ div.subtitle p { margin: 1ex ; }
div.author
{
+ text-align: center ;
font-variant: normal ;
font-style: normal ;
font-size: 1em ;
@@ -19357,7 +19428,7 @@ div.alg2enoline{
span.alg2elinenumber{
margin-right: .5em ;
- font-size: 50% ;
+ font-size: 60% ;
color: red ;
}
@@ -20377,8 +20448,8 @@ page_compositor "."
% \credits{Davide P. Cervone}
% \DescribeFile{lwarp_mathjax.txt}
-% The default \brand{MathJax} script used by \pkg{lwarp} when using \brand{MathJax}.
-% A recent version of \brand{MathJax} is used, as served by the recommended repository.
+% The default \MathJax\ script used by \pkg{lwarp} when using \MathJax.
+% A recent version of \MathJax\ is used, as served by the recommended repository.
% Adjustments are made to allow \LaTeX\ to control the equation tags
% and provide for starred macros.
%
@@ -20388,8 +20459,8 @@ page_compositor "."
% but do not need to be present when distributing
% the resulting \HTML\ files.
%
-% \gindex{mathjax=\brand{MathJax}>custom script}
-% \trouble{mathjax=\brand{MathJax}>custom script}
+% \gindex{mathjax=\MathJax>custom script}
+% \trouble{mathjax=\MathJax>custom script}
% To generate a custom script, such as to use a local repository,
% \margintag{custom script}
% copy \filenm{lwarp_mathjax.txt} to a new file,
@@ -20400,15 +20471,15 @@ page_compositor "."
% \changes{v0.30}{2017/04/26}{Fix: \filenm{lwarp_mathjax.txt}: Only written in print mode.}
% \changes{v0.34}{2017/07/27}{File: \filenm{lwarp_mathjax.txt}: Version change.}
% \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 \brand{MathJax} v2.7.4.}
-% \changes{v0.59}{2018/07/16}{File: \filenm{lwarp_mathjax.txt}: Fix: Removed chapter number from tagged non-numeric \brand{MathJax} equations.}
+% \changes{v0.45}{2017/12/21}{File: \filenm{lwarp_mathjax.txt}: Allow \MathJax\ inside \env{tabbing}.}
+% \changes{v0.45}{2018/01/23}{File: \filenm{lwarp_mathjax.txt}: Allow \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.}
% \changes{v0.62}{2018/11/05}{File: \filenm{lwarp_mathjax.txt}: Removed inoperable \pkg{siunitx} extension.}
-% \changes{v0.70}{2019/03/24}{File: \filenm{lwarp_mathjax.txt}: Updated to \brand{MathJax} v2.7.5.}
+% \changes{v0.70}{2019/03/24}{File: \filenm{lwarp_mathjax.txt}: Updated to \MathJax\ v2.7.5.}
% \changes{v0.70}{2019/03/24}{File: \filenm{lwarp_mathjax.txt}: Loads \filenm{autoload-all.js} extension.}
-% \changes{v0.76}{2019/10/05}{File: \filenm{lwarp_mathjax.txt}: Updated to \brand{MathJax} v2.7.6.}
-% \changes{v0.86}{2020/05/03}{File: \filenm{lwarp_mathjax.txt}: Updated to \brand{MathJax} v3 current.}
+% \changes{v0.76}{2019/10/05}{File: \filenm{lwarp_mathjax.txt}: Updated to \MathJax\ v2.7.6.}
+% \changes{v0.86}{2020/05/03}{File: \filenm{lwarp_mathjax.txt}: Updated to \MathJax\ v3 current.}
% \changes{v0.86}{2020/05/03}{File: \filenm{lwarp_mathjax.txt}: Improved equation numbering.}
% \changes{v0.86}{2020/05/03}{File: \filenm{lwarp_mathjax.txt}: Added support for starred macros.}
% \changes{v0.87}{2020/05/20}{File: \filenm{lwarp_mathjax.txt}: Now provides \cs{ifstar}, \cs{ifnextchar}.}
@@ -20751,7 +20822,7 @@ MathJax = {
-- Copyright 2016-2021 Brian Dunn
-printversion = "v0.901"
+printversion = "v0.902"
requiredconfversion = "2" -- also at *lwarpmk.conf
function printhelp ()
@@ -22076,11 +22147,11 @@ end -- not --version
% \DescribeBoolean{LWR@mathmacro} True if currently defining math macros.
-% Used to disable \SVG\ math hashing and \brand{MathJax} math contents while
+% Used to disable \SVG\ math hashing and \MathJax\ math contents while
% defining a macro using inline math.
% Begin a macro, it is not guaranteed that the contents are static, and so
% the image must be unique. The contents also almost certainly will not be
-% parsed correctly by \brand{MathJax}.
+% parsed correctly by \MathJax.
% \begin{macrocode}
\newbool{LWR@mathmacro}
\boolfalse{LWR@mathmacro}
@@ -22116,7 +22187,7 @@ end -- not --version
% \gindex{SVG>dynamic math}
% \trouble{math>incorrect>dynamic}
% \trouble{math>dynamic}
-% \trouble{mathjax=\brand{MathJax}>errors}
+% \trouble{mathjax=\MathJax>errors}
% \gindex{math>dynamic}
% \gindex{dynamic math expressions}
%
@@ -22126,7 +22197,7 @@ end -- not --version
% value of a counter, then \cs{inlinemathother} must be used before the
% inline math expression, and \cs{inlinemathnormal} must be used after.
%
-% For \brand{MathJax}, the inline math expression is usually printed for \brand{MathJax} to
+% For \MathJax, the inline math expression is usually printed for \MathJax\ to
% interpret. When marked as dynamic math, the following inline math expression
% will be displayed as an unhashed inline \SVG\ image instead.
%
@@ -22760,7 +22831,7 @@ end -- not --version
% \begin{macro}{\LWR@closeprevious} \marg{sectintype}
% Close everything up to the given depth:
% \begin{macrocode}
-\newcommand*{\LWR@closeprevious}[1]{
+\newcommand*{\LWR@closeprevious}[1]{%
\LWR@traceinfo{%
LWR@closeprevious to depth \csuse{LWR@depth#1}, %
depths are \LWR@subprintstack%
@@ -23064,14 +23135,14 @@ end -- not --version
% \changes{v0.85}{2020/04/30}{Fix: Added print macros for \pkg{fontspec}.}
% \begin{macrocode}
\newcommand*{\LWR@htmltagc}[1]{%
-\LWR@traceinfo{LWR@htmltagc !\detokenize{#1}!}%
-\begingroup%
-\LWR@hook@processingtags%
-\ifmmode\else\protect\LWR@print@normalfont\protect\LWR@origttfamily\fi%
-\protect\LWR@origtextless%
-\LWR@isolate{#1}%
-\protect\LWR@origtextgreater%
-\endgroup%
+ \LWR@traceinfo{LWR@htmltagc !\detokenize{#1}!}%
+ \begingroup%
+ \LWR@hook@processingtags%
+ \ifmmode\else\protect\LWR@print@normalfont\protect\LWR@origttfamily\fi%
+ \protect\LWR@origtextless%
+ \LWR@isolate{#1}%
+ \protect\LWR@origtextgreater%
+ \endgroup%
}
% \end{macrocode}
% \end{macro}
@@ -23129,8 +23200,8 @@ end -- not --version
%
% \begin{macrocode}
\newcommand*{\LWR@nestspanitem}{%
-\if@newlist\else{\LWR@htmltagc{br /}}\fi%
-\LWR@origitem%
+ \if@newlist\else{\LWR@htmltagc{br /}}\fi%
+ \LWR@origitem%
}
\newenvironment*{LWR@nestspan}
@@ -23163,7 +23234,7 @@ end -- not --version
}%
\renewcommand{\LWR@forcenewpage}{}%
\renewcommand{\LWR@liststart}{%
- \let\item\LWR@nestspanitem%
+ \LetLtxMacro\item\LWR@nestspanitem%
}%
\renewcommand{\LWR@listend}{\LWR@htmltagc{br /}\LWR@htmltagc{br /}}%
\renewenvironment{quote}{\LWR@htmltagc{br /}}{\LWR@htmltagc{br /}}%
@@ -23740,19 +23811,16 @@ end -- not --version
\global\boolfalse{LWR@doingapar}
% \end{macrocode}
-
-% \begin{macro}{\LWR@ensuredoingapar}
-% If are about to print something visible, and
-% if allowed to start a new paragraph,
-% ensure that are |LWR@doingapar|, so that paragraph tags are placed:
+% \DescribeBoolean{LWR@algocf@dopars}
+% Tells whether \pkg{algorithm2e} has patched paragraph handling using \cs{everypar}.
+% If so, the open paragraph tags are generated by
+% \pkg{algorithm2e}'s \cs{algocf@everypar} instead of \cs{LWR@openparagraph}.
+% \changes{v0.902}{2021/09/28}{Improved par tags.}
% \begin{macrocode}
-\newcommand*{\LWR@ensuredoingapar}{%
-\ifbool{LWR@doingstartpars}%
-{\global\booltrue{LWR@doingapar}}%
-{}%
-}
+\newbool{LWR@algocf@dopars}
+\boolfalse{LWR@algocf@dopars}
% \end{macrocode}
-% \end{macro}
+
% \begin{macro}{\PN@parnotes@auto} Redefined by \pkg{parnotes} to print
@@ -23763,16 +23831,22 @@ end -- not --version
% \end{macro}
+% \begin{macro}{\LWR@ensuredoingapar}
% \begin{macro}{\LWR@openparagraph}
+%
+% These were different in older versions of \pkg{lwarp},
+% but are now the same thing.
% \begin{macrocode}
\newcommand*{\LWR@openparagraph}
{%
% \end{macrocode}
+%
% See if paragraph handling is enabled:
% \begin{macrocode}
\ifbool{LWR@doingstartpars}%
{% handling pars
% \end{macrocode}
+%
% See if have already started a \env{lateximage} or a \element{span}.
% If so, do not generate nested paragraph tags.
% \begin{macrocode}
@@ -23781,32 +23855,47 @@ end -- not --version
test {\ifnumcomp{\value{LWR@spandepth}}{>}{0}}
}% nested par tags?
% \end{macrocode}
-% If so: Do nothing if already started a \env{lateximage} page. Cannot nest a \env{lateximage}.
+%
+% If so: Do nothing if already started a \env{lateximage} page.
+% Cannot nest a \env{lateximage}.
% Also do nothing if already inside a \element{span}. Do not nest paragraph tags
% inside a \element{span}.
% \begin{macrocode}
{}% no nested par tags
% \end{macrocode}
+%
% Else: No \env{lateximage} or \element{span} has been started yet,
% so it's OK to generate paragraph tags.
% \begin{macrocode}
{% yes nest par tags
+ \ifbool{LWR@doingapar}{}{%
% \end{macrocode}
+%
% If \pkg{parnotes} is used, paragraph notes are inserted
% before starting the next paragraph:
% \changes{v0.56}{2018/05/09}{Added support for \pkg{parnotes}.}
+% \changes{v0.902}{2021/09/20}{Improved \pkg{parnotes}.}
% \begin{macrocode}
- \PN@parnotes@auto%
+ \PN@parnotes@auto%
% \end{macrocode}
-% The opening paragraph tag:
-% \changes{v0.66}{2019/02/02}{Improved \HTML\ formatting.}
+%
+% Set flag before creating the tag, so that the tag itself does not trigger
+% a new paragraph:
+% \changes{v0.902}{2021/09/20}{Improved par tags.}
% \begin{macrocode}
- \LWR@htmltagc{\LWR@tagregularparagraph}\LWR@orignewline%
+ \global\booltrue{LWR@doingapar}%
% \end{macrocode}
-% Now have started a paragraph.
+%
+% The opening paragraph tag.
+% Do not create tag if doing \pkg{algorithm2e} handling instead:
+% \changes{v0.66}{2019/02/02}{Improved \HTML\ formatting.}
% \begin{macrocode}
- \global\booltrue{LWR@doingapar}%
+ \ifbool{LWR@algocf@dopars}{}{%
+ \LWR@htmltagc{\LWR@tagregularparagraph}\LWR@orignewline%
+ }%
+ }%
% \end{macrocode}
+%
% At the endof each paragraph,
% generate closing tag and do regular |/par| stuff.
% (Attempting to use the \pkg{everyhook} |cr| hook
@@ -23817,8 +23906,11 @@ end -- not --version
}% end of handling pars
{}% not handling pars
}
+
+\let\LWR@ensuredoingapar\LWR@openparagraph
% \end{macrocode}
% \end{macro}
+% \end{macro}
% \begin{macro}{\LWR@closeparagraph@br}
@@ -23835,7 +23927,9 @@ end -- not --version
test {\ifnumcomp{\value{LWR@lateximagedepth}}{=}{0}} and
not bool {LWR@intabularmetadata}
}%
- {\unskip\LWR@htmltagc{br /}}%
+ {%
+ \unskip\LWR@htmltagc{br /}%
+ }%
{}%
}
% \end{macrocode}
@@ -23851,14 +23945,17 @@ end -- not --version
{%
% \LWR@traceinfo{LWR@closeparagraph}%
% \end{macrocode}
+%
% See if paragraph handling is enabled:
% \begin{macrocode}
\ifbool{LWR@doingapar}%
% \end{macrocode}
+%
% If currently in paragraph mode:
% \begin{macrocode}
{% handling pars
% \end{macrocode}
+%
% See if already started a \env{lateximage} or a \element{span}:
% \begin{macrocode}
\ifboolexpr{
@@ -23866,6 +23963,7 @@ end -- not --version
test {\ifnumcomp{\value{LWR@spandepth}}{>}{0}}
}%
% \end{macrocode}
+%
% Add a parbreak if in a span, not in a lateximage,
% and not in table metadata.
% \begin{macrocode}
@@ -23873,10 +23971,12 @@ end -- not --version
\LWR@closeparagraph@br%
}% no nested par tags
% \end{macrocode}
+%
% If have not already started a \env{lateximage} or a \element{span}:
% \begin{macrocode}
{% yes nest par tags
% \end{macrocode}
+%
% Print a closing tag and some extra vertical space.
%
% (The fill seems to be required to force the \pkg{caption}
@@ -23889,23 +23989,33 @@ end -- not --version
\leavevmode\LWR@orignewline%
\LWR@htmltagc{/\LWR@tagregularparagraph}%
% \end{macrocode}
+%
% No longer doing a paragraph:
% \begin{macrocode}
- \global\boolfalse{LWR@doingapar}%
+ \global\boolfalse{LWR@doingapar}% keep
% \end{macrocode}
+%
% Disable the special \env{minipage} \& \cs{hspace} interaction
% until a new minipage is found:
% \begin{macrocode}
\global\boolfalse{LWR@minipagethispar}%
% \end{macrocode}
+%
% If \pkg{parnotes} is used, paragraph notes are inserted
% after ending the previous paragraph:
% \changes{v0.56}{2018/05/09}{Added support for \pkg{parnotes}.}
+% \changes{v0.902}{2021/09/20}{Improved \pkg{parnotes}.}
% \begin{macrocode}
\PN@parnotes@auto%
+% \end{macrocode}
+%
+% After creating par notes, not yet started a new paragraph:
+% \begin{macrocode}
+ \global\boolfalse{LWR@doingapar}%
}% end of yes nest par tags
}% end of handling pars
% \end{macrocode}
+%
% Add a parbreak if in a span, not in a lateximage,
% and not in table metadata.
% \changes{v0.66}{2019/01/01}{Fix: Combined span, \env{tabular}, and \env{lateximage}.}
@@ -23914,6 +24024,7 @@ end -- not --version
\LWR@closeparagraph@br%
}% not handling pars
% \end{macrocode}
+%
% In most cases, finish with a \LaTeX\ \cs{par}, but in the case
% of paragraphs between lines in a tabular fetch the next token instead:
% \changes{v0.46}{2018/01/19}{Fix: Tabular empty lines.}
@@ -23968,6 +24079,7 @@ end -- not --version
{%
% \LWR@traceinfo{LWR@startpars}%
% \end{macrocode}
+%
% Ignore if inside a \env{lateximage} or \element{span}:
% \begin{macrocode}
\ifboolexpr{
@@ -23977,34 +24089,43 @@ end -- not --version
{}%
{%
% \end{macrocode}
+%
% See if currently handling \HTML\ paragraphs:
% \begin{macrocode}
\ifbool{LWR@doingstartpars}%
% \end{macrocode}
+%
% If already in paragraph mode, do nothing.
% \begin{macrocode}
{}%
% \end{macrocode}
+%
% If not currently in paragraph mode:
% \begin{macrocode}
{%
% \end{macrocode}
+%
% At the start of each paragraph, generate an opening tag:
% \gindex{par=\cs{par}>hooks}
+% \changes{v0.902}{2021/09/24}{Cleared hook before adding.}
% \begin{macrocode}
+ \ClearPreHook{par}%
\PushPreHook{par}{\LWR@openparagraph}%
% \end{macrocode}
+%
% At the end of each paragraph, generate closing tag then do regular |/par| actions:
% \begin{macrocode}
\let\par\LWR@closeparagraph
}% an intentionally blank line
% \end{macrocode}
+%
% Are now handling paragraphs, but have not yet actually started one:
% \begin{macrocode}
\global\setbool{LWR@doingstartpars}{true}%
% \end{macrocode}
-% No <par> tag yet to undo:
+%
+% No \element{par} tag yet to undo:
% \begin{macrocode}
\global\boolfalse{LWR@doingapar}%
}% nestspan
@@ -24024,6 +24145,7 @@ end -- not --version
\newcommand*{\LWR@stoppars}%
{%
% \end{macrocode}
+%
% Ignore if inside a \env{lateximage} or \element{span}:
% \begin{macrocode}
\ifboolexpr{
@@ -24033,14 +24155,17 @@ end -- not --version
{}%
{%
% \end{macrocode}
+%
% See if currently handling \HTML\ paragraphs:
% \begin{macrocode}
\ifbool{LWR@doingapar}%
% \end{macrocode}
+%
% if currently in an \HTML\ paragraph:
% \begin{macrocode}
{%
% \end{macrocode}
+%
% Print a closing tag:
% \changes{v0.66}{2019/02/02}{Improved \HTML\ formatting.}
% \begin{macrocode}
@@ -24048,10 +24173,12 @@ end -- not --version
\LWR@htmltagc{/\LWR@tagregularparagraph}%
\LWR@orignewline%
% \end{macrocode}
+%
% No longer have an open \HTML\ paragraph:
% \begin{macrocode}
\global\boolfalse{LWR@doingapar}%
% \end{macrocode}
+%
% Disable the special \env{minipage} \& \cs{hspace} interaction
% until a new minipage is found:
% \changes{v0.71}{2019/04/08}{Reduced underfull \cs{hbox} warnings.}
@@ -24059,26 +24186,32 @@ end -- not --version
\global\boolfalse{LWR@minipagethispar}
}%
% \end{macrocode}
+%
% If was not in an \HTML\ paragraph:
% \begin{macrocode}
{}%
% \end{macrocode}
+%
% See if currently allowing \HTML\ paragraphs:
% \begin{macrocode}
\ifbool{LWR@doingstartpars}%
% \end{macrocode}
+%
% If so: clear the |par| hook to no longer catch paragraphs:
% \begin{macrocode}
{\ClearPreHook{par}}%
% \end{macrocode}
+%
% Else: Do nothing:
% \begin{macrocode}
{}%
% \end{macrocode}
+%
% No longer in paragraph mode:
% \begin{macrocode}
\global\setbool{LWR@doingstartpars}{false}%
% \end{macrocode}
+%
% No \element{p} tag to undo:
% \begin{macrocode}
\global\boolfalse{LWR@doingapar}%
@@ -24238,7 +24371,7 @@ end -- not --version
-% \section{\brand{MathJax} script}
+% \section{\MathJax\ script}
% \codehtml
% \begin{macrocode}
@@ -24247,11 +24380,11 @@ end -- not --version
% \begin{macro}{\LWR@mathjaxfilename}
% \DescribeDefault{\filenm{lwarp_mathjax.txt}}
-% The \brand{MathJax} script filename to use.
+% The \MathJax\ script filename to use.
% This file is copied into the head of each \HTML\ page.
% This may be changed mid-document using \cs{MathJaxFilename},
-% allowing the use of a custom \brand{MathJax} script, such as for a local repository,
-% or different \brand{MathJax} script files to be used for different sections of the document.
+% allowing the use of a custom \MathJax\ script, such as for a local repository,
+% or different \MathJax\ script files to be used for different sections of the document.
%
% \changes{v0.70}{2019/03/24}{Added.}
% \begin{macrocode}
@@ -24260,7 +24393,7 @@ end -- not --version
% \end{macro}
% \begin{macro}{\MathJaxFilename} \marg{filename} \qquad
-% Assigns the \brand{MathJax} script file to be used by the following \HTML\ pages.
+% Assigns the \MathJax\ script file to be used by the following \HTML\ pages.
%
% \changes{v0.70}{2019/03/24}{Added.}
% \begin{macrocode}
@@ -24480,6 +24613,16 @@ end -- not --version
% \end{macrocode}
+% Required for footnotes inside \env{description} or \pkg{amstheorem} square braces:
+% \changes{v0.902}{2021/09/20}{Fixed: Footnotes inside square brackets.}
+% \begin{macrocode}
+\AtBeginDocument{
+\robustify{\footnote}
+\robustify{\footnotemark}
+}
+% \end{macrocode}
+
+
% \begin{macro}{\LWR@footnotebox}
% Patch \LaTeX\ footnotes to use a new \cs{box} instead of an insert
% for \pkg{lwarp} footnotes.
@@ -24491,11 +24634,22 @@ end -- not --version
% \end{macro}
%
%
+% \DescribeBoolean{LWR@spewingnotes}
+% Used with the \pkg{footnote} package to suppress paragraph tags
+% before and after \cs{spewnotes}.
+% \changes{v0.902}{2021/09/20}{Improved \pkg{footnote} par tags.}
+% \begin{macrocode}
+\newbool{LWR@spewingnotes}% For the footnote package.
+% \end{macrocode}
+%
+%
% Much of the following has unneeded print-mode formatting removed.
%
% \begin{macro}{\@makefntext} \marg{text}
+%
+% \changes{v0.902}{2021/09/20}{Fixed: Footnotes inside square brackets.}
% \begin{macrocode}
-\long\def\@makefntext#1{\textsuperscript{\@thefnmark}~#1}
+\long\def\@makefntext#1{\textsuperscript{\@thefnmark}~{#1}}
% \end{macrocode}
% \end{macro}
%
@@ -24520,6 +24674,7 @@ end -- not --version
% \cs{let}\cs{@footnotetext}\cs{LWR@footnotetext}
% \end{sourcedisplay}
%
+%
% \begin{macro}{\LWR@@footnotetext} \marg{text} \marg{footnote box name}
%
% Factored to allow multiple footnote boxes for \pkg{manyfoot}.
@@ -24539,11 +24694,12 @@ end -- not --version
% closer to its usage.
% \begin{macrocode}
\LWR@newautopagelabel{page}%
+\LWR@ensuredoingapar%
% \end{macrocode}
%
% Locally disable auto page labels inside the footnote text.
% Footnotes are accumulated in the current page before finally being placed
-% in a potentially later page, so the aotopages would be incorrect.
+% in a potentially later page, so the autopages would be incorrect.
% \begin{macrocode}
\begingroup%
\let\LWR@newautopagelabel\LWR@null@newautopagelabel%
@@ -24579,40 +24735,30 @@ end -- not --version
%
% Use paragraph tags if in a tabular data cell or a \env{lateximage}:
% \changes{v0.66}{2019/02/02}{Improved \HTML\ formatting.}
+% \changes{v0.902}{2021/09/20}{Improved \pkg{footnote} par tags.}
% \begin{macrocode}
- \ifthenelse{%
- \boolean{LWR@doingstartpars} \AND%
- \cnttest{\value{LWR@lateximagedepth}}{=}{0}%
+ \ifbool{LWR@spewingnotes}{}{%
+ \LWR@htmltagc{\LWR@tagregularparagraph}\LWR@orignewline%
}%
- {}%
- {\LWR@htmltagc{\LWR@tagregularparagraph}\LWR@orignewline}%
% \end{macrocode}
% Append the footnote to the list:
% \begin{macrocode}
\@makefntext{#1}%
% \end{macrocode}
% Closing paragraph tag:
+% \changes{v0.902}{2021/09/20}{Improved \pkg{footnote} par tags.}
% \begin{macrocode}
- \ifthenelse{%
- \boolean{LWR@doingstartpars} \AND%
- \cnttest{\value{LWR@lateximagedepth}}{=}{0}%
+ \ifbool{LWR@spewingnotes}{}{%
+ \LWR@origtilde\LWR@orignewline%
+ \LWR@htmltagc{/\LWR@tagregularparagraph}%
+ \LWR@orignewline%
}%
- {\par}%
- {%
- \LWR@htmltagc{/\LWR@tagregularparagraph}%
- \LWR@orignewline%
- }%
% \end{macrocode}
% Close the group:
% \begin{macrocode}
\color@endgroup%
}% vbox
\endgroup%
-% \end{macrocode}
-% Paragraph handling:
-% \changes{v0.52}{2018/03/28}{Fix: Paragraph handling.}
-% \begin{macrocode}
-\LWR@ensuredoingapar%
}%
% \end{macrocode}
% \end{macro}
@@ -24647,6 +24793,7 @@ end -- not --version
% \begin{macrocode}
\long\def\@mpfootnotetext#1{%
\LWR@traceinfo{@mpfootnotetext}%
+\LWR@ensuredoingapar%
\global\setbox\LWR@mpfootnotes\vbox{%
\unvbox\LWR@mpfootnotes%
\reset@font\footnotesize%
@@ -24656,32 +24803,26 @@ end -- not --version
{\csname p@mpfootnote\endcsname\@thefnmark}%
\color@begingroup%
% \end{macrocode}
-% Use paragraph tags if in a tabular data cell or a \env{lateximage}:
+% Add paragraph tag:
% \changes{v0.66}{2019/02/02}{Improved \HTML\ formatting.}
+% \changes{v0.902}{2021/09/24}{Improved par tags.}
% \begin{macrocode}
- \ifthenelse{%
- \boolean{LWR@doingstartpars} \AND%
- \cnttest{\value{LWR@lateximagedepth}}{=}{0}%
- }%
- {}%
- {\LWR@htmltagc{\LWR@tagregularparagraph}\LWR@orignewline}%
+ \LWR@htmltagc{\LWR@tagregularparagraph}\LWR@orignewline%
% \end{macrocode}
% \begin{macrocode}
\@makefntext{%
\ignorespaces#1%
}%
% \end{macrocode}
-% Don't add the closing paragraph tag if are inside a \env{lateximage}:
+% Add the closing paragraph tag:
% \changes{v0.71}{2019/04/07}{Improved \HTML\ formatting.}
% \changes{v0.71}{2019/04/08}{Reduced underfull \cs{hbox} warnings.}
+% \changes{v0.902}{2021/09/24}{Improved par tags.}
+% \begin{macrocode}
+ \leavevmode\LWR@orignewline%
+ \LWR@htmltagc{/\LWR@tagregularparagraph}%
+% \end{macrocode}
% \begin{macrocode}
- \ifthenelse{\cnttest{\value{LWR@lateximagedepth}}{>}{0}}%
- {}%
- {%
- \leavevmode\LWR@orignewline%
- \LWR@htmltagc{/\LWR@tagregularparagraph}%
- \LWR@origpar%
- }%
\color@endgroup%
}% vbox
% \end{macrocode}
@@ -25313,7 +25454,7 @@ end -- not --version
\LWR@simplifycustom%
% \end{macrocode}
%
-% If pdf\LaTeX\ and not \optn{utf8} encoding, don't try to convert emdash, endash:
+% If \pdfLaTeX\ and not \optn{utf8} encoding, don't try to convert emdash, endash:
% \changes{v0.52}{2018/04/01}{Fix: \cs{FileDepth} with non-utf8 encoding.}
% \changes{v0.84}{2020/04/21}{Fix: Dashes in filename.}
% \begin{macrocode}
@@ -25404,7 +25545,7 @@ end -- not --version
% \DescribeBoolean{LWR@MathJax@silentquotes}
% If true, double quotes (\cs{"} and |"|) are removed (used for \pkg{mathspec}).
-% This unfortunately includes double quotes used inside \cs{text} with \brand{MathJax}.
+% This unfortunately includes double quotes used inside \cs{text} with \MathJax.
% If false, double quotes are escaped.
% \begin{macrocode}
\newbool{LWR@MathJax@silentquotes}
@@ -25449,7 +25590,7 @@ end -- not --version
\LWR@replacestrings{'}{&apos;}%
\LWR@replacestrings{`}{&grave;}%
% \end{macrocode}
-% \brand{MathJax} allows expressions to be defined with \cs{newcommand}.
+% \MathJax\ allows expressions to be defined with \cs{newcommand}.
% These expressions would appear with |##| for each argument,
% and each must be changed to a single |#|.
% This must be done after all the above changes.
@@ -25466,6 +25607,8 @@ end -- not --version
% \begin{macro}{\LWR@HTMLsanitize} \marg{text}
%
+% Prints the sanitized text.
+%
% \begin{macrocode}
\newrobustcmd{\LWR@HTMLsanitize}[1]{%
% \end{macrocode}
@@ -25486,13 +25629,13 @@ end -- not --version
% \begin{macro}{\LWR@HTMLsanitizeexpand} \marg{text}
%
% This version expands the argument before sanitizing it.
-% This is only used for adding math to \brand{MathJax} expressions or
+% This is only used for adding math to \MathJax\ expressions or
% \env{lateximage} \attribute{alt} tags.
%
% \changes{v0.36}{2017/08/16}{Fix for \pkg{babel-french}.}
% \changes{v0.51}{2018/03/07}{Fix: Escapes double quotes.}
% ^^A \changes{v0.79}{2020/01/27}{Fix: \cs{\&}.}
-% \changes{v0.89}{2020/08/08}{Fix: Nested \brand{MathJax} environments.}
+% \changes{v0.89}{2020/08/08}{Fix: Nested \MathJax\ environments.}
% ^^A *88*
% \begin{macrocode}
\edef\LWR@beginspaceleftbrace{begin \LWRleftbrace}
@@ -25519,7 +25662,7 @@ end -- not --version
\edef\LWR@strresult{\detokenize\expandafter{#1}}%
% \end{macrocode}
% The math expression may includes spaces between tokens,
-% but \brand{MathJax} does not want a space between \cs{begin} or \cs{end}
+% but \MathJax\ does not want a space between \cs{begin} or \cs{end}
% and the following brace.
% This space is removed here.
% ^^A *88*
@@ -25538,10 +25681,10 @@ end -- not --version
% \end{macro}
-% \subsection{Customizing \brand{MathJax}}
+% \subsection{Customizing \MathJax}
% \begin{macro}{\LWR@customizedMathJax}
-% Additional \brand{MathJax} definitions to be added to the start of each \HTML\ page.
+% Additional \MathJax\ definitions to be added to the start of each \HTML\ page.
% \changes{v0.52}{2018/03/31}{Added.}
% \begin{macrocode}
\newcommand*{\LWR@customizedMathJax}{}
@@ -25627,24 +25770,24 @@ end -- not --version
% Default customizations:
% \margintag{defaults}
%
-% In the \brand{MathJax} code, footnotes are only referenced.
+% In the \MathJax\ code, footnotes are only referenced.
% For equations, they are also generated
% in the \HTML\ when the \LaTeX\ math is generated inside the \HTML\ comment.
% For other math environments, the \cs{footnotemark} \Slash \cs{footnotetext}
% method must be used. See \cref{sec:limitsfootnotes} regarding \cs{footnotemark}.
% \watchout[\cs{footnotemark}]
%
-% \changes{v0.51}{2018/03/18}{\brand{MathJax}: Nullifies \cs{ensuremath}.}
-% \changes{v0.57}{2018/05/24}{\brand{MathJax}: Supports \cs{footnote}, \cs{footnotemark}.}
-% \changes{v0.79}{2020/01/24}{\brand{MathJax}: Additional macros.}
-% \changes{v0.893}{2020/10/14}{\brand{MathJax}: Added \cs{mathnormal}.}
-% \changes{v0.894}{2020/12/22}{\brand{MathJax}: Added \cs{arabic}, \cs{number}, \cs{noalign}.}
+% \changes{v0.51}{2018/03/18}{\MathJax: Nullifies \cs{ensuremath}.}
+% \changes{v0.57}{2018/05/24}{\MathJax: Supports \cs{footnote}, \cs{footnotemark}.}
+% \changes{v0.79}{2020/01/24}{\MathJax: Additional macros.}
+% \changes{v0.893}{2020/10/14}{\MathJax: Added \cs{mathnormal}.}
+% \changes{v0.894}{2020/12/22}{\MathJax: Added \cs{arabic}, \cs{number}, \cs{noalign}.}
%
% For footnotes, \cs{footnotename} is used in most cases, however
% for \env{equation} the footnote is picked up from \LaTeX in \cs{LWR@doendequation}.
%
-% First, \cs{footnotename} for \brand{MathJax} is copied from \LaTeX.
-% \changes{v0.82}{2020/03/09}{\brand{MathJax}: Improved footnotes.}
+% First, \cs{footnotename} for \MathJax\ is copied from \LaTeX.
+% \changes{v0.82}{2020/03/09}{\MathJax: Improved footnotes.}
% \begin{macrocode}
\providecommand{\footnotename}{footnote}
@@ -25672,7 +25815,7 @@ end -- not --version
% \end{macrocode}
%
% \cs{hspace} is modified to accept and ignore a star:
-% \changes{v0.894}{2020/12/21}{\brand{MathJax}: Accept starred \cs{hspace}.}
+% \changes{v0.894}{2020/12/21}{\MathJax: Accept starred \cs{hspace}.}
% \begin{macrocode}
\CustomizeMathJax{\let\LWRorighspace\hspace}
\CustomizeMathJax{\renewcommand{\hspace}{\ifstar\LWRorighspace\LWRorighspace}}
@@ -25700,7 +25843,7 @@ end -- not --version
%
% \cs{protect}, \cs{mathchar}, and \cs{delimiter} are silently discarded; and
% \cs{mathcode} and \cs{delcode} are ignored.
-% \changes{v0.89}{2020/07/27}{mathjax=\brand{MathJax}: Added \cs{protect}, and
+% \changes{v0.89}{2020/07/27}{mathjax=\MathJax: Added \cs{protect}, and
% \cs{mathcode} and related.}
% \begin{macrocode}
\CustomizeMathJax{\newcommand{\protect}{}}
@@ -25712,14 +25855,37 @@ end -- not --version
\CustomizeMathJax{\def\mathcode#1={\mathchar}}
\CustomizeMathJax{\let\delcode\mathcode}
\CustomizeMathJax{\let\delimiter\mathchar}
+% \end{macrocode}
+%
+% Some text symbols missing from \MathJax:
+% \changes{v0.902}{2021/09/10}{mathjax=\MathJax: Added std. intl. symbols.}
+% \begin{macrocode}
+\CustomizeMathJax{\def\oe{\unicode{x0153}}}
+\CustomizeMathJax{\def\OE{\unicode{x0152}}}
+\CustomizeMathJax{\def\ae{\unicode{x00E6}}}
+\CustomizeMathJax{\def\AE{\unicode{x00C6}}}
+\CustomizeMathJax{\def\aa{\unicode{x00E5}}}
+\CustomizeMathJax{\def\AA{\unicode{x00C5}}}
+\CustomizeMathJax{\def\o{\unicode{x00F8}}}
+\CustomizeMathJax{\def\O{\unicode{x00D8}}}
+\CustomizeMathJax{\def\l{\unicode{x0142}}}
+\CustomizeMathJax{\def\L{\unicode{x0141}}}
+\CustomizeMathJax{\def\ss{\unicode{x00DF}}}
+\CustomizeMathJax{\def\SS{\unicode{x1E9E}}}
+\CustomizeMathJax{\def\dag{\unicode{x2020}}}
+\CustomizeMathJax{\def\ddag{\unicode{x2021}}}
+\CustomizeMathJax{\def\P{\unicode{x00B6}}}
+\CustomizeMathJax{\def\copyright{\unicode{x00A9}}}
+\CustomizeMathJax{\def\pounds{\unicode{x00A3}}}
\end{warpMathJax}
+
\begin{warpHTML}% due to warpMathJax
% \end{macrocode}
% \begin{macro}{\LWR@customizeMathJax}
-% Prints \brand{MathJax} commands to the \HTML\ output.
+% Prints \MathJax\ commands to the \HTML\ output.
%
% \changes{v0.79}{2020/01/28}{MathJax: Hide definitions.}
% \begin{macrocode}
@@ -25735,8 +25901,8 @@ end -- not --version
\LWR@stoppars
% \end{macrocode}
%
-% Avoid ligatures while printing \brand{MathJax} customizations:
-% \changes{v0.89}{2020/08/02}{Print \brand{MathJax} customizations with typewriter font.}
+% Avoid ligatures while printing \MathJax\ customizations:
+% \changes{v0.89}{2020/08/02}{Print \MathJax\ customizations with typewriter font.}
% \begin{macrocode}
{
\LWR@print@ttfamily
@@ -26111,7 +26277,7 @@ end -- not --version
% \end{macrocode}
%
-% If using \brand{MathJax}, print the customizations here.
+% If using \MathJax, print the customizations here.
% \begin{macrocode}
\LWR@customizeMathJax
% \end{macrocode}
@@ -27248,7 +27414,7 @@ end -- not --version
\LWR@orignewline
% \end{macrocode}
%
-% Optional \brand{MathJax} support. The \HTML\ tags must be turned off
+% Optional \MathJax\ support. The \HTML\ tags must be turned off
% during the verbatim input, and the paragraph handling which was
% turned on at the end of verbatim input must be immediately turned off
% again.
@@ -27486,7 +27652,7 @@ end -- not --version
\LWR@startpars
% \end{macrocode}
%
-% If using \brand{MathJax},
+% If using \MathJax,
% disable \cs{ensuremath} by printing a nullified
% definition at the start of each file, and add further customizations:
% \changes{v0.51}{2018/03/18}{MathJax: Nullifies \cs{ensuremath}.}
@@ -27586,12 +27752,20 @@ end -- not --version
\LWR@printpendingfootnotes
% \end{macrocode}
%
-% Close the textbody:
+% Close the textbody.
+%
% \changes{v0.65}{2018/12/18}{Improved \CSS\ for page layout.}
% \changes{v0.84}{2020/04/24}{Added prev/next links.}
+%
+% (The \cs{LWR@origtilde} is in case no autopage is required for the label,
+% which would not print anything, and something must be printed before the newline.)
+%
+% \begin{macrocode}
+\label{\BaseJobname-autofile-last}\LWR@origtilde\LWR@orignewline
+% \end{macrocode}
+%
% \changes{v0.896}{2021/03/04}{Added \element{main}.}
% \begin{macrocode}
-\label{\BaseJobname-autofile-last}
\LWR@htmlelementclassend{section}{textbody}
\LWR@htmlelementclassend{main}{bodycontainer}
\LWR@htmlelementclassend{div}{bodyandsidetoc}
@@ -27930,15 +28104,15 @@ end -- not --version
% \changes{v0.39}{2017/09/03}{Removed minipages.}
% \begin{macrocode}
\DeclareDocumentEnvironment{titlepage}{}
-{
-\renewrobustcmd{\affiliation}[1]{\\ \InlineClass{affiliation}{##1}}
-\LWR@printpendingfootnotes
-\LWR@forcenewpage
-\BlockClass{titlepage}
+{%
+ \renewrobustcmd{\affiliation}[1]{\\ \InlineClass{affiliation}{##1}}%
+ \LWR@printpendingfootnotes
+ \LWR@forcenewpage
+ \BlockClass{titlepage}
}
{
-\endBlockClass
-\LWR@printpendingfootnotes
+ \endBlockClass
+ \LWR@printpendingfootnotes
}
% \end{macrocode}
% \end{environment}
@@ -28184,7 +28358,7 @@ end -- not --version
%
% Print the text:
% \begin{macrocode}
-##1%
+{##1}%
}%
}
% \end{macrocode}
@@ -28225,8 +28399,12 @@ end -- not --version
% Code from the \pkg{titling} package is adapted, simplified, and
% modified for \HTML\ output.
%
+% The name \cs{LWR@maketitle} is used to preserve its definition in case
+% a later package overwrites \cs{maketitle}.
+%
+% \changes{v0.902}{2021/09/15}{Now named \cs{LWR@maketitle} to avoid being overwritten later.}
% \begin{macrocode}
-\renewcommand*{\maketitle}{%
+\newcommand*{\LWR@maketitle}{%
% \end{macrocode}
% An \HTML\ titlepage \element{div} is used for all classes.
% \begin{macrocode}
@@ -28261,6 +28439,8 @@ end -- not --version
\global\let\date\relax
\global\let\and\relax
}
+
+\LetLtxMacro\maketitle\LWR@maketitle
% \end{macrocode}
% \end{macro}
%
@@ -28274,7 +28454,8 @@ end -- not --version
% \changes{v0.39}{2017/09/04}{Native \protect\LaTeX\ version.}
%
% \begin{macrocode}
-\DeclareDocumentCommand{\@maketitle}{}{%
+\providecommand*{\@maketitle}{}
+\renewrobustcmd{\@maketitle}{%
\LWR@stoppars%
\LWR@htmltag{\LWR@tagtitle}%
\@title%
@@ -28729,7 +28910,7 @@ end -- not --version
%
% Create a new |pre| of the given class.
% The tags may temporarily be turned off for internal use, such
-% as loading the \brand{MathJax} script.
+% as loading the \MathJax\ script.
% \begin{macrocode}
\ifbool{LWR@verbtags}{%
\LWR@htmltag{pre class=\textquotedbl#2\textquotedbl%
@@ -29182,11 +29363,11 @@ end -- not --version
% \changes{v0.44}{2017/11/15}{Added \env{list} and \env{trivlist}.}
% \begin{macrocode}
\newcommand*{\LWR@listitem}{%
-\LWR@stoppars%
-\LWR@startnewdepth{listitem}%
-\LWR@htmltag{li}%
-\LWR@startpars%
-\LWR@origitem%
+ \LWR@stoppars%
+ \LWR@startnewdepth{listitem}%
+ \LWR@htmltag{li}%
+ \LWR@startpars%
+ \LWR@origitem%
}
% \end{macrocode}
% \end{macro}
@@ -29197,12 +29378,12 @@ end -- not --version
% Problems are caused when these are nullified all the time.
% \begin{macrocode}
\newcommand*{\LWR@nulllistfills}{%
-\renewcommand*{\hss}{}%
-\renewcommand*{\llap}[1]{##1}%
-\renewcommand*{\rlap}[1]{##1}%
-\renewcommand*{\hfil}{}%
-\renewcommand*{\hfilneg}{}%
-\renewcommand*{\hfill}{}%
+ \renewcommand*{\hss}{}%
+ \renewcommand*{\llap}[1]{##1}%
+ \renewcommand*{\rlap}[1]{##1}%
+ \renewcommand*{\hfil}{}%
+ \renewcommand*{\hfilneg}{}%
+ \renewcommand*{\hfill}{}%
}
% \end{macrocode}
% \end{macro}
@@ -29211,31 +29392,31 @@ end -- not --version
% \changes{v0.44}{2017/11/15}{Added \env{list} and \env{trivlist}.}
% \begin{macrocode}
\newcommand*{\LWR@liststart}{%
-\LWR@traceinfo{LWR@liststart}%
-\LWR@stoppars%
-\LWR@pushoneclose{list}%
-\LWR@htmltag{\LWR@printopenlist}\LWR@orignewline%
-\LWR@startpars%
-\setlength{\topsep}{0pt}%
-\setlength{\partopsep}{0pt}%
-\setlength{\itemsep}{0pt}%
-\setlength{\parsep}{0pt}%
-\setlength{\leftmargin}{0pt}%
-\setlength{\rightmargin}{0pt}%
-\setlength{\listparindent}{0pt}%
-\setlength{\itemindent}{0pt}%
-\setlength{\labelsep}{1em}%
-\LWR@nulllistfills%
+ \LWR@traceinfo{LWR@liststart}%
+ \LWR@stoppars%
+ \LWR@pushoneclose{list}%
+ \LWR@htmltag{\LWR@printopenlist}\LWR@orignewline%
+ \LWR@startpars%
+ \setlength{\topsep}{0pt}%
+ \setlength{\partopsep}{0pt}%
+ \setlength{\itemsep}{0pt}%
+ \setlength{\parsep}{0pt}%
+ \setlength{\leftmargin}{0pt}%
+ \setlength{\rightmargin}{0pt}%
+ \setlength{\listparindent}{0pt}%
+ \setlength{\itemindent}{0pt}%
+ \setlength{\labelsep}{1em}%
+ \LWR@nulllistfills%
}
% \end{macrocode}
%
% \changes{v0.46}{2018/01/21}{Fix: Stack unnesting.}
% \begin{macrocode}
\newcommand*{\LWR@listend}{%
-\LWR@traceinfo{LWR@listend}%
-\LWR@stoppars%
-\LWR@closeprevious{list}%
-\LWR@startpars%
+ \LWR@traceinfo{LWR@listend}%
+ \LWR@stoppars%
+ \LWR@closeprevious{list}%
+ \LWR@startpars%
}
% \end{macrocode}
% \end{environment}
@@ -29247,15 +29428,17 @@ end -- not --version
%
% Handles \cs{item} inside an itemize or enumerate.
%
+% The optional argument is passed to \cs{LWR@origitem}.
+%
% See \cs{LWR@openparagraph} where extra \cs{hspace} is used to
% leave room for the label while inside a list during paragraph construction.
% \begin{macrocode}
\newcommand*{\LWR@itemizeitem}{%
-\LWR@stoppars%
-\LWR@startnewdepth{listitem}%
-\LWR@htmltag{li}%
-\LWR@startpars%
-\LWR@origitem%
+ \LWR@stoppars%
+ \LWR@startnewdepth{listitem}%
+ \LWR@htmltag{li}%
+ \LWR@startpars%
+ \LWR@origitem%
}
% \end{macrocode}
% \end{macro}
@@ -29265,12 +29448,12 @@ end -- not --version
% \changes{v0.895}{2021/01/14}{Improved \HTML\ quotes.}
% \begin{macrocode}
\newcommand*{\LWR@itemizestart}{%
-\renewcommand*{\LWR@printcloselist}{\LWR@printcloseitemize}
-\renewcommand*{\LWR@printopenlist}{%
- ul style=\textquotedbl\LWR@print@mbox{list-style-type:none}\textquotedbl{}%
-}
-\let\item\LWR@itemizeitem%
-\LWR@nulllistfills%
+ \renewcommand*{\LWR@printcloselist}{\LWR@printcloseitemize}%
+ \renewcommand*{\LWR@printopenlist}{%
+ ul style=\textquotedbl\LWR@print@mbox{list-style-type:none}\textquotedbl{}%
+ }%
+ \LetLtxMacro\item\LWR@itemizeitem%
+ \LWR@nulllistfills%
}
% \end{macrocode}
% \end{environment}
@@ -29286,12 +29469,12 @@ end -- not --version
% \changes{v0.895}{2021/01/14}{Improved \HTML\ quotes.}
% \begin{macrocode}
\newcommand*{\LWR@enumeratestart}{%
-\renewcommand*{\LWR@printcloselist}{\LWR@printcloseitemize}
-\renewcommand*{\LWR@printopenlist}{%
- ul style=\textquotedbl\LWR@print@mbox{list-style-type:none}\textquotedbl{}%
-}
-\let\item\LWR@itemizeitem%
-\LWR@nulllistfills%
+ \renewcommand*{\LWR@printcloselist}{\LWR@printcloseitemize}%
+ \renewcommand*{\LWR@printopenlist}{%
+ ul style=\textquotedbl\LWR@print@mbox{list-style-type:none}\textquotedbl{}%
+ }%
+ \LetLtxMacro\item\LWR@itemizeitem%
+ \LWR@nulllistfills%
}
% \end{macrocode}
% \end{environment}
@@ -29302,29 +29485,28 @@ end -- not --version
% \begin{macro}{\LWR@descitem} \oarg{label}
% Handles an \cs{item} inside a description.
% \begin{macrocode}
-\newcommand*{\LWR@descitem}[1][]%
-{%
-\LWR@stoppars%
-\LWR@setlatestname{#1}%
-\LWR@startnewdepth{descitem}%
+\newcommand*{\LWR@descitem}[1][]{%
+ \LWR@stoppars%
+ \LWR@setlatestname{#1}%
+ \LWR@startnewdepth{descitem}%
% \end{macrocode}
% While creating the label, encase it inside tags and disable \cs{hspace},
% which is used by the standard classes to add space to the labels.
% \changes{v0.73}{2019/06/23}{Fix: \HTML\ tags.}
% \begin{macrocode}
-\begingroup%
-\let\LWR@orig@desc@makelabel\makelabel
-\renewcommand*{\makelabel}[1]{%
- \LWR@htmltag{dt}%
- \LWR@orig@desc@makelabel{#1}%
- \LWR@htmltag{/dt}%
-}
-\LWR@select@html@nohspace%
-\LWR@origitem[#1]%
-\endgroup%
-\LWR@orignewline%
-\LWR@htmltag{dd}%
-\LWR@startpars%
+ \begingroup%
+ \let\LWR@orig@desc@makelabel\makelabel
+ \renewcommand*{\makelabel}[1]{%
+ \LWR@htmltag{dt}%
+ \LWR@orig@desc@makelabel{#1}%
+ \LWR@htmltag{/dt}%
+ }
+ \LWR@select@html@nohspace%
+ \LWR@origitem[#1]%
+ \endgroup%
+ \LWR@orignewline%
+ \LWR@htmltag{dd}%
+ \LWR@startpars%
}
% \end{macrocode}
% \end{macro}
@@ -29333,52 +29515,13 @@ end -- not --version
%
% Footnotes are modified to correctly parse optional arguments.
% \changes{v0.896}{2021/03/14}{Fix: Footnotes inside \env{description} label.}
+% \changes{v0.902}{2021/09/24}{Improved footnotes.}
% \begin{macrocode}
\newcommand*{\LWR@descriptionstart}{%
\renewcommand*{\LWR@printcloselist}{\LWR@printclosedescription}
\renewcommand*{\LWR@printopenlist}{dl}
- \let\item\LWR@descitem%
+ \LetLtxMacro\item\LWR@descitem%
\LWR@nulllistfills%
-% \end{macrocode}
-%
-% Footnotes are redefined to process optional arguments inside the \env{description}
-% label.
-% A \cs{footnote} is dropped, as it is in print mode.
-% Using the optional arguments does not work in print mode,
-% but for some reason they must be accepted as done here to work correctly
-% even without the optional arguments.
-% \begin{macrocode}
- \renewcommand{\footnote}[2][]{%
- \ifblank{##1}%
- {%
- \stepcounter\@mpfn
- \protected@xdef\@thefnmark{\thempfn}%
- \@footnotemark%\@footnotetext
- }%
- {%
- \begingroup
- \csname c@\@mpfn\endcsname ##1\relax
- \unrestored@protected@xdef\@thefnmark{\thempfn}%
- \endgroup
- \@footnotemark%\@footnotetext
- }%
- }%
- %
- \renewcommand{\footnotemark}[1][]{%
- \ifblank{##1}%
- {%
- \stepcounter{footnote}%
- \protected@xdef\@thefnmark{\thefootnote}%
- \@footnotemark%
- }%
- {%
- \begingroup%
- \c@footnote ##1\relax%
- \unrestored@protected@xdef\@thefnmark{\thefootnote}%
- \endgroup%
- \@footnotemark%
- }%
- }%
}
% \end{macrocode}
% \end{environment}
@@ -33875,9 +34018,14 @@ end -- not --version
% \begin{macro}{\LWR@nameref} \marg{label}
% Returns the section name for this label:
% \changes{v0.66}{2019/01/27}{No longer use \pkg{zref}.}
+% \changes{v0.902}{2021/09/24}{Disable footnotes in \cs{nameref}.}
% \begin{macrocode}
\newcommand*{\LWR@nameref}[1]{%
+ \begingroup%
+ \renewcommand{\footnote}[2][]{}%
+ \renewcommand{\footnotemark}[1][]{}%
\expandafter\LWR@setref\csname r@#1@lwarp\endcsname\LWR@firstoffive{#1}%
+ \endgroup%
}
% \end{macrocode}
% \end{macro}
@@ -34269,8 +34417,8 @@ end -- not --version
% \end{macro}
%
%
-% For \brand{MathJax}:
-% \changes{v0.88}{2020/07/05}{Added \brand{MathJax}.}
+% For \MathJax:
+% \changes{v0.88}{2020/07/05}{Added \MathJax.}
% \begin{macrocode}
\CustomizeMathJax{\let\LWRref\ref}
\CustomizeMathJax{\renewcommand{\ref}{\ifstar\LWRref\LWRref}}
@@ -35271,7 +35419,6 @@ end -- not --version
% \begin{macrocode}
\newcommand*{\LWR@myshorttoc}[1]{%
\LWR@traceinfo{LWR@myshorttoc: #1}%
- \LWR@ensuredoingapar%
% \end{macrocode}
% Only if the file exists:
% \begin{macrocode}
@@ -35867,9 +36014,9 @@ end -- not --version
\renewenvironment*{theindex}{%
\LWR@indexsection{\indexname}%
- \let\item\LWR@indexitem%
- \let\subitem\LWR@indexsubitem%
- \let\subsubitem\LWR@indexsubsubitem%
+ \LetLtxMacro\item\LWR@indexitem%
+ \LetLtxMacro\subitem\LWR@indexsubitem%
+ \LetLtxMacro\subsubitem\LWR@indexsubsubitem%
}{}
}% AtBeginDocument
@@ -36492,7 +36639,7 @@ end -- not --version
% \begin{macro}{\LWR@restoreMathJaxformatting}
% A few macros (ref: \pkg{tcolorbox}) must be treated
% separately while printing the \HTML\
-% comment for a \brand{MathJax} expression.
+% comment for a \MathJax\ expression.
% These are set here, to which other functions may be appended.
% \changes{v0.88}{2020/06/25}{Added.}
% \begin{macrocode}
@@ -36609,12 +36756,17 @@ end -- not --version
%
\LWR@restoreorigaccents%
\LWR@restoreoriglists%
-%
+% \end{macrocode}
+% \changes{v0.902}{2021/09/24}{Improved minipage footnotes.}%
+% \begin{macrocode}
+ \let\@mpfootnotetext\LWR@orig@mpfootnotetext%
+% \end{macrocode}
+% \begin{macrocode}
\LWR@hook@processingtags%
% \end{macrocode}
%
-% To enable \brand{MathJax}-specific nullification, used for \pkg{tcolorbox}:
-% \changes{v0.88}{2020/06/25}{Support for \brand{MathJax}.}
+% To enable \MathJax-specific nullification, used for \pkg{tcolorbox}:
+% \changes{v0.88}{2020/06/25}{Support for \MathJax.}
% \begin{macrocode}
\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }%
{\LWR@restoreMathJaxformatting}%
@@ -36656,7 +36808,7 @@ end -- not --version
% since they must be expanded to their nullified versions.
%
% \changes{v0.34}{2017/08/05}{Improved font control.}
-% \changes{v0.36}{2017/08/15}{Fix: Filenames while using \brand{MathJax}.}
+% \changes{v0.36}{2017/08/15}{Fix: Filenames while using \MathJax.}
% \changes{v0.40}{2017/09/21}{Fix: Long arguments for expandable command.}
% \changes{v0.43}{2017/10/31}{Fix: Nullify dollar inside filesnames.}
% \changes{v0.48}{2018/02/04}{Fix: \cs{newline} in title.}
@@ -36915,7 +37067,7 @@ end -- not --version
% \begin{macro}{\LWR@ThisAltText} The \HTML\ \attribute{alt} tag for
% the next image.
% Cleared after use, and also after each \env{lateximage},
-% \cs{LWR@subsingledollar}, and each use of \brand{MathJax}.
+% \cs{LWR@subsingledollar}, and each use of \MathJax.
%
% \changes{v0.74}{2019/08/20}{Add \cs{ThisAltText}.}
% \begin{macrocode}
@@ -37047,11 +37199,11 @@ end -- not --version
% \DescribeMacro{\$}
% Plain dollar signs appearing in the \HTML\ output may be interpreted
-% by \brand{MathJax} to be math shifts.
+% by \MathJax\ to be math shifts.
% For a plain text dollar |\$|, use an \HTML\ entity to avoid
-% it being interpreted by \brand{MathJax}, unless are inside a lateximage,
-% in which case it will not be seen by \brand{MathJax}.
-% \changes{v0.19}{2016/06/08}{Avoids \brand{MathJax}.}
+% it being interpreted by \MathJax, unless are inside a lateximage,
+% in which case it will not be seen by \MathJax.
+% \changes{v0.19}{2016/06/08}{Avoids \MathJax.}
% \changes{v0.26}{2017/03/30}{Dollar span avoided in a lateximage.}
% \changes{v0.51}{2018/03/23}{Named \HTML\ entity used for text dollar.}
% \changes{v0.73}{2019/06/24}{Numbered \HTML\ entity used for text dollar.}
@@ -37178,17 +37330,17 @@ end -- not --version
%
% Measures the size of the image of the math expression.
%
-% (In some circumstances \SVG\ math is used even if \brand{MathJax} is
+% (In some circumstances \SVG\ math is used even if \MathJax\ is
% preferred.)
%
% \begin{description}
% \item [\SVG\ math:] \cs{LWR@origensuredmath} is part of argument \#4.
% \item [\SVG\ math \cs{ensuremath}:] \cs{LWR@origensuredmath} is part of argument \#4.
% \item [\SVG\ dynamic math:] \cs{LWR@origensuredmath} is part of argument \#4.
-% \item [\brand{MathJax}:] Argument \#4 is the contents of the math expression
+% \item [\MathJax:] Argument \#4 is the contents of the math expression
% without \cs{LWR@origensuredmath}. This case is handled above.
-% \item [\brand{MathJax} \cs{ensuremath}:] \cs{LWR@origensuredmath} is part of argument \#4.
-% \item [\brand{MathJax} dynamic math:] Argument \#4 is the contents of the math expression
+% \item [\MathJax\ \cs{ensuremath}:] \cs{LWR@origensuredmath} is part of argument \#4.
+% \item [\MathJax\ dynamic math:] Argument \#4 is the contents of the math expression
% without \cs{LWR@origensuredmath}, so \cs{LWR@origensuredmath} is added below.\
% \item [\cs{ifmmode}:] Included ``just in case''.
% \end{description}
@@ -37303,7 +37455,7 @@ end -- not --version
% Uses \SVG\ math. The image is measured and ajusted to the baseline
% of the \HTML\ output, and placed inside a \env{lateximage}.
%
-% (In some circumstances \SVG\ math is used even if \brand{MathJax} is
+% (In some circumstances \SVG\ math is used even if \MathJax\ is
% preferred.)
%
% Factored from \cs{LWR@subsingledollar}.
@@ -37468,26 +37620,26 @@ end -- not --version
% \marg{4: math expression}
%
% For inline math.
-% Uses \brand{MathJax}, or for \SVG\ math the image is measured and ajusted to the baseline
+% Uses \MathJax, or for \SVG\ math the image is measured and ajusted to the baseline
% of the \HTML\ output, and placed inside a \env{lateximage}.
%
% \begin{description}
% \item [\SVG\ math:] \cs{LWR@origensuredmath} is part of argument \#4.
% \item [\SVG\ math \cs{ensuremath}:] \cs{LWR@origensuredmath} is part of argument \#4.
% \item [\SVG\ dynamic math:] \cs{LWR@origensuredmath} is part of argument \#4.
-% \item [\brand{MathJax}:] Argument \#4 is the contents of the math expression
+% \item [\MathJax:] Argument \#4 is the contents of the math expression
% without \cs{LWR@origensuredmath}. This case is handled above.
-% \item [\brand{MathJax} \cs{ensuremath}:] \cs{LWR@origensuredmath} is part of argument \#4.
-% \item [\brand{MathJax} dynamic math:] Argument \#4 is the contents of the math expression
+% \item [\MathJax\ \cs{ensuremath}:] \cs{LWR@origensuredmath} is part of argument \#4.
+% \item [\MathJax\ dynamic math:] Argument \#4 is the contents of the math expression
% without \cs{LWR@origensuredmath}, so \cs{LWR@origensuredmath} is added below.\
% \end{description}
%
% \describehashing
%
-% \changes{v0.19}{2016/05/25}{\brand{MathJax} support.}
+% \changes{v0.19}{2016/05/25}{\MathJax\ support.}
% \changes{v0.42}{2017/10/26}{If \progcode{FormatWP} print LaTeX expression.}
% \changes{v0.47}{2018/01/24}{Added \SVG\ math image baseline adjust and em sizing.}
-% \changes{v0.50}{2018/02/23}{Fix: Use \env{lateximage} even if \brand{MathJax}.}
+% \changes{v0.50}{2018/02/23}{Fix: Use \env{lateximage} even if \MathJax.}
% \changes{v0.50}{2018/02/24}{Improved \SVG\ math \attribute{alt} tags.}
% \begin{macrocode}
\newlength{\LWR@singledollarwidth}
@@ -37513,14 +37665,14 @@ end -- not --version
% \begin{macrocode}
\LWR@applyxfakebold%
% \end{macrocode}
-% \brand{MathJax} cannot parse the often complicated \TeX\ expressions which
+% \MathJax\ cannot parse the often complicated \TeX\ expressions which
% appear in the various uses of \cs{ensuredmath}.
% \cs{ensuremath} forces the \attribute{alt} tag to ``|(math image)|'', as
% translated according to \cs{MathImageAltText}.
-% If this is the case, force the use of a \env{lateximage} even if \brand{MathJax}.
+% If this is the case, force the use of a \env{lateximage} even if \MathJax.
% Likewise for \pkg{siunitx} if |parse-numbers=false|.
%
-% If \brand{MathJax}, or if formatting math for a word processor, and not \cs{ensuredmath},
+% If \MathJax, or if formatting math for a word processor, and not \cs{ensuredmath},
% and not a dynamic math expression, print the math expression:
% \changes{v0.51}{2018/03/11}{Fix: \cs{ensuredmath} inside \SVG\ image.}
% \changes{v0.57}{2018/05/23}{Fix: Dynamic inline math expressions.}
@@ -37538,8 +37690,8 @@ end -- not --version
( not bool{LWR@dynamicmath} )
}%
% \end{macrocode}
-% For \brand{MathJax}, print the math between |\(| and |\)|:
-% \changes{v0.89}{2020/08/01}{TT font for \brand{MathJax}.}
+% For \MathJax, print the math between |\(| and |\)|:
+% \changes{v0.89}{2020/08/01}{TT font for \MathJax.}
% \begin{macrocode}
{%
\LWR@traceinfo{LWR@subsingledollar: Mathjax}%
@@ -37595,7 +37747,7 @@ end -- not --version
% \DescribeObject{\$}
% \DescribeObject{\$\$}
% Redefine the dollar sign to place math inside a \env{lateximage},
-% or use \brand{MathJax}:
+% or use \MathJax:
% \begin{macrocode}
\begingroup
\catcode`\$=\active%
@@ -37612,20 +37764,20 @@ end -- not --version
%
% \changes{v0.42}{2017/10/16}{Improved \cs{ensuremath}.}
%
-% Redefine the double dollar sign to place math inside a \env{lateximage}, or use \brand{MathJax}:
+% Redefine the double dollar sign to place math inside a \env{lateximage}, or use \MathJax:
% \begin{macrocode}
\protected\gdef\LWR@doubledollar$#1$${%
% \end{macrocode}
-% If \brand{MathJax} or formatting for a word processor, print the \LaTeX\ expression:
-% \changes{v0.19}{2016/05/25}{\brand{MathJax} support.}
+% If \MathJax\ or formatting for a word processor, print the \LaTeX\ expression:
+% \changes{v0.19}{2016/05/25}{\MathJax\ support.}
% \changes{v0.42}{2017/10/26}{If \progcode{FormatWP} print LaTeX expression.}
% \begin{macrocode}
\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }%
% \end{macrocode}
-% For \brand{MathJax}, print the math between |\[| and |\]|:
+% For \MathJax, print the math between |\[| and |\]|:
% \changes{v0.42}{2017/10/16}{Improved line spacing with mathjax.}
-% \changes{v0.89}{2020/08/01}{TT font for \brand{MathJax}.}
-% \changes{v0.896}{2021/04/07}{Fix: Displaymath notes with \brand{MathJax}.}
+% \changes{v0.89}{2020/08/01}{TT font for \MathJax.}
+% \changes{v0.896}{2021/04/07}{Fix: Displaymath notes with \MathJax.}
% \begin{macrocode}
{
@@ -37695,7 +37847,7 @@ end -- not --version
%
%
% \begin{macro}{\LWR@singledollar} \marg{alt text} \marg{math expression}
-% \changes{v0.89}{2020/08/01}{TT font for \brand{MathJax}.}
+% \changes{v0.89}{2020/08/01}{TT font for \MathJax.}
% \begin{macrocode}
\protected\gdef\LWR@singledollar#1${%
\ifbool{mathjax}{%
@@ -37751,14 +37903,14 @@ end -- not --version
% \begin{macro}{\@ensuredmath} \marg{expression}
%
-% If \brand{MathJax}, a \env{lateximage} is used, since \cs{ensuremath} is
-% often used for complex \TeX\ expressions which \brand{MathJax} may not render.
+% If \MathJax, a \env{lateximage} is used, since \cs{ensuremath} is
+% often used for complex \TeX\ expressions which \MathJax\ may not render.
% If \SVG\ math, a hashed file is used with a simple \attribute{alt} tag, but
% additional hashing provided by the contents.
%
% \changes{v0.51}{2018/02/24}{Hashes \cs{ensuremath}.}
% \changes{v0.42}{2017/10/16}{Improved \cs{ensuremath}.}
-% \changes{v0.50}{2018/02/23}{Fix: Use \env{lateximage} even if \brand{MathJax}.}
+% \changes{v0.50}{2018/02/23}{Fix: Use \env{lateximage} even if \MathJax.}
% \changes{v0.50}{2018/02/24}{Improved \SVG\ math \attribute{alt} tags.}
% \changes{v0.52}{2018/03/25}{Improved hashing expansion.}
% \begin{macrocode}
@@ -37853,7 +38005,7 @@ end -- not --version
%
% \begin{environment}{LWR@displaymathother}
% A version of \env{displaymath} which can handle complicated objects,
-% but does not supply \brand{MathJax} or \HTML\ \attribute{alt} tags.
+% but does not supply \MathJax\ or \HTML\ \attribute{alt} tags.
% \changes{v0.51}{2018/03/21}{Processing for complicated display math.}
% \changes{v0.74}{2019/08/07}{Uses \cs{MathImageAltText}.}
% \changes{v0.896}{2021/03/05}{Added \ARIA\ role.}
@@ -37877,7 +38029,7 @@ end -- not --version
%
% \begin{environment}{LWR@equationother}
% A version of \env{displaymath} which can handle complicated objects,
-% but does not supply \brand{MathJax} or \HTML\ \attribute{alt} tags.
+% but does not supply \MathJax\ or \HTML\ \attribute{alt} tags.
% \changes{v0.51}{2018/03/21}{Processing for complicated display math.}
% \changes{v0.74}{2019/08/07}{Uses \cs{MathImageAltText}.}
% \changes{v0.896}{2021/03/05}{Added \ARIA\ role.}
@@ -37899,8 +38051,8 @@ end -- not --version
% \end{environment}
-% \subsection{\brand{MathJax} support}
-% \changes{v0.19}{2016/05/25}{\brand{MathJax} support added.}
+% \subsection{\MathJax\ support}
+% \changes{v0.19}{2016/05/25}{\MathJax\ support added.}
%
% \DescribeCounter{LWR@nextequation} Used to add one to compute the next equation number.
% \begin{macrocode}
@@ -37908,7 +38060,7 @@ end -- not --version
% \end{macrocode}
%
%
-% Determing how to set \brand{MathJax} section and equation numbers.
+% Determing how to set \MathJax\ section and equation numbers.
% Adjusts for various kinds of \cs{theequation} to determine
% \cs{theMathJaxsection} and \cs{theMathJaxequation}.
%
@@ -37954,16 +38106,16 @@ end -- not --version
%
%
%
-% \begin{macro}{\LWR@syncmathjax} Sets the \brand{MathJax} equation format
+% \begin{macro}{\LWR@syncmathjax} Sets the \MathJax\ equation format
% and number for the following equations.
%
-% These \brand{MathJax} commands are printed inside ``\cs{(}'' and ``\cs{)}'' characters.
+% These \MathJax\ commands are printed inside ``\cs{(}'' and ``\cs{)}'' characters.
% They are printed to \HTML\ output, not interpreted by \LaTeX.
% \begin{macrocode}
\newcommand*{\LWR@syncmathjax}{%
% \end{macrocode}
%
-% Tell \brand{MathJax} that the next equation number is
+% Tell \MathJax\ that the next equation number is
% the current \LaTeX{} equation number.
%
% Before each equation, \pkg{lwarp} inserts into the \HTML\ code:
@@ -37973,13 +38125,13 @@ end -- not --version
% \begin{description}
% \item [|subequations?|] is |0| usually, |1| if inside \pkg{amsmath} \env{subequations}.
% \item [|section|] is a string printed as-is, or empty.
-% \item [|number|] is auto-incremented by \brand{MathJax} between equations.
+% \item [|number|] is auto-incremented by \MathJax\ between equations.
% \end{description}
%
-% Place the \brand{MathJax} command inside ``\cs{(}'' and ``\cs{)}'' characters,
+% Place the \MathJax\ command inside ``\cs{(}'' and ``\cs{)}'' characters,
% to be printed to \HTML, not interpreted by \LaTeX.
% \changes{v0.82}{2020/03/09}{Removed \element{par} tags.}
-% \changes{v0.86}{2020/05/08}{Improved \brand{MathJax} equation numbers.}
+% \changes{v0.86}{2020/05/08}{Improved \MathJax\ equation numbers.}
% \begin{macrocode}
\LWR@stoppars%
\InlineClass{hidden}{
@@ -38055,7 +38207,7 @@ end -- not --version
% \begin{macro}{\LWR@addmathjax} \marg{environment name} \marg{contents}
%
% Given the name of a math environment and its contents,
-% create a \brand{MathJax} instance.
+% create a \MathJax\ instance.
% The contents are printed to \HTML\ output, not interpreted by \LaTeX.
% \begin{macrocode}
\NewDocumentCommand{\LWR@addmathjax}{m +m}{%
@@ -38063,9 +38215,9 @@ end -- not --version
% \begin{macrocode}
\LWR@origtilde\LWR@orignewline
% \end{macrocode}
-% Enclose the \brand{MathJax} environment inside printed ``\cs{(}'' and ``\cs{)}'' characters.
+% Enclose the \MathJax\ environment inside printed ``\cs{(}'' and ``\cs{)}'' characters.
% Print the environment name and contents, sanitizing for \HTML\ special characters.
-% \changes{v0.89}{2020/08/01}{TT font for \brand{MathJax}.}
+% \changes{v0.89}{2020/08/01}{TT font for \MathJax.}
% \begin{macrocode}
{%
\LWR@print@ttfamily%
@@ -38074,7 +38226,7 @@ end -- not --version
%
% The \env{alignat} environment takes a mandatory argument, which must
% be replicated here.
-% \changes{v0.900}{2021/07/11}{Fix: \env{alignat} with \brand{MathJax}.}
+% \changes{v0.900}{2021/07/11}{Fix: \env{alignat} with \MathJax.}
% \begin{macrocode}
\ifboolexpr{
test {\ifstrequal{#1}{alignat}} or
@@ -38115,7 +38267,7 @@ end -- not --version
%
% \begin{macro}{\LWR@doequation} \marg{env contents} \marg{env name}
%
-% \changes{v0.19}{2016/05/25}{\brand{MathJax} support.}
+% \changes{v0.19}{2016/05/25}{\MathJax\ support.}
% \changes{v0.52}{2018/03/28}{Fix: \env{equation*} with \env{split}.}
%
% For \SVG\ math output,
@@ -38124,11 +38276,11 @@ end -- not --version
% containing a detokenized copy of the \LaTeX\ source for
% the math.
%
-% For \brand{MathJax} output, the contents are typeset in an
+% For \MathJax\ output, the contents are typeset in an
% original \env{equation} environment placed inside a \HTML\
% comment, with special processing for \cs{label}s.
% The contents are also printed to the \HTML\ output
-% for processing by the \brand{MathJax} script.
+% for processing by the \MathJax\ script.
% \begin{macrocode}
\newcommand*{\LWR@doequation}[2]{%
@@ -38138,11 +38290,11 @@ end -- not --version
% \begin{macrocode}
\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }%
% \end{macrocode}
-% \brand{MathJax} output:
+% \MathJax\ output:
% \begin{macrocode}
{
% \end{macrocode}
-% Print commands to syncronize \brand{MathJax}'s equation number and format
+% Print commands to syncronize \MathJax's equation number and format
% to the current \LaTeX\ chapter/section and equation number:
% \begin{macrocode}
\LWR@syncmathjax%
@@ -38209,11 +38361,11 @@ end -- not --version
}
% \end{macrocode}
%
-% After the environment, if \brand{MathJax}, print the math to the \HTML\ output
-% for \brand{MathJax} processing.
+% After the environment, if \MathJax, print the math to the \HTML\ output
+% for \MathJax\ processing.
% If a footnote is used, sync the \ctr{footnote} counter before,
% then unsync after for non-equation environments, as defined next.
-% \changes{v0.82}{2020/03/09}{\brand{MathJax}: Improved footnotes.}
+% \changes{v0.82}{2020/03/09}{\MathJax: Improved footnotes.}
% \begin{macrocode}
\newcommand*{\LWR@doendequation}[1]{%
\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }%
@@ -38238,15 +38390,15 @@ end -- not --version
% The following are used to syncronize footnote marks and related to
-% \brand{MathJax} if |*note*| is used inside the \brand{MathJax} expression.
-% The counter is read from \LaTeX\ then defined into \brand{MathJax} for use during
-% the following equation. After the equation, the \brand{MathJax} value is
+% \MathJax\ if |*note*| is used inside the \MathJax\ expression.
+% The counter is read from \LaTeX\ then defined into \MathJax\ for use during
+% the following equation. After the equation, the \MathJax\ value is
% returned to the text from \cs{footnotename}. Other notes may be added by
% appending to \cs{LWR@syncnotenumbers} and \cs{LWR@syncnotenames}.
%
-% \changes{v0.82}{2020/03/09}{\brand{MathJax}: Improved footnotes.}
+% \changes{v0.82}{2020/03/09}{\MathJax: Improved footnotes.}
%
-% \begin{macro}{\LWR@synconenotenumber} \marg{\brand{MathJax} variable} \marg{mark}
+% \begin{macro}{\LWR@synconenotenumber} \marg{\MathJax\ variable} \marg{mark}
% \begin{macrocode}
\newcommand*{\LWR@synconenotenumber}[2]{%
\textbackslash(
@@ -38264,8 +38416,8 @@ end -- not --version
% \end{macro}
-% \begin{macro}{\LWR@synconenotename} \marg{\brand{MathJax} variable} \marg{text}
-% \changes{v0.896}{2021/04/07}{Fix: \brand{MathJax}: Footnote names.}
+% \begin{macro}{\LWR@synconenotename} \marg{\MathJax\ variable} \marg{text}
+% \changes{v0.896}{2021/04/07}{Fix: \MathJax: Footnote names.}
% \begin{macrocode}
\newcommand*{\LWR@synconenotename}[2]{%
\textbackslash(
@@ -38326,7 +38478,7 @@ end -- not --version
% \end{environment}
-% Remember the ``less'' version of \env{equation}, which uses \brand{MathJax}
+% Remember the ``less'' version of \env{equation}, which uses \MathJax
% and \attribute{alt} tags, but does not support complicated contents such as
% some \tikz\ expressions.
% \begin{macrocode}
@@ -38344,7 +38496,7 @@ end -- not --version
% \limitsmathdisplay
%
% \begin{macro}{\displaymathnormal} Use when display math environments have simple
-% math which is to sent to \brand{MathJax} or included in \HTML\ \attribute{alt} tags.
+% math which is to sent to \MathJax\ or included in \HTML\ \attribute{alt} tags.
% \margintag{simple math objects}
% \changes{v0.51}{2018/03/21}{Processing for complicated display math.}
% \begin{macrocode}
@@ -38364,7 +38516,7 @@ end -- not --version
% \begin{macro}{\displaymathother} Use when display math environments have complicated
-% objects which will not work with \brand{MathJax} or should not be
+% objects which will not work with \MathJax\ or should not be
% included in \HTML\ \attribute{alt} tags. \margintag{complicated math objects}
% Complicated contents are more likely to compile correctly.
% \changes{v0.51}{2018/03/21}{Processing for complicated display math.}
@@ -38411,7 +38563,7 @@ end -- not --version
% \subsection{AMS Math environments}
-% \changes{v0.19}{2016/05/25}{\brand{MathJax} support added.}
+% \changes{v0.19}{2016/05/25}{\MathJax\ support added.}
%
% \subsubsection{Support macros}
% \label{sec:amsmathsupport}
@@ -38470,7 +38622,7 @@ end -- not --version
% \subsubsection{Environment patches}
%
-% \changes{v0.19}{2016/05/25}{\brand{MathJax} support added.}
+% \changes{v0.19}{2016/05/25}{\MathJax\ support added.}
% \changes{v0.33}{2017/06/20}{Fix: Incorrectly-inline math environments.}
% \changes{v0.34}{2017/07/29}{Fix: Added the \env{eqnarray} environments.}
%
@@ -38485,9 +38637,9 @@ end -- not --version
% the environment's contents which
% were automatically captured by the \AmS{} environment.
%
-% For \brand{MathJax}: Each environment is synched with \LaTeX's equation numbers,
+% For \MathJax: Each environment is synched with \LaTeX's equation numbers,
% typeset with \LaTeX\ inside an \HTML\ comment, then
-% printed to \HTML\ output for \brand{MathJax} to process.
+% printed to \HTML\ output for \MathJax\ to process.
%
@@ -38520,9 +38672,9 @@ end -- not --version
{%
% \end{macrocode}
%
-% If \brand{MathJax}, the environment contents (the \cs{BODY}) are executed in a
+% If \MathJax, the environment contents (the \cs{BODY}) are executed in a
% \HTML\ comment to trigger the correct equation number increment (if not starred),
-% then are included verbatim in the output for \brand{MathJax} to interpret:
+% then are included verbatim in the output for \MathJax\ to interpret:
% \begin{macrocode}
\LWR@syncmathjax%
\boolfalse{LWR@amsmultline}%
@@ -38539,14 +38691,14 @@ end -- not --version
\LWR@endhideamsmath%
% \end{macrocode}
%
-% Then print the (sanitized) contents to the output for \brand{MathJax} to interpret:
+% Then print the (sanitized) contents to the output for \MathJax\ to interpret:
% \begin{macrocode}
\LWR@addmathjax{eqnarray}{\BODY}%
}%
{% not LWR@numbereqnarray
% \end{macrocode}
%
-% If not numbering equations, just create the contents for \brand{MathJax}:
+% If not numbering equations, just create the contents for \MathJax:
% \begin{macrocode}
\LWR@addmathjax{eqnarray*}{\BODY}%
}% LWR@numbereqnarray
@@ -38980,7 +39132,7 @@ end -- not --version
% containing the \PDF\ page number from \filenm{<jobname>_html.pdf}, where the image
% is located, a boolean indicating whether the image is hashed, and
% the filename of the image.
-% The last line has ``end'' in each field, and is used to detect
+% The last line has ``|end|'' in each field, and is used to detect
% an incomplete compile.
%
%
@@ -39057,7 +39209,7 @@ end -- not --version
% Inside the \env{lateximage}, temporarily prevent underfull \cs{hbox} warnings.
% \changes{v0.898}{2021/05/24}{Reduced underfull \cs{hbox} warnings.}
% \begin{macrocode}
- \hbadness=10000\relax%
+ \hbadness=10000\relax%
% \end{macrocode}
%
% Next file:
@@ -39153,11 +39305,18 @@ end -- not --version
% \changes{v0.79}{2020/01/05}{Improved \cs{linewidth}.}
% \begin{macrocode}
\LWR@traceinfo{lateximage: about to create minipage}%
+ \setcounter{LWR@mpfootnote@store}{\value{mpfootnote}}
\ifdimless{\linewidth}{6in}{%
\LWR@print@minipage{\linewidth}%
}{%
\LWR@print@minipage{6in}%
}%
+% \end{macrocode}
+% \changes{v0.902}{2021/09/24}{Improved footnotes.}
+% \begin{macrocode}
+ \ifnumgreater{\value{LWR@minipage@depth}}{0}%
+ {\setcounter{mpfootnote}{\value{LWR@mpfootnote@store}}}%
+ {}%
\@nameuse{LWR@print@\LateximageFontSizeName}%
% \end{macrocode}
% Temporarily restore formatting to its \PDF\ definitions:
@@ -39166,12 +39325,18 @@ end -- not --version
\LWR@traceinfo{lateximage: about to temporarily restore formatting}%
\LWR@restoreorigformatting%
% \end{macrocode}
-% Use full-page footnotes instead of minipage footnotes.
+% If not inside a \env{minipage},
+% use full-page footnotes instead of minipage footnotes.
% These become \HTML\ footnotes.
+% \changes{v0.902}{2021/09/24}{Improved footnotes.}
% \begin{macrocode}
- \def\@mpfn{footnote}%
- \def\thempfn{\thefootnote}%
- \LetLtxMacro\@footnotetext\LWR@footnotetext%
+ \ifnumgreater{\value{LWR@minipage@depth}}{0}%
+ {}%
+ {%
+ \def\@mpfn{footnote}%
+ \def\thempfn{\thefootnote}%
+ \LetLtxMacro\@footnotetext\LWR@footnotetext%
+ }%
% \end{macrocode}
% Create the |LWRlateximage<number>| label:
% \begin{macrocode}
@@ -39320,14 +39485,12 @@ end -- not --version
% \begin{environment}{lateximage} * \oarg{\element{alt} tag} *
% \oarg{add'l hashing} \oarg{\CSS\ style}
%
-% \env{varwidth} is used to create a box of the natural width of its contents.
+% Ignored in print mode.
%
-% \changes{v0.48}{2018/02/02}{Print mode boxed to natural width.}
-% \changes{v0.74}{2019/08/20}{Added second starred argument.}
+% \changes{v0.902}{2021/09/24}{Removed \pkg{varwidth}.}
% \begin{macrocode}
\NewDocumentEnvironment{lateximage}{s o s o o d()}
- {\begin{varwidth}[b]{\linewidth}}
- {\end{varwidth}}
+ {}{}
% \end{macrocode}
% \end{environment}
@@ -40205,7 +40368,23 @@ end -- not --version
\newbool{LWR@minipagethispar}
\boolfalse{LWR@minipagethispar}
% \end{macrocode}
+
+% \DescribeCounter{LWR@minipage@depth}
+% Used to track whether to change footnote styles
+% in a \env{lateximage} inside an \HTML\ minipage.
+% \changes{v0.902}{2021/09/24}{Improved footnotes.}
+% \begin{macrocode}
+\newcounter{LWR@minipage@depth}
+\setcounter{LWR@minipage@depth}{0}
+% \end{macrocode}
%
+% \DescribeCounter{LWR@mpfootnote@store}
+% Used to maintain minipage footnote number
+% while nesting inside a \env{lateximage}.
+% \begin{macrocode}
+\newcounter{LWR@mpfootnote@store}
+% \end{macrocode}
+
%
% \begin{environment}{minipage} \oarg{vert position} \oarg{height}
% \oarg{inner vert position} \marg{width}
@@ -40352,6 +40531,12 @@ end -- not --version
\let\@footnotetext\@mpfootnotetext%
% \end{macrocode}
%
+% Track depth for \env{lateximage} footnote type:
+% \changes{v0.902}{2021/09/24}{Improved footnotes.}
+% \begin{macrocode}
+\addtocounter{LWR@minipage@depth}{1}%
+% \end{macrocode}
+%
% Resume paragraph tag handling for the contents of the minipage:
% \changes{v0.42}{2017/10/18}{Added boolean \progcode{WPMarkMinipages}.}
% \begin{macrocode}
@@ -40387,6 +40572,14 @@ end -- not --version
\LWR@htmlelementend{div}%
}{}%
+% \end{macrocode}
+%
+% Wrapup:
+% \changes{v0.902}{2021/09/24}{Improved footnotes.}
+% \begin{macrocode}
+\addtocounter{LWR@minipage@depth}{-1}%
+% \end{macrocode}
+% \begin{macrocode}
\LWR@htmldivclassend{minipage}%
\end{LWR@setvirtualpage}%
@@ -41085,8 +41278,17 @@ color:\LWR@origpound\LWR@tempcolor%
% \begin{macro}{\textnormal} \marg{text}
+% \changes{v0.902}{2021/09/28}{Reduce nested spans.}
% \begin{macrocode}
-\DeclareRobustCommand{\LWR@HTML@textnormal}[1]{\textmd{\textrm{\textup{#1}}}}
+\DeclareRobustCommand{\LWR@HTML@textnormal}[1]{%
+% \textmd{\textrm{\textup{#1}}}%
+ \LWR@HTML@mdseries%
+ \LWR@HTML@rmfamily%
+ \LWR@HTML@upshape%
+ \InlineClass(%
+ font-weight:normal; font-family:serif; font-style:normal
+ ){textnormal}{#1}%
+}
\LWR@formatted{textnormal}
% \end{macrocode}
@@ -42865,13 +43067,13 @@ color:\LWR@origpound\LWR@tempcolor%
%
%
%
-% \section{\brand{MathJax} warnings}
+% \section{\MathJax\ warnings}
%
% \begin{macro}{\LWR@mathjaxwarn} \marg{packagename} \marg{More text.}
%
% To be done \cs{AtBeginDocument}.
%
-% \changes{v0.79}{2020/01/18}{Warn if using packages partially supported by \brand{MathJax}.}
+% \changes{v0.79}{2020/01/18}{Warn if using packages partially supported by \MathJax.}
% \begin{macrocode}
\newcommand*{\LWR@mathjaxwarn}[2]{%
\@ifpackageloaded{lwarp-#1}{%
@@ -42896,8 +43098,8 @@ color:\LWR@origpound\LWR@tempcolor%
%
% To be done \cs{AtBeginDocument}.
%
-% \changes{v0.894}{2020/12/22}{Warn if using packages not supported by \brand{MathJax}.}
-% \changes{v0.895}{2021/01/08}{Improved \brand{MathJax} warning.}
+% \changes{v0.894}{2020/12/22}{Warn if using packages not supported by \MathJax.}
+% \changes{v0.895}{2021/01/08}{Improved \MathJax\ warning.}
% \begin{macrocode}
\newcommand*{\LWR@nomathjaxwarn}[2]{%
\@ifpackageloaded{lwarp-#1}{%
@@ -42919,8 +43121,8 @@ color:\LWR@origpound\LWR@tempcolor%
% \end{macrocode}
%
% \begin{macro}{\LWR@forceSVGmessage} \marg{packagename}
-% \changes{v0.894}{2020/12/22}{Improved \brand{MathJax} warnings.}
-% \changes{v0.895}{2021/01/08}{Improved \brand{MathJax} warning.}
+% \changes{v0.894}{2020/12/22}{Improved \MathJax\ warnings.}
+% \changes{v0.895}{2021/01/08}{Improved \MathJax\ warning.}
% \begin{macrocode}
\newcommand*{\LWR@forceSVGmessage}[1]{%
SVG math output may be enabled for select math\MessageBreak
@@ -42941,12 +43143,12 @@ color:\LWR@origpound\LWR@tempcolor%
%
% ^^A *mathjax warnings
%
-% If \brand{MathJax} is being used, issue a warning for certain packages.
-% \changes{v0.894}{2020/12/22}{Improved \brand{MathJax} warnings.}
-% \changes{v0.895}{2021/02/06}{Added \brand{MathJax} warnings for
+% If \MathJax\ is being used, issue a warning for certain packages.
+% \changes{v0.894}{2020/12/22}{Improved \MathJax\ warnings.}
+% \changes{v0.895}{2021/02/06}{Added \MathJax\ warnings for
% \pkg{aligned-overset}, \pkg{autoaligne}, \pkg{boldtensors},
% \pkg{liberitinust1math}, \pkg{tensind}.}
-% \changes{v0.895}{2021/02/06}{Improved \brand{MathJax} warning for \pkg{unicode-math}.}
+% \changes{v0.895}{2021/02/06}{Improved \MathJax\ warning for \pkg{unicode-math}.}
% \begin{macrocode}
\AtBeginDocument{
\ifbool{mathjax}{
@@ -43451,7 +43653,7 @@ color:\LWR@origpound\LWR@tempcolor%
%
% \DescribePackage{accents}
% \pkg{accents} is used as-is for \SVG\ math, and is
-% emulated for \brand{MathJax}.
+% emulated for \MathJax.
%
% \changes{v0.89}{2020/07/21}{\pkg{accents}: Added.}
%
@@ -43461,7 +43663,7 @@ color:\LWR@origpound\LWR@tempcolor%
\LWR@ProvidesPackagePass{accents}[2006/05/12]
% \end{macrocode}
%
-% For \brand{MathJax}:
+% For \MathJax:
% \begin{macrocode}
\begin{warpMathJax}
\LWR@infoprocessingmathjax{accents}
@@ -43470,7 +43672,7 @@ color:\LWR@origpound\LWR@tempcolor%
\CustomizeMathJax{\newcommand{\accentset}[2]{\overset{#1{}}{#2}}}
% \end{macrocode}
%
-% As of this writing, \brand{MathJax} v3 does not yet support
+% As of this writing, \MathJax\ v3 does not yet support
% groups for macros, so for \cs{underaccent}, the originals are remembered here,
% then they are temporarily redefined and used inside \cs{underaccent},
% then restored to their originals.
@@ -43556,9 +43758,9 @@ color:\LWR@origpound\LWR@tempcolor%
% \end{macrocode}
%
%
-% For \brand{MathJax}:
+% For \MathJax:
%
-% \changes{v0.80}{2020/02/06}{\pkg{accessibility}: Added \brand{MathJax} emulation.}
+% \changes{v0.80}{2020/02/06}{\pkg{accessibility}: Added \MathJax\ emulation.}
% \begin{macrocode}
\begin{warpMathJax}
\CustomizeMathJax{\newcommand{\alt}[1]{}}
@@ -43596,8 +43798,8 @@ color:\LWR@origpound\LWR@tempcolor%
\newcommand*{\EndAccSupp}[1]{}
% \end{macrocode}
%
-% For \brand{MathJax}:
-% \changes{v0.80}{2020/02/20}{\pkg{accsupp}: Added \brand{MathJax} emulation.}
+% For \MathJax:
+% \changes{v0.80}{2020/02/20}{\pkg{accsupp}: Added \MathJax\ emulation.}
% \begin{macrocode}
\begin{warpMathJax}
\CustomizeMathJax{\newcommand{\BeginAccSupp}[1]{}}
@@ -44054,15 +44256,19 @@ color:\LWR@origpound\LWR@tempcolor%
%
% Paragraph handling to allow line numbers under certain conditions:
% \begin{macrocode}
-\newbool{LWR@algocf@dopars}
-\booltrue{LWR@algocf@dopars}
-
\renewcommand{\algocf@everypar}{%
\ifbool{LWR@algocf@dopars}{%
\ifbool{LWR@doingstartpars}{%
\ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}%
{}%
{%
+% \end{macrocode}
+% \pkg{algorthm2e} uses \cs{everypar}, so the open paragraph tag
+% is generated here instead of \cs{LWR@openparagraph}:
+% \begin{macrocode}
+ \LWR@htmltagc{\LWR@tagregularparagraph}\LWR@orignewline%
+% \end{macrocode}
+% \begin{macrocode}
\algocf@everyparnl\algocf@everyparhanging%
}%
}{}%
@@ -44392,8 +44598,8 @@ color:\LWR@origpound\LWR@tempcolor%
% \DescribePackage{amscdx}
% \pkg{amscdx} is used as-is for \SVG\ math.
%
-% For \brand{MathJax}, a warning notes that the \env{CD} environment
-% \trouble[\brand{MathJax}]{amscdx=\pkg{amscdx}}
+% For \MathJax, a warning notes that the \env{CD} environment
+% \trouble[\MathJax]{amscdx=\pkg{amscdx}}
% must be enclosed between \cs{displaymathother} and \cs{displaymathnormal}.
%
% \changes{v0.895}{2021/01/08}{\pkg{amscdx}: Added.}
@@ -44508,8 +44714,8 @@ color:\LWR@origpound\LWR@tempcolor%
%
% \DescribeCounter{LWR@maxfields@} A copy of \ctr{maxfields@} as it was passed.
% This is used to generate the mandatory argument for \env{alignat} and \env{alignat*}
-% when using \brand{MathJax}.
-% \changes{v0.900}{2021/07/11}{Fix: \env{alignat} with \brand{MathJax}.}
+% when using \MathJax.
+% \changes{v0.900}{2021/07/11}{Fix: \env{alignat} with \MathJax.}
% \begin{macrocode}
\newcounter{LWR@maxfields@}
@@ -44552,7 +44758,7 @@ color:\LWR@origpound\LWR@tempcolor%
%
% |*| if the environment was starred.
%
-% Embeds the environment with \brand{MathJax} or a \env{lateximage}.
+% Embeds the environment with \MathJax\ or a \env{lateximage}.
% \changes{v0.79}{2020/01/31}{AMS environments: Fix: Nested.}
% \changes{v0.80}{2020/02/13}{AMS environments: Fix: Centering starred envs.}
% \begin{macrocode}
@@ -44566,7 +44772,7 @@ color:\LWR@origpound\LWR@tempcolor%
\ifstrequal{#2}{multline}{\booltrue{LWR@amsmultline}}{}
\ifstrequal{#2}{multline*}{\booltrue{LWR@amsmultline}}{}
% \end{macrocode}
-% \pkg{autonum}'s ``+'' environments are not supported by \brand{MathJax}.
+% \pkg{autonum}'s ``+'' environments are not supported by \MathJax.
% \watchout
% \begin{macrocode}
\LWR@beginhideamsmath
@@ -44603,7 +44809,7 @@ color:\LWR@origpound\LWR@tempcolor%
% |*| if the environment was starred. Ignored here, only used for
% a consistent syntax.
%
-% Embeds the environment with \brand{MathJax} or a \env{lateximage}.
+% Embeds the environment with \MathJax\ or a \env{lateximage}.
%
% \changes{v0.80}{2020/02/13}{AMS environments: Fix: Centering starred envs.}
% \begin{macrocode}
@@ -44719,7 +44925,7 @@ color:\LWR@origpound\LWR@tempcolor%
% \end{environment}
%
%
-% \changes{v0.86}{2020/05/08}{\pkg{amsmath}: Added support for \brand{MathJax}.}
+% \changes{v0.86}{2020/05/08}{\pkg{amsmath}: Added support for \MathJax.}
% \begin{macrocode}
\AtBeginEnvironment{subequations}{
\renewcommand*{\theMathJaxsubequations}{1}
@@ -44729,9 +44935,9 @@ color:\LWR@origpound\LWR@tempcolor%
% \end{macrocode}
%
%
-% For \brand{MathJax}:
-% \changes{v0.79}{2020/01/27}{\pkg{amsmath}: Added \brand{MathJax} emulation.}
-% \changes{v0.82}{2020/03/14}{\pkg{amsmath}: Fixed: \cs{intertext} for \brand{MathJax}.}
+% For \MathJax:
+% \changes{v0.79}{2020/01/27}{\pkg{amsmath}: Added \MathJax\ emulation.}
+% \changes{v0.82}{2020/03/14}{\pkg{amsmath}: Fixed: \cs{intertext} for \MathJax.}
% \changes{v0.895}{2021/02/11}{\pkg{amsmath}: Added \cs{Hat}, etc..}
% \begin{macrocode}
\begin{warpMathJax}
@@ -44860,9 +45066,9 @@ color:\LWR@origpound\LWR@tempcolor%
\else % numbered theorem, need to check for optional arg
\def\@tempa{\@oparg{\@ynthm{#2}}[]}%
\fi
- \AtBeginEnvironment{#2}{%
- \edef\LWR@thisthmstyle{\@nameuse{LWR@thmstyle#2}}%
- }% lwarp
+ \AtBeginEnvironment{#2}{% lwarp
+ \edef\LWR@thisthmstyle{\@nameuse{LWR@thmstyle#2}}% lwarp
+ }% lwarp
}%
\@tempa%
}
@@ -44936,44 +45142,6 @@ color:\LWR@origpound\LWR@tempcolor%
% \end{macrocode}
% \begin{macrocode}
\BlockClass{amsthmbody\LWR@thisthmstyle}% lwarp
-% \end{macrocode}
-%
-% Footnotes are redefined to work correctly inside the option brackets
-% for a theorem environment.
-% \changes{v0.896}{2021/03/14}{\pkg{amsthm}: Fix: Footnotes in opt arg..}
-% \begin{macrocode}
- \renewcommand{\footnote}[1][]{%
- \ifblank{##1}%
- {%
- \stepcounter\@mpfn
- \protected@xdef\@thefnmark{\thempfn}%
- \@footnotemark\@footnotetext
- }%
- {%
- \begingroup
- \csname c@\@mpfn\endcsname ##1\relax
- \unrestored@protected@xdef\@thefnmark{\thempfn}%
- \endgroup
- \@footnotemark\@footnotetext
- }%
- }%
-%
- \renewcommand{\footnotemark}[1][]{%
- \ifblank{##1}%
- {%
- \stepcounter{footnote}%
- \protected@xdef\@thefnmark{\thefootnote}%
- \@footnotemark%
- }%
- {%
- \begingroup%
- \c@footnote ##1\relax%
- \unrestored@protected@xdef\@thefnmark{\thefootnote}%
- \endgroup%
- \@footnotemark%
- }%
- }%
-%
\trivlist
\let\thmheadnl\relax
\let\thm@swap\@gobble
@@ -45068,6 +45236,20 @@ color:\LWR@origpound\LWR@tempcolor%
}% AtBeginDocument
% \end{macrocode}
%
+%
+% Patched to add a \element{span}:
+% \changes{v0.902}{2021/09/24}{\pkg{amsthm}: Fixed empty \attribute{theoremendmark} \element{span}.}
+% \begin{macrocode}
+\DeclareRobustCommand{\qed}{%
+ \ifmmode \mathqed
+ \else
+% \leavevmode\unskip\penalty9999 \hbox{}\nobreak\hfill
+% \quad\hbox{\qedsymbol}%
+ \InlineClass{theoremendmark}{\qedsymbol}% lwarp
+ \fi
+}
+% \end{macrocode}
+%
% Patched for \CSS:
% \changes{v0.896}{2021/04/05}{\pkg{amsthm}: Improved back refs.}
% \begin{macrocode}
@@ -45087,7 +45269,7 @@ color:\LWR@origpound\LWR@tempcolor%
\item[
\InlineClass{amsthmproofname}{#1\@addpunct{.}}]\ignorespaces% changes
}{%
- \InlineClass{theoremendmark}{\popQED}\endtrivlist%
+ \popQED\endtrivlist%
% \end{macrocode}
% \changes{v0.896}{2021/03/14}{\pkg{amsthm}: Intersperse footnotes.}
% \begin{macrocode}
@@ -45333,8 +45515,8 @@ color:\LWR@origpound\LWR@tempcolor%
% \end{macrocode}
%
%
-% For \brand{MathJax}:
-% \changes{v0.79}{2020/01/30}{\pkg{ar}: Added \brand{MathJax} emulation.}
+% For \MathJax:
+% \changes{v0.79}{2020/01/30}{\pkg{ar}: Added \MathJax\ emulation.}
% \begin{macrocode}
\begin{warpMathJax}
\CustomizeMathJax{\newcommand{\AR}{\mathit{A\!\!R}}}
@@ -45431,7 +45613,7 @@ color:\LWR@origpound\LWR@tempcolor%
\LWR@formatted{tabularnewline}
% \end{macrocode}
%
-% For \brand{MathJax}:
+% For \MathJax:
% \begin{macrocode}
\CustomizeMathJax{
\newcommand{\multicolumn}[3]{#3}% only uses one cell
@@ -45468,9 +45650,9 @@ color:\LWR@origpound\LWR@tempcolor%
% a single-dashed rule is displayed as a single-dashed border, and
% a double-dashed rule is displayed as a thicker single-dashed border.
%
-% For \brand{MathJax}, limited emulation is provided for math mode.
+% For \MathJax, limited emulation is provided for math mode.
% \trouble{arydshln=\pkg{arydshln}}
-% \trouble{mathjax=\brand{MathJax}>arydshln=\pkg{arydshln}}
+% \trouble{mathjax=\MathJax>arydshln=\pkg{arydshln}}
%
% \changes{v0.56}{2018/05/02}{\pkg{arydshln}: Added.}
%
@@ -45569,7 +45751,7 @@ color:\LWR@origpound\LWR@tempcolor%
% \end{macrocode}
-% \changes{v0.79}{2020/01/30}{\pkg{arydshln}: Added \brand{MathJax} emulation.}
+% \changes{v0.79}{2020/01/30}{\pkg{arydshln}: Added \MathJax\ emulation.}
% \begin{macrocode}
\begin{warpMathJax}
\CustomizeMathJax{\newcommand{\firsthdashline}[1][]{\hdashline}}
@@ -45984,7 +46166,7 @@ color:\LWR@origpound\LWR@tempcolor%
%
% \DescribePackage{autobreak}
% \pkg{autobreak} is used as-is for \SVG\ math, and
-% nullified for \brand{MathJax}.
+% nullified for \MathJax.
%
% \changes{v0.80}{2020/02/09}{\pkg{autobreak}: Added.}
%
@@ -45994,9 +46176,9 @@ color:\LWR@origpound\LWR@tempcolor%
\LWR@ProvidesPackagePass{autobreak}[2017/02/23]
% \end{macrocode}
%
-% For \brand{MathJax}.
+% For \MathJax.
% The modified \env{align} environment is used for \SVG\ math,
-% but is reverted to its original for \brand{MathJax}.
+% but is reverted to its original for \MathJax.
% (Extraneous commas were appearing in the result.)
% \begin{macrocode}
\begin{warpMathJax}
@@ -46031,7 +46213,7 @@ color:\LWR@origpound\LWR@tempcolor%
%
% All equations are numbered in \HTML\ output.
% \trouble[numbering, \texttt{+}]{autonum=\pkg{autonum}}
-% \brand{MathJax} does not support the ``+'' environments.
+% \MathJax\ does not support the ``+'' environments.
%
% \changes{v0.70}{2019/03/28}{\pkg{autonum}: Added.}
%
@@ -46221,8 +46403,8 @@ color:\LWR@origpound\LWR@tempcolor%
\long\def\wrapmlalt#1{}
% \end{macrocode}
%
-% For \brand{MathJax}. These usually will not be needed.
-% \changes{v0.81}{2020/02/20}{\pkg{axessibility}: Added \brand{MathJax} emulation.}
+% For \MathJax. These usually will not be needed.
+% \changes{v0.81}{2020/02/20}{\pkg{axessibility}: Added \MathJax\ emulation.}
% \begin{macrocode}
\begin{warpMathJax}
\CustomizeMathJax{\newcommand{\wrap}[1]{}}
@@ -46287,7 +46469,7 @@ color:\LWR@origpound\LWR@tempcolor%
%
% \DescribePackage{backnaur}
% \pkg{backnaur} is patched for use by \pkg{lwarp},
-% and emulated for \brand{MathJax}.
+% and emulated for \MathJax.
%
% \changes{v0.72}{2019/05/20}{\pkg{backnaur}: Added.}
%
@@ -46349,7 +46531,7 @@ color:\LWR@origpound\LWR@tempcolor%
% ^^A % \end{macrocode}
%
%
-% For \brand{MathJax}:
+% For \MathJax:
% \begin{macrocode}
\begin{warpMathJax}
\CustomizeMathJax{\newcommand{\bnfpn}[1]{\langle \text{\textrm{#1}} \rangle}}
@@ -46758,6 +46940,146 @@ color:\LWR@origpound\LWR@tempcolor%
%
%
%
+%
+% \iffalse
+%<*beamerarticle>
+% \fi
+%
+% \part{lwarp-beamerarticle.sty}
+%
+% \section{beamerarticle}
+%
+% \credits{Till Tantau, Vedran Mileti\'c, Louis Stuart, Joseph Wright}
+%
+% \DescribePackage{beamerarticle}
+% \pkg{beamerarticle} is patched for use by \pkg{lwarp}.
+%
+% \changes{v0.902}{2021/09/24}{\pkg{beamerarticle}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{beamerarticle}[2021/05/26]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\renewcommand<>{\textcolor}{\only#1{\beameroriginal{\textcolor}}}
+
+\AtBeginDocument{
+
+\renewcommand<>{\LWR@listitem}{%
+ \only#1{%
+ \beameroriginal{\LWR@listitem}%
+ }%
+}
+
+\renewcommand<>{\LWR@itemizeitem}{%
+ \only#1{%
+ \beameroriginal{\LWR@itemizeitem}%
+ }%
+}
+
+\renewcommand<>{\LWR@descitem}{%
+ \only#1{%
+ \beameroriginal{\LWR@descitem}%
+ }%
+}
+
+\renewcommand<>{\abstract}{%
+ \only#1{%
+ \beameroriginal{\abstract}%
+ }%
+}
+
+\renewcommand<>{\LWR@includegraphicsb}{%
+ \only#1{%
+ \beameroriginal{\LWR@includegraphicsb}%
+ }%
+}
+
+\xpretocmd\frame
+ {
+ \LWR@forcenewpage
+ \BlockClass{beamerframe}%
+ }
+ {}
+ {\LWR@patcherror{beamerarticle}{frame}}
+
+\xapptocmd\beamer@endframe
+ {\endBlockClass}
+ {}
+ {\LWR@patcherror{beamerarticle}{beamer@endframe}}
+
+% An example in the beamer docs for \cs{includegraphics}
+% shows the use of \cs{llap} in a frame.
+\xpretocmd\beamer@article@startframe
+ {\LWR@nulllistfills}
+ {}
+ {\LWR@patcherror{beamerarticle}{beamer@article@startframe}}
+
+}% AtBeginDocument
+
+\let\beamer@@tmpop@frametitle@default\relax
+\defbeamertemplate<article>*{frametitle}{default}{%
+ \paragraph*{\insertframetitle}\ \par%
+ \ifdefempty{\insertframesubtitle}{}{%
+ \noindent\emph{\insertframesubtitle}\par%
+ }%
+}
+
+
+\NewDocumentCommand{\LWR@beamer@itemize}{o}{%
+ \LWR@itemizestart\LWR@origitemize%
+}%
+\NewDocumentCommand{\LWR@beamer@description}{o o}{%
+ \LWR@descriptionstart\LWR@origdescription%
+}%
+
+\xapptocmd{\LWR@patchlists}
+ {%
+ \LetLtxMacro\itemize\LWR@beamer@itemize%
+ \LetLtxMacro\description\LWR@beamer@description%
+ }
+ {}
+ {\LWR@patcherror{beamerarticle}{LWR@patchlists}}
+
+
+\LetLtxMacro\maketitle\LWR@maketitle
+
+\renewcommand{\subtitle}[2][]{
+ \gdef\@subtitle{#2}
+ \def\insertsubtitle{#2}
+}
+
+\xpatchcmd{\@maketitle}
+ {%
+ \LWR@htmltag{\LWR@tagtitleend}%
+ \LWR@startpars%
+ }%
+ {%
+ \LWR@htmltag{\LWR@tagtitleend}%
+ \ifdefvoid{\@subtitle}{}{%
+ \begin{BlockClass}{subtitle}%
+ \@subtitle%
+ \end{BlockClass}%
+ }%
+ \LWR@startpars%
+ }%
+ {}
+ {\LWR@patcherror{beamerarticle}{@maketitle}}
+
+\RequirePackage{fancyvrb}
+\DefineVerbatimEnvironment{semiverbatim}{Verbatim}{commandchars=\\\{\}}
+% \end{macrocode}
+%
+% \iffalse
+%</beamerarticle>
+% \fi
+%
+%
+%
+%
+%
% \iffalse
%<*biblatex>
% \fi
@@ -47114,9 +47436,9 @@ color:\LWR@origpound\LWR@tempcolor%
\LWR@formatted{rdelim}
% \end{macrocode}
-% Limited emulation for \brand{MathJax}.
+% Limited emulation for \MathJax.
% The delimiter is printed on the first row, along with any optional text.
-% \changes{v0.79}{2020/01/20}{\pkg{bigdelim}: Added \brand{MathJax} emulation.}
+% \changes{v0.79}{2020/01/20}{\pkg{bigdelim}: Added \MathJax\ emulation.}
% \begin{macrocode}
\begin{warpMathJax}
% \ldelim ( {n}{width}[text]
@@ -47214,7 +47536,7 @@ color:\LWR@origpound\LWR@tempcolor%
% \end{macrocode}
%
-% \changes{v0.79}{2020/01/20}{\pkg{bigstrut}: Added \brand{MathJax} emulation.}
+% \changes{v0.79}{2020/01/20}{\pkg{bigstrut}: Added \MathJax\ emulation.}
% \begin{macrocode}
\begin{warpMathJax}
\CustomizeMathJax{\newcommand{\bigstrut}[1][]{}}
@@ -47324,7 +47646,7 @@ color:\LWR@origpound\LWR@tempcolor%
% \end{macrocode}
%
% \cs{DeclareBoldMathCommand} must only be used in the preamble, since it
-% adds to the \brand{MathJax} setup code.
+% adds to the \MathJax\ setup code.
%
% \begin{macrocode}
\begin{warpMathJax}
@@ -47448,9 +47770,9 @@ color:\LWR@origpound\LWR@tempcolor%
% \pkg{booktabs} is emulated during \HTML\ output, and
% used as-is during print output and inside an \HTML\ \env{lateximage}.
%
-% For \brand{MathJax}, emulation is provided in math mode, but \watchout[\cs{cmidrule}]
+% For \MathJax, emulation is provided in math mode, but \watchout[\cs{cmidrule}]
% \trouble{booktabs=\pkg{booktabs}}
-% \trouble{mathjax=\brand{MathJax}>booktabs=\pkg{booktabs}}
+% \trouble{mathjax=\MathJax>booktabs=\pkg{booktabs}}
% \cs{cmidrule} trim must not be used.
%
% \changes{v0.34}{2017/08/08}{\pkg{booktabs}: Works inside \env{lateximage}.}
@@ -47552,9 +47874,9 @@ color:\LWR@origpound\LWR@tempcolor%
% \end{macrocode}
%
%
-% For \brand{MathJax}:
-% \changes{v0.79}{2020/01/30}{\pkg{booktabs}: Added \brand{MathJax} emulation.}
-% \changes{v0.894}{2020/12/22}{\pkg{booktabs}: \brand{MathJax}: Absorb \cs{cmidrule} trim arg.}
+% For \MathJax:
+% \changes{v0.79}{2020/01/30}{\pkg{booktabs}: Added \MathJax\ emulation.}
+% \changes{v0.894}{2020/12/22}{\pkg{booktabs}: \MathJax: Absorb \cs{cmidrule} trim arg.}
% \begin{macrocode}
\begin{warpMathJax}
\CustomizeMathJax{\newcommand{\toprule}[1][]{\hline}}
@@ -47722,10 +48044,10 @@ color:\LWR@origpound\LWR@tempcolor%
%
% \DescribePackage{braket}
% \pkg{braket} works as-is for \HTML\ with \SVG\ math.
-% For \brand{MathJax}, the \brand{MathJax} extension is used.
+% For \MathJax, the \MathJax\ extension is used.
%
% \changes{v0.79}{2020/01/29}{\pkg{braket}: Added.}
-% \changes{v0.893}{2020/10/30}{\pkg{braket}: Now uses \brand{MathJax} extension.}
+% \changes{v0.893}{2020/10/30}{\pkg{braket}: Now uses \MathJax\ extension.}
%
% \codehtml
%
@@ -47813,7 +48135,7 @@ color:\LWR@origpound\LWR@tempcolor%
% the print version either.
% \trouble[\env{darray}]{breqn=\pkg{breqn}>darray}
%
-% While using \brand{MathJax}, \pkg{breqn} objects are
+% While using \MathJax, \pkg{breqn} objects are
% converted to \SVG\ images.
%
% \changes{v0.59}{2018/07/25}{\pkg{breqn}: Added.}
@@ -47940,13 +48262,13 @@ color:\LWR@origpound\LWR@tempcolor%
%
% \DescribePackage{bussproofs}
% \pkg{bussproofs} is used as-is for \HTML, and
-% emulated by \brand{MathJax}'s extension.
+% emulated by \MathJax's extension.
%
-% If not using \brand{MathJax}, inline proofs with \cs{DisplayMath} must be placed
+% If not using \MathJax, inline proofs with \cs{DisplayMath} must be placed
% \trouble[\cs{DisplayProof}]{bussproofs=\pkg{bussproofs}}
% inside a math expression.
%
-% If using \brand{MathJax}, only the \env{prooftree} environment may be used,
+% If using \MathJax, only the \env{prooftree} environment may be used,
% not \cs{DisplayProof}.
%
% \changes{v0.891}{2020/09/20}{\pkg{bussproofs}: Added.}
@@ -48058,7 +48380,7 @@ color:\LWR@origpound\LWR@tempcolor%
% \pkg{cancel} is used as-is for \SVG\ math, and emulated for \HTML\ text output.
%
% \changes{v0.44}{2017/11/16}{\pkg{cancel}: Added.}
-% \changes{v0.87}{2020/06/02}{\pkg{cancel}: Now uses \brand{MathJax} v3 extension.}
+% \changes{v0.87}{2020/06/02}{\pkg{cancel}: Now uses \MathJax\ v3 extension.}
%
% \codehtml
%
@@ -48113,7 +48435,7 @@ color:\LWR@origpound\LWR@tempcolor%
% \end{macrocode}
% \end{noindmacro}
%
-% For \brand{MathJax}:
+% For \MathJax:
% \begin{macrocode}
\begin{warpMathJax}
\PackageWarningNoLine{lwarp, cancel}{The MathJax v3 extension will be used}
@@ -48535,7 +48857,7 @@ s%
% \DescribePackage{cases}
% \pkg{cases} is patched for use by \pkg{lwarp}.
%
-% While using \brand{MathJax}, \pkg{cases} objects are converted to \SVG\ math images.
+% While using \MathJax, \pkg{cases} objects are converted to \SVG\ math images.
% The MathJax 3.2 \pkg{cases} package does not yet work with \pkg{lwarp}.
%
% \changes{v0.58}{2018/06/08}{\pkg{cases}: Added.}
@@ -48665,11 +48987,11 @@ s%
%
% \DescribePackage{centernot}
% \pkg{centernot} is used as-is for \SVG\ math,
-% and emulated for \brand{MathJax}.
+% and emulated for \MathJax.
%
% \changes{v0.80}{2020/02/08}{\pkg{centernot}: Added.}
% \changes{v0.89}{2020/08/17}{\pkg{centernot}: Improved.}
-% \changes{v0.901}{2021/08/26}{\pkg{centernot}: Now uses \brand{MathJax} 3.2 package.}
+% \changes{v0.901}{2021/08/26}{\pkg{centernot}: Now uses \MathJax\ 3.2 package.}
%
% \codehtml
%
@@ -49357,7 +49679,7 @@ test {\ifnumgreater{\csuse{Changes@In########1}}{0}}%
% \end{macrocode}
%
% \begin{noindmacro}{\ch}
-% Enclose in an inline \SVG\ image or \brand{MathJax}.
+% Enclose in an inline \SVG\ image or \MathJax.
% The \attribute{alt} tag is is the contents of the \cs{ch} expression.
% The filename is hashed, and also has additional hashing information based on
% the local options.
@@ -49373,7 +49695,7 @@ test {\ifnumgreater{\csuse{Changes@In########1}}{0}}%
\chemformula_ch:nn {#1} {#2}% original
}
% \end{macrocode}
-% If used as the outer level, must temporarily ensure \brand{MathJax} is disabled:
+% If used as the outer level, must temporarily ensure \MathJax\ is disabled:
% \begin{macrocode}
{
\begingroup%
@@ -51125,7 +51447,7 @@ name = \chemmacros_translate:n {scheme-name}
%
% \DescribePackage{cleveref}
% \pkg{cleveref} is patched for \HTML, and
-% limited \brand{MathJax} emulation is added.
+% limited \MathJax\ emulation is added.
%
% \limitscpageref
%
@@ -51133,10 +51455,10 @@ name = \chemmacros_translate:n {scheme-name}
% shows the data structure of the label/reference system
% as revised by \pkg{lwarp} and \pkg{cleveref}.
%
-% For \brand{MathJax},
+% For \MathJax,
% each references is printed as an \cs{eqref}, without \pkg{cleveref}'s
% description text. Page references are also printed as simple \cs{eqref}s.
-% Multiple labels in a single \cs{cref} will print as \texttt{(???)} in \brand{MathJax}.
+% Multiple labels in a single \cs{cref} will print as \texttt{(???)} in \MathJax.
% \watchout[multiple labels]
%
% \codehtml
@@ -51342,12 +51664,12 @@ name = \chemmacros_translate:n {scheme-name}
% \end{macrocode}
%
%
-% ^^A % For \brand{MathJax} and \pkg{cleveref},
+% ^^A % For \MathJax\ and \pkg{cleveref},
% ^^A % but not \pkg{varioref} since \pkg{varioref} macros would only
% ^^A % be useful in math inside a \cs{text} macro, where they do not
-% ^^A % work in \brand{MathJax}.
+% ^^A % work in \MathJax.
% ^^A %
-% ^^A % \changes{v0.88}{2020/07/05}{\pkg{cleveref}: Added \brand{MathJax} emulation.}
+% ^^A % \changes{v0.88}{2020/07/05}{\pkg{cleveref}: Added \MathJax\ emulation.}
% ^^A % \begin{macrocode}
% ^^A \CustomizeMathJax{\newcommand{\cref}{\ifstar\eqref\eqref}}
% ^^A \CustomizeMathJax{\let\Cref\cref}
@@ -51426,9 +51748,9 @@ name = \chemmacros_translate:n {scheme-name}
%
% \DescribePackage{cmbright}
% \pkg{cmbright} is used as-is for \SVG\ math, and is
-% emulated for \brand{MathJax}.
+% emulated for \MathJax.
%
-% The \brand{MathJax} emulation ignores all package options,
+% The \MathJax\ emulation ignores all package options,
% \trouble[limitations]{cmbright=\pkg{cmbright}}
% except \optn{slantedGreek} is honored, and \cs{mathbold} is available.
%
@@ -51514,7 +51836,7 @@ name = \chemmacros_translate:n {scheme-name}
%
% \DescribePackage{colonequals}
% \pkg{colonequals} is used as-is for \SVG\ math, and
-% is emulated for \brand{MathJax}.
+% is emulated for \MathJax.
%
% Since \brand{Unicode} symbols are not available for each of the following,
% only two are used for the single and double colons, and the other symbols
@@ -51722,9 +52044,9 @@ name = \chemmacros_translate:n {scheme-name}
% \end{macrocode}
% \end{noindmacro}
-% For \brand{MathJax}, use the \brand{MathJax} package.
+% For \MathJax, use the \MathJax\ package.
% The unused macro options are ignored.
-% \changes{v0.894}{2020/12/22}{\pkg{colortbl}: Added \brand{MathJax} emulation.}
+% \changes{v0.894}{2020/12/22}{\pkg{colortbl}: Added \MathJax\ emulation.}
% \begin{macrocode}
\begin{warpMathJax}
@@ -52264,7 +52586,7 @@ name = \chemmacros_translate:n {scheme-name}
%
% \DescribePackage{decimal}
% \pkg{decimal} works as-is for \SVG\ math, and
-% is emulated for \brand{MathJax}.
+% is emulated for \MathJax.
%
% \changes{v0.81}{2020/02/22}{\pkg{decimal}: Added.}
%
@@ -52527,7 +52849,7 @@ name = \chemmacros_translate:n {scheme-name}
%
% \DescribePackage{DotArrow}
% \pkg{DotArrow} is patched for use by \pkg{lwarp},
-% and emulated for \brand{MathJax}.
+% and emulated for \MathJax.
%
% \changes{v0.81}{2020/03/03}{\pkg{DotArrow}: Added.}
%
@@ -52566,13 +52888,13 @@ name = \chemmacros_translate:n {scheme-name}
%
% \DescribePackage{dotlessi}
% \pkg{dotlessi} is used as-is for \SVG\ math, and
-% is emulated for \brand{MathJax}.
+% is emulated for \MathJax.
%
% Use |\usepackage{cmap}| if \cs{dotlessj} does not appear in \HTML\ in text mode.
% \watchout[\HTML\ \cs{dotlessj}]
% See \cref{sec:fonts}.
%
-% For \brand{MathJax}, use \cs{boldsymbol} instead of \cs{mathbf}.
+% For \MathJax, use \cs{boldsymbol} instead of \cs{mathbf}.
% \watchout[not bold]
%
% \changes{v0.81}{2020/02/21}{\pkg{dotlessi}: Added.}
@@ -52583,7 +52905,7 @@ name = \chemmacros_translate:n {scheme-name}
\LWR@ProvidesPackagePass{dotlessi}[1999/10/12]
% \end{macrocode}
%
-% For \brand{MathJax}:
+% For \MathJax:
% \begin{macrocode}
\begin{warpMathJax}
\CustomizeMathJax{\let\dotlessi\imath}
@@ -52910,7 +53232,7 @@ name = \chemmacros_translate:n {scheme-name}
%
% \DescribePackage{econometrics}
% \pkg{econometrics} is used as-is for \SVG\ math, and
-% is emulated for \brand{MathJax}.
+% is emulated for \MathJax.
%
% \changes{v0.81}{2020/03/01}{\pkg{econometrics}: Added.}
% \changes{v0.89}{2020/09/02}{\pkg{econometrics}: Uses \pkg{lwarp-common-mathjax-letters}.}
@@ -53393,8 +53715,8 @@ name = \chemmacros_translate:n {scheme-name}
% \end{macrocode}
%
%
-% For \brand{MathJax}:
-% \changes{v0.82}{2020/03/14}{\pkg{endnotes}: Added \brand{MathJax} emulation.}
+% For \MathJax:
+% \changes{v0.82}{2020/03/14}{\pkg{endnotes}: Added \MathJax\ emulation.}
% \begin{macrocode}
\begin{warpMathJax}
\def\endnotename{endnote}
@@ -53426,9 +53748,9 @@ name = \chemmacros_translate:n {scheme-name}
%
% \DescribePackage{engtlc}
% \pkg{engtlc} is patched for use by \pkg{lwarp}.
-% \brand{MathJax} is emulated.
+% \MathJax\ is emulated.
%
-% For \brand{MathJax}, \cs{signt}, \cs{signf}, \cs{signn}, and \cs{signz}
+% For \MathJax, \cs{signt}, \cs{signf}, \cs{signn}, and \cs{signz}
% \watchout
% do not force letter case as they do in \SVG\ math.
%
@@ -53807,7 +54129,7 @@ name = \chemmacros_translate:n {scheme-name}
\ExplSyntaxOff
% \end{macrocode}
%
-% For \brand{MathJax}:
+% For \MathJax:
% \begin{macrocode}
\begin{warpMathJax}
\def\endnotename{endnote}
@@ -54457,7 +54779,7 @@ name = \chemmacros_translate:n {scheme-name}
%
% \DescribePackage{esvect}
% \pkg{esvect} is used as-is for \SVG\ math,
-% and emulated for \brand{MathJax}.
+% and emulated for \MathJax.
%
% \changes{v0.893}{2020/10/14}{\pkg{esvect}: Added.}
%
@@ -54766,7 +55088,7 @@ name = \chemmacros_translate:n {scheme-name}
%
% \DescribePackage{extarrows}
% \pkg{extarrows} is used as-is for \SVG\ math, and
-% emulted for \brand{MathJax}.
+% emulted for \MathJax.
%
% \changes{v0.80}{2020/02/15}{\pkg{extarrows}: Added.}
%
@@ -54864,7 +55186,7 @@ name = \chemmacros_translate:n {scheme-name}
%
% \changes{v0.34}{2017/07/27}{\pkg{fancybox}: Added.}
% \changes{v0.42}{2017/10/27}{\pkg{fancybox}: If \progcode{FormatWP} add \HTML\ styles.}
-% \changes{v0.52}{2018/03/29}{\pkg{fancyvrb}: Initial support for \cs{VerbatimFootnotes}.}
+% \changes{v0.52}{2018/03/29}{\pkg{fancybox}: Initial support for \cs{VerbatimFootnotes}.}
%
% \begin{macrocode}
\LWR@ProvidesPackagePass{fancybox}[2010/05/15]
@@ -54889,7 +55211,7 @@ name = \chemmacros_translate:n {scheme-name}
% \begin{noindmacro}{\V@@footnotetext}
% Patches in a subset of \pkg{lwarp}'s \cs{LWR@footnotetext} to the
% \pkg{fancyvrb} version of \cs{V@@footnotetext}.
-% \changes{v0.896}{2021/04/04}{Fix: \ctr{autopage} references in footnotes.}
+% \changes{v0.896}{2021/04/04}{\pkg{fancybox}: Fix: \ctr{autopage} references in footnotes.}
% \begin{macrocode}
\def\V@@footnotetext{%
\LWR@traceinfo{V@footnotetext}%
@@ -54920,14 +55242,10 @@ name = \chemmacros_translate:n {scheme-name}
\renewrobustcmd{\textsuperscript}[1]{\LWR@htmlspan{sup}{##1}}%
% \end{macrocode}
% Use paragraph tags if in a tabular data cell or a \env{lateximage}:
-% \changes{v0.66}{2019/02/02}{\pkg{fancyvrb}: Improved \HTML\ formatting.}
+% \changes{v0.66}{2019/02/02}{\pkg{fancybox}: Improved \HTML\ formatting.}
+% \changes{v0.902}{2021/09/29}{\pkg{fancybox}: Improved footnote par tags.}
% \begin{macrocode}
- \ifthenelse{%
- \boolean{LWR@doingstartpars} \AND%
- \cnttest{\value{LWR@lateximagedepth}}{=}{0}%
- }%
- {}%
- {\LWR@htmltagc{\LWR@tagregularparagraph}\LWR@orignewline}%
+ \LWR@htmltagc{\LWR@tagregularparagraph}\LWR@orignewline%
% \end{macrocode}
% Append the footnote to the list:
% \begin{macrocode}
@@ -54936,7 +55254,7 @@ name = \chemmacros_translate:n {scheme-name}
% The footnote text will follow after \cs{V@@@footnotetext} has completed.
% \begin{macrocode}
\bgroup%
- \aftergroup{\V@@@footnotetext}%
+ \aftergroup\V@@@footnotetext%
% \end{macrocode}
%
% Do not generate autopages inside the footnotes, since they are
@@ -54950,6 +55268,17 @@ name = \chemmacros_translate:n {scheme-name}
% \end{macrocode}
% \end{noindmacro}
%
+% \begin{noindmacro}{\V@@@footnotetext}
+% \changes{v0.902}{2021/09/29}{\pkg{fancybox}: Improved footnote par tags.}
+% \begin{macrocode}
+\def\V@@@footnotetext{%
+ \LWR@origtilde\LWR@orignewline%
+ \LWR@htmltagc{/\LWR@tagregularparagraph}\LWR@orignewline%
+ \strut\egroup%
+}
+% \end{macrocode}
+% \end{noindmacro}
+%
% \begin{macrocode}
}% AfterEndPreamble
% \end{macrocode}
@@ -54993,7 +55322,7 @@ name = \chemmacros_translate:n {scheme-name}
\def\endSbox{\endLWR@nestspan\LWR@origendSbox}
% \end{macrocode}
%
-% \env{Beqnarray} is adapted for \brand{MathJax} or enclosed inside a \env{lateximage}:
+% \env{Beqnarray} is adapted for \MathJax\ or enclosed inside a \env{lateximage}:
%
% \begin{macrocode}
\RenewEnviron{Beqnarray}
@@ -55438,13 +55767,14 @@ name = \chemmacros_translate:n {scheme-name}
% Patched to use the new version.
% \begin{macrocode}
\def\VerbatimFootnotes{%
-\let\@footnotetext\V@footnotetext%
-\let\footnote\V@footnote%
-\let\LWR@footnotetext\V@footnotetext% lwarp
+ \let\@footnotetext\V@footnotetext%
+ \let\footnote\V@footnote%
+ \let\LWR@footnotetext\V@footnotetext% lwarp
}
% \end{macrocode}
% \end{noindmacro}
%
+%
% \begin{noindmacro}{\V@@footnotetext}
% Patches in a subset of \pkg{lwarp}'s \cs{LWR@footnotetext} to the
% \pkg{fancyvrb} version of \cs{V@@footnotetext}.
@@ -55457,12 +55787,12 @@ name = \chemmacros_translate:n {scheme-name}
% Place an autopage marker so that back references to citations inside
% a footnote will link closer to the footnote text, if possible.
% \begin{macrocode}
-\LWR@newautopagelabel{page}%
+ \LWR@newautopagelabel{page}%
% \end{macrocode}
%
% Take the current footnote box, then append:
% \begin{macrocode}
-\global\setbox\LWR@footnotebox=\vbox\bgroup%
+ \global\setbox\LWR@footnotebox=\vbox\bgroup%
% \end{macrocode}
% Add to any current footnotes:
% \begin{macrocode}
@@ -55480,13 +55810,9 @@ name = \chemmacros_translate:n {scheme-name}
% \end{macrocode}
% Use paragraph tags if in a tabular data cell or a \env{lateximage}:
% \changes{v0.66}{2019/02/02}{Improved \HTML\ formatting.}
+% \changes{v0.902}{2021/09/29}{\pkg{fancyvrb}: Improved footnote par tags.}
% \begin{macrocode}
- \ifthenelse{%
- \boolean{LWR@doingstartpars} \AND%
- \cnttest{\value{LWR@lateximagedepth}}{=}{0}%
- }%
- {}%
- {\LWR@htmltagc{\LWR@tagregularparagraph}\LWR@orignewline}%
+ \LWR@htmltagc{\LWR@tagregularparagraph}\LWR@orignewline%
% \end{macrocode}
% Append the footnote mark to the list:
% \begin{macrocode}
@@ -55494,8 +55820,8 @@ name = \chemmacros_translate:n {scheme-name}
% \end{macrocode}
% The footnote text will follow after \cs{V@@@footnotetext} has completed.
% \begin{macrocode}
- \bgroup%
- \aftergroup{\V@@@footnotetext}%
+ \bgroup%
+ \aftergroup\V@@@footnotetext%
% \end{macrocode}
%
% Do not generate autopages inside the footnotes, since they are
@@ -55504,11 +55830,22 @@ name = \chemmacros_translate:n {scheme-name}
\let\LWR@newautopagelabel\LWR@null@newautopagelabel%
% \end{macrocode}
% \begin{macrocode}
- \ignorespaces%
+ \ignorespaces%
}%
% \end{macrocode}
% \end{noindmacro}
%
+% \begin{noindmacro}{\V@@@footnotetext}
+% \changes{v0.902}{2021/09/29}{\pkg{fancyvrb}: Improved footnote par tags.}
+% \begin{macrocode}
+\def\V@@@footnotetext{%
+ \LWR@origtilde\LWR@orignewline%
+ \LWR@htmltagc{/\LWR@tagregularparagraph}\LWR@orignewline%
+ \strut\egroup%
+}
+% \end{macrocode}
+% \end{noindmacro}
+%
%
% \changes{v0.45}{2018/01/07}{\pkg{fancyvrb}: Improvements.}
% \begin{macrocode}
@@ -55977,7 +56314,7 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space
\LWR@formatted{FParBox@ii}
% \end{macrocode}
%
-% For \brand{MathJax}, absorb and ignore star and optional arguments:
+% For \MathJax, absorb and ignore star and optional arguments:
% \begin{macrocode}
\CustomizeMathJax{\let\LWRorigfbox\fbox}
\CustomizeMathJax{\newcommand{\LWRfboxpkgtwo}[2][]{\LWRorigfbox{#2}}}
@@ -56186,9 +56523,9 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space
%
% \DescribePackage{fixmath}
% \pkg{fixmath} is used as-is for \SVG\ math, and
-% emulated for \brand{MathJax}.
+% emulated for \MathJax.
%
-% \brand{MathJax} does not have full font support for bold italic Greek.
+% \MathJax\ does not have full font support for bold italic Greek.
% \watchout[limitations]
%
% \changes{v0.893}{2020/10/30}{\pkg{fixmath}: Added.}
@@ -57293,7 +57630,7 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space
%
% Hashed inline images are used, as there may not be Unicode support for all icons.
%
-% If using pdf\LaTeX, \prog{poppler} may issue a syntax warning
+% If using \pdfLaTeX, \prog{poppler} may issue a syntax warning
% \trouble[\prog{poppler} syntax warning]{poppler=\prog{poppler}>Syntax Warning (ligature)}
% \trouble{Syntax Warning (ligature)}
% regarding parsing a ligature component.
@@ -57302,7 +57639,7 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space
% In the following, the general strategy is to intercept \cs{symbol} and
% embed it inside a \env{lateximage}. These changes are done inside a local group.
%
-% For pdf\LaTeX, the \attribute{alt} tag includes the icon (symbol) number.
+% For \pdfLaTeX, the \attribute{alt} tag includes the icon (symbol) number.
% For \XeLaTeX\ and \LuaLaTeX, the \attribute{alt} tag is generic.
%
% \changes{v0.67}{2019/02/22}{\pkg{fontawesome}: Added.}
@@ -57486,7 +57823,7 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space
% \section{fontenc}
%
% \DescribePackage{fontenc}
-% If using pdf\LaTeX, \pkg{lwarp} used to require \pkg{fontenc} be loaded
+% If using \pdfLaTeX, \pkg{lwarp} used to require \pkg{fontenc} be loaded
% before \pkg{lwarp},
% but now \pkg{lwarp} itself loads \cs{fontenc} with T1 encoding, which
% \pkg{lwarp} requires. \pkg{fontenc} is now allowed to be loaded with another
@@ -57603,8 +57940,55 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space
% \changes{v0.36}{2017/08/15}{\pkg{footnote}: Extra \protect\HTML\ source space after paragraphs.}
%
% \codehtml
+%
+% \pkg{footnote} patches \cs{@makefntext} in a strange way.
+% It must be restored to the expected defintion before loading \pkg{footnote},
+% then replaced again after.
% \begin{macrocode}
+\long\def\@makefntext#1{\textsuperscript{\@thefnmark}~#1}
+
\LWR@ProvidesPackagePass{footnote}[1997/01/28]
+
+\long\def\@makefntext#1{\textsuperscript{\@thefnmark}~{#1}}
+% \end{macrocode}
+
+
+% \changes{v0.902}{2021/09/20}{\pkg{footnote}: Improved par tags.}
+% \begin{macrocode}
+\def\spewnotes{%
+ \endgroup%
+ \if@savingnotes\else\ifvoid\fn@notes\else\begingroup%
+ \let\@makefntext\@empty%
+ \let\@finalstrut\@gobble%
+ \let\rule\@gobbletwo%
+ \booltrue{LWR@spewingnotes}% lwarp
+ \@footnotetext{\unvbox\fn@notes}%
+ \endgroup\fi\fi%
+}
+\let\endsavenotes\spewnotes
+
+
+\def\fn@fntext#1{%
+ \ifx\ifmeasuring@\@@undefined%
+ \expandafter\@secondoftwo\else\expandafter\@iden%
+ \fi%
+ {\ifmeasuring@\expandafter\@gobble\else\expandafter\@iden\fi}%
+ {%
+ \global\setbox\fn@notes\vbox{%
+ \unvbox\fn@notes%
+ \LWR@htmltagc{\LWR@tagregularparagraph}% lwarp
+ \LWR@orignewline% lwarp
+ \fn@startnote%
+ \@makefntext{%
+ \rule\z@\footnotesep%
+ \ignorespaces%
+ #1%
+ \@finalstrut\strutbox%
+ }%
+ \fn@endnote%
+ }%
+ }%
+}
% \end{macrocode}
%
% Removed print-version formatting:
@@ -57617,23 +58001,34 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space
% \let\fn@endnote\color@endgroup% *** conflicts with lwarp
\def\fn@endnote{%
-\LWR@htmltagc{/\LWR@tagregularparagraph}%
-\LWR@orignewline%
+ \LWR@origtilde\LWR@orignewline%
+ \LWR@htmltagc{/\LWR@tagregularparagraph}\LWR@orignewline%
+ \LWR@origtilde\LWR@orignewline%
}
% \end{macrocode}
%
% Removed print-version formatting:
+% \changes{v0.902}{2021/09/18}{\pkg{footnote}: Fixed missing number.}
% \begin{macrocode}
\def\fn@startfntext{%
\setbox\z@\vbox\bgroup%
+ \LWR@htmltagc{\LWR@tagregularparagraph}% lwarp
+ \LWR@orignewline% lwarp
\fn@startnote%
+ \fn@prefntext% Req'd for numbering.
+% \rule\z@\footnotesep%
\ignorespaces%
}
+
% \end{macrocode}
%
% Removed print-version formatting, added closing paragraph tag:
+%
+% \changes{v0.902}{2021/09/20}{\pkg{footnote}: Improved par tags.}
% \begin{macrocode}
\def\fn@endfntext{%
+ \fn@postfntext%
+ \LWR@origtilde\LWR@orignewline%
\LWR@htmltagc{/\LWR@tagregularparagraph}%
\LWR@orignewline%
\egroup%
@@ -57641,6 +58036,7 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space
\let\@makefntext\@empty%
\let\@finalstrut\@gobble%
\LetLtxMacro\rule\@gobbletwo% *8* also the optional argument?
+ \booltrue{LWR@spewingnotes}% lwarp
\@footnotetext{\unvbox\z@}%
\endgroup%
}
@@ -57706,6 +58102,7 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space
% Discard all options for \pkg{lwarp-footnotehyper}:
% \begin{macrocode}
\RequirePackage{footnote}
+
\LWR@ProvidesPackageDrop{footnotehyper}[2018/01/23]
% \end{macrocode}
%
@@ -57875,7 +58272,7 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space
%
% \DescribePackage{fouridx}
% \pkg{fouridx} works as-is with \SVG\ math, and
-% is emulated for \brand{MathJax}.
+% is emulated for \MathJax.
%
% \changes{v0.80}{2020/02/10}{\pkg{fouridx}: Added.}
%
@@ -57914,12 +58311,12 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space
%
% \DescribePackage{fourier}
% \pkg{fourier} is used as-is for \SVG\ math, and is
-% emulated for \brand{MathJax}.
+% emulated for \MathJax.
%
-% The \brand{MathJax} emulation ignores all package options,
+% The \MathJax\ emulation ignores all package options,
% \trouble[limitations]{fourier=\pkg{fourier}}
% except \optn{sloped} and \optn{upright} are honored for Greek characters,
-% but \brand{MathJax} cannot yet honor these for Latin characters.
+% but \MathJax\ cannot yet honor these for Latin characters.
%
% The dedicated macros for upright and italic Greek letters do work correctly.
%
@@ -58630,10 +59027,10 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space
%
% \DescribePackage{gensymb}
% \pkg{gensymb} works as-is for \SVG\ math, and
-% uses the \brand{MathJax} package.
+% uses the \MathJax\ package.
%
% \changes{v0.80}{2020/02/09}{\pkg{gensymb}: Added.}
-% \changes{v0.901}{2021/08/26}{\pkg{gensymb}: Use \brand{MathJax} 3.2 package.}
+% \changes{v0.901}{2021/08/26}{\pkg{gensymb}: Use \MathJax\ 3.2 package.}
%
% \codehtml
%
@@ -59608,7 +60005,7 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space
% Temporarily prevent underfull \cs{hbox} warnings.
% \changes{v0.898}{2021/05/24}{Reduced underfull \cs{hbox} warnings.}
% \begin{macrocode}
- \hbadness=10000\relax%
+ \hbadness=10000\relax%
% \end{macrocode}
%
% Reset some defaults, possibly will be changed below if options were given:
@@ -60194,7 +60591,7 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space
}%
\textquotedbl%
}%
- \let\item\LWR@itemizeitem%
+ \LetLtxMacro\item\LWR@itemizeitem%
\list{}{}%
}
{\endlist}
@@ -60317,7 +60714,7 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space
% \credits{Andy Buckley}
%
% \DescribePackage{hepunits}
-% \pkg{hepunits} is used as-is, and emulated for \brand{MathJax}.
+% \pkg{hepunits} is used as-is, and emulated for \MathJax.
%
% \changes{v0.89}{2020/07/23}{\pkg{hepunits}: Added.}
%
@@ -60437,7 +60834,7 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space
% \end{macrocode}
%
%
-% For \brand{MathJax}. A simple \cs{hline} is used.
+% For \MathJax. A simple \cs{hline} is used.
% \begin{macrocode}
\begin{warpMathJax}
\CustomizeMathJax{\newcommand{\hhline}[1]{\hline}}
@@ -60462,7 +60859,7 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space
% \credits{Harald Harders}
%
% \DescribePackage{hhtensor}
-% \pkg{hhtensor} is used as-is, and emulated for \brand{MathJax}.
+% \pkg{hhtensor} is used as-is, and emulated for \MathJax.
%
% \changes{v0.88}{2020/07/23}{\pkg{hhtensor}: Added.}
%
@@ -61061,6 +61458,7 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
}
\newcommand*{\hypertarget}{%
+ \LWR@ensuredoingapar%
\begingroup%
\LWR@linkcatcodes%
\LWR@hypertargetb%
@@ -61694,9 +62092,9 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
% \HTML\ versions of \cs{item}, etc.:
% \begin{macrocode}
\appto\theindex{%
- \let\item\LWR@indexitem%
- \let\subitem\LWR@indexsubitem%
- \let\subsubitem\LWR@indexsubsubitem%
+ \LetLtxMacro\item\LWR@indexitem%
+ \LetLtxMacro\subitem\LWR@indexsubitem%
+ \LetLtxMacro\subsubitem\LWR@indexsubsubitem%
}
% \end{macrocode}
% \end{noindmacro}
@@ -61812,9 +62210,9 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
\renewenvironment*{theindex}{%
\imki@maybeaddtotoc
\imki@indexlevel{\indexname}
- \let\item\LWR@indexitem%
- \let\subitem\LWR@indexsubitem%
- \let\subsubitem\LWR@indexsubsubitem%
+ \LetLtxMacro\item\LWR@indexitem%
+ \LetLtxMacro\subitem\LWR@indexsubitem%
+ \LetLtxMacro\subsubitem\LWR@indexsubsubitem%
}{}
}% AtBeginDocument
% \end{macrocode}
@@ -61961,9 +62359,9 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
\index@prologue
\bigskip
\fi
- \let\item\LWR@indexitem%
- \let\subitem\LWR@indexsubitem%
- \let\subsubitem\LWR@indexsubsubitem%
+ \LetLtxMacro\item\LWR@indexitem%
+ \LetLtxMacro\subitem\LWR@indexsubitem%
+ \LetLtxMacro\subsubitem\LWR@indexsubsubitem%
}{}
}% AtBeginDocument
% \end{macrocode}
@@ -62077,10 +62475,10 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
%
% \DescribePackage{isomath}
% \pkg{isomath} is used as-is for \SVG\ math, and
-% emulated for \brand{MathJax}.
+% emulated for \MathJax.
%
-% \brand{MathJax} does not provide a sans math font, so sans is typeset as roman.
-% \trouble[\brand{MathJax} sans]{isomath=\pkg{isomath}}
+% \MathJax\ does not provide a sans math font, so sans is typeset as roman.
+% \trouble[\MathJax\ sans]{isomath=\pkg{isomath}}
%
% \changes{v0.895}{2021/02/08}{\pkg{isomath}: Added.}
%
@@ -62123,7 +62521,7 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
%
% \DescribePackage{isotope}
% \pkg{isotope} is patched for use by \pkg{lwarp} with \SVG\ math,
-% and emulated for \brand{MathJax}.
+% and emulated for \MathJax.
%
% \changes{v0.895}{2021/01/10}{\pkg{isotope}: Added.}
%
@@ -62949,9 +63347,9 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
%
% \DescribePackage{kpfonts}
% \pkg{kpfonts} is used as-is for \SVG\ math, and is
-% emulated for \brand{MathJax}.
+% emulated for \MathJax.
%
-% The \brand{MathJax} emulation honors the options
+% The \MathJax\ emulation honors the options
% \trouble[limitations]{kpfonts=\pkg{kpfonts}}
% \optn{uprightRoman} for \cs{D} only,
% \optn{classicReIm},
@@ -63057,9 +63455,9 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
%
% \DescribePackage{kpfonts-otf}
% \pkg{kpfonts-otf} is used as-is for \SVG\ math, and is
-% emulated for \brand{MathJax}.
+% emulated for \MathJax.
%
-% The \brand{MathJax} emulation honors the options
+% The \MathJax\ emulation honors the options
% \trouble[limitations]{kpfonts-otf=\pkg{kpfonts-otf}}
% \optn{fancyReIm},
% \optn{mathcal},
@@ -63070,7 +63468,7 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
%
% The \pkg{unicode-math} dedicated macros for Greek work correctly.
%
-% The \brand{MathJax} emulation does not change with the use of \cs{mathversion}.
+% The \MathJax\ emulation does not change with the use of \cs{mathversion}.
% \watchout[\cs{mathversion}]
% Whatever emulation is established at the begin of the document will remain.
%
@@ -63413,7 +63811,7 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
%
% \DescribePackage{leftidx}
% \pkg{leftidx} works as-is with \SVG\ math, and
-% is emulated for \brand{MathJax}.
+% is emulated for \MathJax.
%
% \changes{v0.80}{2020/02/10}{\pkg{leftidx}: Added.}
%
@@ -63548,18 +63946,18 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
%
% \DescribePackage{libertinust1math}
% \pkg{libertinust1math} is used as-is for \SVG\ math, and is
-% emulated for \brand{MathJax}.
+% emulated for \MathJax.
%
-% The \brand{MathJax} emulation honors
+% The \MathJax\ emulation honors
% \optn{frenchmath} for Greek but not Latin characters,
% and \optn{slantedGreek}, \optn{uprightGreek}, and \optn{ISO}
% also adjust Greek characters.
-% \brand{MathJax} cannot yet honor options for adjusting Latin characters.
+% \MathJax\ cannot yet honor options for adjusting Latin characters.
%
% The dedicated macros for upright and italic Greek letters do work correctly.
%
% Some of the symbol font macros such as \cs{mathsfbf} do not use a sans font
-% because \brand{MathJax} does not yet have sans Greek.
+% because \MathJax\ does not yet have sans Greek.
%
% \SVG\ math honors all font choices, and should appear the same as the printed output.
%
@@ -63601,7 +63999,7 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
\CustomizeMathJax{\let\uppartial\partial}% not upright
% \end{macrocode}
%
-% \changes{v0.895}{2021/01/04}{\pkg{libertinust1math}: \brand{MathJax}: Fixed for Greek, ignoring sans.}
+% \changes{v0.895}{2021/01/04}{\pkg{libertinust1math}: \MathJax: Fixed for Greek, ignoring sans.}
% \begin{macrocode}
\CustomizeMathJax{\let\mathsfbf\mathbf}% not sans
% \CustomizeMathJax{\newcommand{\mathsfbf}[1]{%
@@ -63612,7 +64010,7 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
\CustomizeMathJax{\let\mathbfit\boldsymbol}
% \end{macrocode}
%
-% \changes{v0.895}{2021/01/04}{\pkg{libertinust1math}: \brand{MathJax}: Fixed for Greek, ignoring sans.}
+% \changes{v0.895}{2021/01/04}{\pkg{libertinust1math}: \MathJax: Fixed for Greek, ignoring sans.}
% \begin{macrocode}
% \CustomizeMathJax{\newcommand{\mathsfbfit}[1]{\boldsymbol{#1}}}% not sans
\CustomizeMathJax{\let\mathsfbfit\mathbfit}% not sans
@@ -63621,7 +64019,7 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
% }}%
% \end{macrocode}
%
-% \changes{v0.895}{2021/01/04}{\pkg{libertinust1math}: \brand{MathJax}: Fixed for Greek, ignoring sans.}
+% \changes{v0.895}{2021/01/04}{\pkg{libertinust1math}: \MathJax: Fixed for Greek, ignoring sans.}
% \begin{macrocode}
\CustomizeMathJax{\let\mathsfit\mathit}% not sans
% \CustomizeMathJax{\newcommand{\mathsfit}[1]{%
@@ -64243,7 +64641,7 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
%
% \cs{LWR@forcenewpage} is moved to the start to avoid a spurrious bug
% with paragraph handling and conditionals.
-% \changes{v0.891}{2020/09/16}{\pkg{listings}: Fix for \brand{MathJax}: Moved \cs{LWR@forcenewpage} to start.}
+% \changes{v0.891}{2020/09/16}{\pkg{listings}: Fix for \MathJax: Moved \cs{LWR@forcenewpage} to start.}
% \begin{macrocode}
\lst@ifdisplaystyle% lwarp
\LWR@forcenewpage% lwarp
@@ -64370,7 +64768,7 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
\LWR@traceinfo{lst@Init: About to create verbatim.}% lwarp
\let\lsthk@EveryPar\relax% lwarp
% \end{macrocode}
-% \changes{v0.891}{2020/09/16}{\pkg{listings}: Fix for \brand{MathJax}: Moved \cs{LWR@forcenewpage} to start.}
+% \changes{v0.891}{2020/09/16}{\pkg{listings}: Fix for \MathJax: Moved \cs{LWR@forcenewpage} to start.}
% \begin{macrocode}
\LWR@atbeginverbatim{programlisting}% lwarp
@@ -65278,11 +65676,28 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
% offset and thickness control for \cs{uline}, etc.
%
% \changes{v0.82}{2020/03/22}{\pkg{luatexko}: Added.}
+% \changes{v0.902}{2021/09/30}{\pkg{luatexko}: Updated to v3.3.}
%
% \codehtml
%
% \begin{macrocode}
-\LWR@ProvidesPackagePass{luatexko}[2020/03/20]
+\LWR@ProvidesPackagePass{luatexko}[2021/07/10]
+% \end{macrocode}
+%
+%
+% \begin{macrocode}
+\protected\def\typesetvertical{}
+\protected\def\typesethorizontal{}
+
+\def\verticaltypesetting{\BlockClass{verticalrl}}
+\def\beginverticaltypesetting{\BlockClass{verticalrl}}
+\def\endverticaltypesetting{\endBlockClass}
+
+\protected\def\vertical#1{\BlockClass{verticalrl}}
+\protected\def\endvertical{\endBlockClass}
+\protected\def\horizontal#1{\BlockClass{horizontaltb}}
+\protected\def\endhorizontal{\endBlockClass}
+\DeclareDocumentCommand{\vertlatin}{m}{#1}
% \end{macrocode}
%
% \begin{macrocode}
@@ -65291,10 +65706,13 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
\InlineClass[text-emphasis-style: dot]{dotemph}{#1}%
}
\LWR@formatted{dotemph}
+% \end{macrocode}
+% \changes{v0.902}{2021/09/30}{\pkg{luatexko}: Removed deprecated \element{rb}.}
+% \begin{macrocode}
\newcommand{\LWR@HTML@ruby}[2]{%
\LWR@htmltagc{ruby}%
- \LWR@htmltagc{rb}#1\LWR@htmltagc{/rb}%
+ #1%
\LWR@htmltagc{rp}(\LWR@htmltagc{/rp}%
\LWR@htmltagc{rt}#2\LWR@htmltagc{/rt}%
\LWR@htmltagc{rp})\LWR@htmltagc{/rp}%
@@ -66075,8 +66493,8 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
}
% \end{macrocode}
%
-% For \brand{MathJax}:
-% \changes{v0.82}{2020/03/14}{\pkg{marginnote}: Added \brand{MathJax} emulation.}
+% For \MathJax:
+% \changes{v0.82}{2020/03/14}{\pkg{marginnote}: Added \MathJax\ emulation.}
% \begin{macrocode}
\begin{warpMathJax}
\CustomizeMathJax{\newcommand{\LWRmarginnote}[1][]{}}
@@ -66147,11 +66565,11 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
%
% \DescribePackage{mathalpha}
% \pkg{mathalpha} is used as-is for \SVG\ math, and is
-% emulated for \brand{MathJax}.
+% emulated for \MathJax.
%
-% The \brand{MathJax} emulation ignores all package options,
+% The \MathJax\ emulation ignores all package options,
% \trouble[limitations]{mathalpha=\pkg{mathalpha}}
-% and some bold fonts may not be not supported by \brand{MathJax}.
+% and some bold fonts may not be not supported by \MathJax.
%
% \changes{v0.89}{2020/08/31}{\pkg{mathalpha}: Added.}
%
@@ -66187,7 +66605,7 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
%
% \DescribePackage{mathastext}
% \pkg{mathastext} is used as-is for \SVG\ math,
-% and emulated for \brand{MathJax}.
+% and emulated for \MathJax.
%
% \changes{v0.893}{2020/10/14}{\pkg{mathastext}: Added.}
%
@@ -66263,7 +66681,7 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
%
% \DescribePackage{mathcomp}
% \pkg{mathcomp} is supported as-is for \SVG\ math, and
-% is emulated for \brand{MathJax}.
+% is emulated for \MathJax.
%
% \changes{v0.80}{2020/02/09}{\pkg{mathcomp}: Added.}
%
@@ -66305,9 +66723,9 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
%
% \DescribePackage{mathdesign}
% \pkg{mathdesign} is used as-is for \SVG\ math, and is
-% emulated for \brand{MathJax}.
+% emulated for \MathJax.
%
-% The \brand{MathJax} emulation ignores all package options
+% The \MathJax\ emulation ignores all package options
% \trouble[limitations]{mathdesign=\pkg{mathdesign}}
% except \optn{greekuppercase} and \optn{greeklowercase}.
% The dedicated macros for upright and italic greek letters work correctly,
@@ -66324,7 +66742,7 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
\LWR@ProvidesPackagePass{mathdesign}[2013/08/29]
% \end{macrocode}
%
-% For \brand{MathJax}:
+% For \MathJax:
% \begin{macrocode}
\LWR@origRequirePackage{lwarp-common-mathjax-letters}
@@ -66428,7 +66846,7 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
%
% \DescribePackage{mathdots}
% \pkg{mathdots} is used as-is for \SVG\ math, and
-% emulated for \brand{MathJax}.
+% emulated for \MathJax.
%
% \changes{v0.80}{2020/02/16}{\pkg{mathdots}: Added.}
% \changes{v0.891}{2020/09/08}{\pkg{mathdots}: Added more macros, \cs{mathinner}.}
@@ -66472,7 +66890,7 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
%
% \DescribePackage{mathfixs}
% \pkg{mathfixs} is used as-is for \SVG\ math, and
-% is emulated for \brand{MathJax}.
+% is emulated for \MathJax.
%
% Greek letters are unchanged.\watchout
%
@@ -66515,9 +66933,9 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
%
% \DescribePackage{mathpazo}
% \pkg{mathpazo} is used as-is for \SVG\ math, and is
-% emulated for \brand{MathJax}.
+% emulated for \MathJax.
%
-% The \brand{MathJax} emulation ignores all package options.
+% The \MathJax\ emulation ignores all package options.
% \trouble[limitations]{mathpazo=\pkg{mathpazo}}
% The dedicated macros for upright greek letters do work correctly.
%
@@ -66532,7 +66950,7 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
\LWR@ProvidesPackagePass{mathpazo}[2020/03/25]
% \end{macrocode}
%
-% For \brand{MathJax}:
+% For \MathJax:
% \begin{macrocode}
\LWR@origRequirePackage{lwarp-common-mathjax-letters}
@@ -66567,9 +66985,9 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
%
% \DescribePackage{mathptmx}
% \pkg{mathptmx} is used as-is for \SVG\ math, and is
-% emulated for \brand{MathJax}.
+% emulated for \MathJax.
%
-% The \brand{MathJax} emulation ignores all package options.
+% The \MathJax\ emulation ignores all package options.
% \trouble[limitations]{mathptmx=\pkg{mathptmx}}
% The dedicated macros for upright greek letters do work correctly.
%
@@ -66584,7 +67002,7 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
\LWR@ProvidesPackagePass{mathptmx}[2020/03/25]
% \end{macrocode}
%
-% For \brand{MathJax}:
+% For \MathJax:
% \begin{macrocode}
\LWR@origRequirePackage{lwarp-common-mathjax-letters}
@@ -66618,11 +67036,11 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
%
% \DescribePackage{mathspec}
% \pkg{mathspec} is used as-is with \SVG\ math,
-% and is emulated for \brand{MathJax}.
+% and is emulated for \MathJax.
%
% Double quotes (\cs{"} and the |"| character)
% \trouble[quotes]{mathspec=\pkg{mathspec}}
-% are removed during \brand{MathJax} emulation,
+% are removed during \MathJax\ emulation,
% but this also includes inside \cs{text}.
%
% \changes{v0.893}{2020/11/22}{\pkg{mathspec}: Added.}
@@ -66744,7 +67162,7 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
%
% \DescribePackage{mathtools}
% \pkg{mathtools} is patched for use by \pkg{lwarp}.
-% Emulation macros are provided for \brand{MathJax}.
+% Emulation macros are provided for \MathJax.
%
% \limitsmathtools
%
@@ -66792,15 +67210,15 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
% \end{macrocode}
%
%
-% For \brand{MathJax}.
+% For \MathJax.
%
-% The \brand{MathJax} package is used, and improvements are added.
+% The \MathJax\ package is used, and improvements are added.
%
-% \changes{v0.79}{2020/01/26}{\pkg{mathtools}: Added \brand{MathJax} emulation.}
+% \changes{v0.79}{2020/01/26}{\pkg{mathtools}: Added \MathJax\ emulation.}
% \changes{v0.87}{2020/05/20}{\pkg{mathtools}: Updated starred macros.}
% \changes{v0.87}{2020/05/20}{\pkg{mathtools}: Improved \cs{underbraket}, \cs{overbracket}.}
% \changes{v0.891}{2020/09/19}{\pkg{mathtools}: Improved \cs{underbraket}, \cs{overbracket}.}
-% \changes{v0.901}{2021/08/26}{\pkg{mathtools}: Uses \brand{MathJax} 3.2 package.}
+% \changes{v0.901}{2021/08/26}{\pkg{mathtools}: Uses \MathJax\ 3.2 package.}
% \begin{macrocode}
\begin{warpMathJax}
\CustomizeMathJax{\require{mathtools}}
@@ -66968,7 +67386,7 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
%
% \DescribePackage{mattens}
% \pkg{mattens} is used as-is for \SVG\ math,
-% and is emulated for \brand{MathJax}.
+% and is emulated for \MathJax.
%
% \changes{v0.895}{2021/02/11}{\pkg{mattens}: Added.}
%
@@ -67084,9 +67502,9 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
%
% \DescribePackage{maybemath}
% \pkg{maybemath} is used as-is for \SVG\ math,
-% and is emulated for \brand{MathJax}.
+% and is emulated for \MathJax.
%
-% \brand{MathJax} is not able to detect the surrounding text font,
+% \MathJax\ is not able to detect the surrounding text font,
% \trouble[no effect]{maybemath=\pkg{maybemath}}
% so all \pkg{maybemath} macros are ignored.
%
@@ -67766,7 +68184,7 @@ background:
%
% \DescribePackage{mdwmath}
% \pkg{mdwmath} is used as-is for \SVG\ math, and
-% is emulated for \brand{MathJax}.
+% is emulated for \MathJax.
%
% \changes{v0.895}{2021/01/11}{\pkg{mdwmath}: Added.}
%
@@ -68100,21 +68518,21 @@ background:
% \DescribePackage{mhchem}
% \pkg{mhchem} is patched for use by \pkg{lwarp}.
%
-% Without \brand{MathJax}, \pkg{mhchem} expressions are converted to \SVG\ math.
-% \margintag{without \brand{MathJax}}
+% Without \MathJax, \pkg{mhchem} expressions are converted to \SVG\ math.
+% \margintag{without \MathJax}
% Inline expressions use hashed filenames to allow reuse,
% and assume that any \pkg{mhchem} options are global.
%
-% For \brand{MathJax}, the \pkg{mhchem} extension is used if
-% \trouble{mathjax=\brand{MathJax}>mhchem=\pkg{mhchem}}
-% \trouble{mhchem=\pkg{mhchem}>mathjax=\brand{MathJax}}
-% \margintag{\brand{MathJax} with \pkg{mhchem} extension}
+% For \MathJax, the \pkg{mhchem} extension is used if
+% \trouble{mathjax=\MathJax>mhchem=\pkg{mhchem}}
+% \trouble{mhchem=\pkg{mhchem}>mathjax=\MathJax}
+% \margintag{\MathJax\ with \pkg{mhchem} extension}
% the \pkg{mhchem} expression is used inside a math expression:
% \begin{sourceverb}
% $\ce{C6H5-CHO}$
% \end{sourceverb}
% To force the use of \SVG\ math for an expression which does not work with
-% \brand{MathJax},
+% \MathJax,
% place the expression between \cs{displaymathother} and \cs{displaymathnormal}:
% \begin{sourcedisplay}
% \cs{displaymathother} \\
@@ -68126,7 +68544,7 @@ background:
% \marginpar{not inside math}
% expressions into \SVG\ math images.
%
-% When producing \HTML\ output without the \brand{MathJax} \pkg{mhchem} extension,
+% When producing \HTML\ output without the \MathJax\ \pkg{mhchem} extension,
% \pkg{lwarp} does not support
% \trouble[nested math]{mhchem=\pkg{mhchem}>nested dollar signs}
% the use of nested dollar signs in \pkg{mhchem} expressions.
@@ -68153,7 +68571,7 @@ background:
%
% \changes{v0.51}{2018/03/04}{\pkg{mhchem}: Added.}
% \changes{v0.74}{2019/08/26}{\pkg{mhchem}: Modified for new \env{lateximage}.}
-% \changes{v0.87}{2020/06/02}{\pkg{mhchem}: Now uses \brand{MathJax} v3 extension.}
+% \changes{v0.87}{2020/06/02}{\pkg{mhchem}: Now uses \MathJax\ v3 extension.}
%
% \codehtml
%
@@ -68598,29 +69016,29 @@ background:
%
% \DescribePackage{mismath}
% \pkg{mismath} is patched for \SVG\ math, and
-% emulated for \brand{MathJax}.
+% emulated for \MathJax.
%
% \cs{enumber}, \cs{inumber}, \cs{jnumber}, and \cs{pinumber} are
-% \watchout[\brand{MathJax}]
-% ignored for \brand{MathJax}, except that \cs{itpi} is made available as a
+% \watchout[\MathJax]
+% ignored for \MathJax, except that \cs{itpi} is made available as a
% clone of \cs{pi}.
%
-% For \brand{MathJax}, \cs{boldvect} and \cs{arrowvect} are honored if
+% For \MathJax, \cs{boldvect} and \cs{arrowvect} are honored if
% in the preamble.
%
% If \cs{boldvectcommand} is set to \cs{mathbf} in the preamble,
-% it will be used for \brand{MathJax}, otherwise it will default to \cs{mathit}.
+% it will be used for \MathJax, otherwise it will default to \cs{mathit}.
% \cs{boldvectcommand} may also be set with \cs{CustomizeMathJax} in
% the preamble. See \cref{sec:limitscustomizemathjax}.
% Note that as of this writing there is not a bold italic font across all
-% \brand{MathJax} fonts.
+% \MathJax\ fonts.
%
% If \cs{probastyle} is set to \cs{mathbb} in the preamble,
-% it will be used for \brand{MathJax}, otherwise it will default to \cs{mathrm}.
+% it will be used for \MathJax, otherwise it will default to \cs{mathrm}.
% \cs{probastyle} may be set with \cs{CustomizeMathJax} in the preamble.
%
% If \cs{mathset} is set to \cs{mathbb} in the preamble,
-% it will be used for \brand{MathJax}, otherwise it will default to \cs{mathbf}.
+% it will be used for \MathJax, otherwise it will default to \cs{mathbf}.
% \cs{mathset} may be set with \cs{CustomizeMathJax} in the preamble.
%
% \changes{v0.80}{2020/02/14}{\pkg{mismath}: Added.}
@@ -68632,7 +69050,7 @@ background:
\LWR@ProvidesPackagePass{mismath}[2019/12/27]
% \end{macrocode}
%
-% For \brand{MathJax}, used in the \HTML\ comment before the environment.
+% For \MathJax, used in the \HTML\ comment before the environment.
% \begin{macrocode}
\ifbool{mathjax}{
\RenewEnviron{mathcols}{%
@@ -68820,7 +69238,7 @@ background:
% \credits{Heiko Oberdiek}
%
% \DescribePackage{mleftright}
-% \pkg{mleftright} is used as-is, and is emulated for \brand{MathJax}.
+% \pkg{mleftright} is used as-is, and is emulated for \MathJax.
%
% \changes{v0.88}{2020/07/22}{\pkg{mleftright}: Added.}
%
@@ -69280,6 +69698,7 @@ background:
% \limitsmultimedia
%
% \changes{v0.71}{2019/04/22}{\pkg{multimedia}: Added.}
+% \changes{v0.902}{2021/09/07}{\pkg{multimedia}: Added \cs{hyperlinksound}, \cs{hyperlinkmute}.}
%
% \codehtml
%
@@ -69294,6 +69713,10 @@ background:
\LetLtxMacro\sound\LWR@multimedia
\newcommand{\hyperlinkmovie}[3][]{}
+
+\newcommand{\hyperlinksound}[3][]{}
+
+\newcommand{\hyperlinkmute}
% \end{macrocode}
%
% \iffalse
@@ -69315,7 +69738,7 @@ background:
%
% \DescribePackage{multiobjective}
% \pkg{multiobjective} is used as-is for \SVG\ math, and
-% is emulated for \brand{MathJax}.
+% is emulated for \MathJax.
%
% \changes{v0.81}{2020/03/03}{\pkg{multiobjective}: Added.}
%
@@ -69582,9 +70005,9 @@ class=\textquotedbl{}td%
% \end{macro}
%
%
-% For \brand{MathJax}.
+% For \MathJax.
% Only the text is used. All other parameters are ignored.
-% \changes{v0.79}{2020/01/27}{\pkg{multirow}: Add: \brand{MathJax} emulation.}
+% \changes{v0.79}{2020/01/27}{\pkg{multirow}: Add: \MathJax\ emulation.}
% \begin{macrocode}
\begin{warpMathJax}
% \multirow[vpos]{num}[bigstruts]{width}[vmove]{text}
@@ -70137,9 +70560,9 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak
% \credits{Alexander I. Rozhenko}
%
% \DescribePackage{nccfoots}
-% \pkg{nccfoots} is used as-is, and emulated for \brand{MathJax}.
+% \pkg{nccfoots} is used as-is, and emulated for \MathJax.
%
-% \changes{v0.82}{2020/03/14}{\pkg{nccfoots}: Added \brand{MathJax} emulation.}
+% \changes{v0.82}{2020/03/14}{\pkg{nccfoots}: Added \MathJax\ emulation.}
%
% \codehtml
%
@@ -70147,7 +70570,7 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak
\LWR@ProvidesPackagePass{nccfoots}[2005/02/03]
% \end{macrocode}
%
-% For \brand{MathJax}.
+% For \MathJax.
% There is no way to test for an empty argument, \watchout
% so the mark is not automatically duplicated.
% \begin{macrocode}
@@ -70177,7 +70600,7 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak
%
% \DescribePackage{nccmath}
% \pkg{nccmath} is patched for use by \pkg{lwarp}, and
-% emulated for \brand{MathJax}.
+% emulated for \MathJax.
%
% \changes{v0.80}{2020/02/13}{\pkg{nccmath}: Added.}
%
@@ -70230,7 +70653,7 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak
\CustomizeMathJax{\newcommand{\dmulticolumn}[3]{#3}}
% \end{macrocode}
%
-% As of v0.86, \brand{MathJax} v3 does not offer \cs{\textbackslash*}, so
+% As of v0.86, \MathJax\ v3 does not offer \cs{\textbackslash*}, so
% the unstarred version is used here.
% \changes{v0.86}{2020/05/10}{\pkg{nccmath}: Fixed \cs{nr}, added starred.}
% \changes{v0.87}{2020/05/20}{\pkg{nccmath}: Updated starred, improved \cs{underref}.}
@@ -70254,7 +70677,7 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak
\CustomizeMathJax{\newcommand{\displaybreak}[1][]{}}
% \end{macrocode}
%
-% \cs{eq}, \cs{eqs}, \cs{eqalign} are created by \LaTeX, not \brand{MathJax}.
+% \cs{eq}, \cs{eqs}, \cs{eqalign} are created by \LaTeX, not \MathJax.
%
% \begin{macrocode}
\end{warpMathJax}
@@ -70311,9 +70734,9 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak
%
% \DescribePackage{newpxmath}
% \pkg{newpxmath} is used as-is for \SVG\ math, and is
-% emulated for \brand{MathJax}.
+% emulated for \MathJax.
%
-% The \brand{MathJax} emulation ignores all package options,
+% The \MathJax\ emulation ignores all package options,
% \trouble[limitations]{newpxmath=\pkg{newpxmath}}
% except \optn{slantedGreek} is honored.
% The dedicated macros for upright and italic Greek do work correctly.
@@ -70325,7 +70748,7 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak
%
% \codehtml
%
-% The \brand{MathJax} code from \pkg{newtxmath} is used:
+% The \MathJax\ code from \pkg{newtxmath} is used:
% \begin{macrocode}
\LWR@ProvidesPackagePass{newpxmath}[2020/01/09]
@@ -70373,12 +70796,12 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak
%
% \DescribePackage{newtxmath}
% \pkg{newtxmath} is used as-is for \SVG\ math, and is
-% emulated for \brand{MathJax}.
+% emulated for \MathJax.
%
-% The \brand{MathJax} emulation ignores all package options,
+% The \MathJax\ emulation ignores all package options,
% \trouble[limitations]{newtxmath=\pkg{newtxmath}}
% except \optn{slantedGreek} is honored, and
-% except that bold italic Latin letters are not defined for \brand{MathJax} if
+% except that bold italic Latin letters are not defined for \MathJax\ if
% the option is not selected.
%
% The dedicated macros for upright and italic Greek and bold italic Latin letters
@@ -70451,9 +70874,9 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak
%
% \DescribePackage{newtxsf}
% \pkg{newtxsf} is used as-is for \SVG\ math, and is
-% emulated for \brand{MathJax}.
+% emulated for \MathJax.
%
-% The \brand{MathJax} emulation ignores all package options,
+% The \MathJax\ emulation ignores all package options,
% \trouble[limitations]{newtxsf=\pkg{newtxsf}}
% except \optn{slantedGreek} is honored.
% The dedicated macros for upright and italic Greek and bold italic Latin letters
@@ -71055,12 +71478,12 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak
%
% \DescribePackage{nicematrix}
% \pkg{nicematrix} is used as-is for \SVG\ math, and
-% is emulated for \brand{MathJax}.
+% is emulated for \MathJax.
%
-% Keys/values are ignored in \brand{MathJax}.
-% \trouble[\brand{MathJax}]{nicematrix=\pkg{nicematrix}}
+% Keys/values are ignored in \MathJax.
+% \trouble[\MathJax]{nicematrix=\pkg{nicematrix}}
% \cs{Cdots}, etc. do not span multiple cells.
-% \env{AutoNiceMatrix}, etc. are not supported for \brand{MathJax}.
+% \env{AutoNiceMatrix}, etc. are not supported for \MathJax.
% \SVG\ math output preserves all nicematrix features.
% To force \SVG\ output for one or more consecutive
% math expressions, for inline math use
@@ -71203,7 +71626,7 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak
\CustomizeMathJax{\newcommand{\Vdotsfor}[1]{\vdots}}
% \end{macrocode}
%
-% There is no way to emulate \env{AutoNiceMatrix} in \brand{MathJax}.
+% There is no way to emulate \env{AutoNiceMatrix} in \MathJax.
% \begin{macrocode}
\CustomizeMathJax{\newcommand{\AutoNiceMatrix}[2]{\text{(AutoNiceMatrix #1)}}}
\CustomizeMathJax{\let\pAutoNiceMatrix\AutoNiceMatrix}
@@ -71232,7 +71655,7 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak
%
% \DescribePackage{noitcrul}
% \pkg{noitcrul} is used as-is for \SVG\, and
-% emulated for \brand{MathJax}.
+% emulated for \MathJax.
%
% \changes{v0.80}{2020/02/13}{\pkg{noitcrul}: Added.}
%
@@ -72526,8 +72949,8 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak
% \end{macrocode}
%
%
-% For \brand{MathJax}:
-% \changes{v0.82}{2020/03/14}{\pkg{pagenote}: Added \brand{MathJax} emulation.}
+% For \MathJax:
+% \changes{v0.82}{2020/03/14}{\pkg{pagenote}: Added \MathJax\ emulation.}
% \begin{macrocode}
\begin{warpMathJax}
\appto\LWR@syncnotenumbers{\LWR@synconenotenumber{LWRpagenote}{\thepagenote}}
@@ -72898,7 +73321,7 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak
% \codehtml
%
% \begin{macrocode}
-\LWR@ProvidesPackagePass{parnotes}[2016/08/15]
+\LWR@ProvidesPackagePass{parnotes}[2019/07/23]
% \end{macrocode}
%
% \begin{macrocode}
@@ -72948,8 +73371,8 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak
% \end{macrocode}
%
%
-% For \brand{MathJax}:
-% \changes{v0.82}{2020/03/15}{\pkg{parnotes}: Added \brand{MathJax} emulation.}
+% For \MathJax:
+% \changes{v0.82}{2020/03/15}{\pkg{parnotes}: Added \MathJax\ emulation.}
% \begin{macrocode}
\begin{warpMathJax}
\providecommand{\parnotename}{parnote}
@@ -73303,8 +73726,8 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak
% \end{macrocode}
%
%
-% For \brand{MathJax}:
-% \changes{v0.80}{2020/02/08}{\pkg{pdfcomment}: Added \brand{MathJax} emulation.}
+% For \MathJax:
+% \changes{v0.80}{2020/02/08}{\pkg{pdfcomment}: Added \MathJax\ emulation.}
% \begin{macrocode}
\begin{warpMathJax}
\CustomizeMathJax{\newcommand{\pdfmarkupcomment}[3][]{#2}}
@@ -73932,7 +74355,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \limitsphysics
%
% \changes{v0.79}{2020/01/29}{\pkg{physics}: Added.}
-% \changes{v0.87}{2020/06/02}{\pkg{physics}: Now uses \brand{MathJax} v3 extension.}
+% \changes{v0.87}{2020/06/02}{\pkg{physics}: Now uses \MathJax\ v3 extension.}
%
% \codehtml
%
@@ -73966,7 +74389,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
% \DescribePackage{physunits}
% \pkg{physunits} is supported as-is for \SVG\ math, and
-% is emulated for \brand{MathJax}.
+% is emulated for \MathJax.
%
% \changes{v0.81}{2020/02/29}{\pkg{physunits}: Added.}
% \changes{v0.83}{2020/03/26}{\pkg{physunits}: Updated to v1.0.4.}
@@ -74480,10 +74903,10 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
% \DescribePackage{plimsoll}
% \pkg{plimsoll} is used as-is for \SVG\ math, and
-% emulated for \brand{MathJax}.
+% emulated for \MathJax.
%
% The \optn{circ} option is honored.
-% For \brand{MathJax}, \cs{plimsollsans} is the same as \cs{plimsollroman}.
+% For \MathJax, \cs{plimsollsans} is the same as \cs{plimsollroman}.
%
% \changes{v0.893}{2020/10/12}{\pkg{plimsoll}: Added.}
%
@@ -74900,7 +75323,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
% \DescribePackage{pxfonts}
% \pkg{pxfonts} is used as-is for \SVG\ math, and is
-% emulated for \brand{MathJax}.
+% emulated for \MathJax.
%
% \changes{v0.89}{2020/08/10}{\pkg{pxfonts}: Added.}
%
@@ -74910,7 +75333,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\LWR@ProvidesPackagePass{pxfonts}[2008/01/22]
% \end{macrocode}
%
-% For \brand{MathJax}:
+% For \MathJax:
% \begin{macrocode}
\LWR@origRequirePackage{lwarp-common-mathjax-letters}
@@ -75486,7 +75909,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
% \DescribePackage{relsize}
% \pkg{relsize} is patched for use by \pkg{lwarp}, and
-% emulated for \brand{MathJax}.
+% emulated for \MathJax.
%
% \limitsrelsize
%
@@ -75541,8 +75964,8 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \end{macrocode}
%
%
-% For \brand{MathJax}:
-% \changes{v0.80}{2020/02/06}{\pkg{relsize}: Added \brand{MathJax} emulation.}
+% For \MathJax:
+% \changes{v0.80}{2020/02/06}{\pkg{relsize}: Added \MathJax\ emulation.}
% \begin{macrocode}
\begin{warpMathJax}
\CustomizeMathJax{\newcommand{\mathlarger}[1]{#1}}
@@ -75646,7 +76069,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\newcommand*{\prevrepl}{}
% \end{macrocode}
%
-% For \brand{MathJax}:
+% For \MathJax:
% \begin{macrocode}
\begin{warpMathJax}
\CustomizeMathJax{\newcommand{\repltext}[2]{#2}}
@@ -75779,7 +76202,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
% \DescribePackage{rmathbr}
% \pkg{rmathbr} is used as-is for \SVG\ math, and
-% emulated for \brand{MathJax}.
+% emulated for \MathJax.
%
% \changes{v0.80}{2020/02/17}{\pkg{rmathbr}: Added.}
% \changes{v0.894}{2020/12/16}{\pkg{rmathbr}: Updated to v1.1.}
@@ -76140,7 +76563,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
% \DescribePackage{scalerel}
% \pkg{scalerel} is used as-is for \SVG\ math, and is
-% emulated and ignored for \brand{MathJax}.
+% emulated and ignored for \MathJax.
%
% \changes{v0.891}{2020/09/10}{\pkg{scalerel}: Added.}
%
@@ -76150,7 +76573,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\LWR@ProvidesPackagePass{scalerel}[2016/12/29]
% \end{macrocode}
%
-% For \brand{MathJax}:
+% For \MathJax:
% \begin{macrocode}
\begin{warpMathJax}
\LWR@infoprocessingmathjax{scalerel}
@@ -76283,7 +76706,8 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\DeclareDocumentCommand{\maketitle}{o}{\LWR@koma@orig@maketitle}
}
-\DeclareDocumentCommand{\@maketitle}{}{%
+\providecommand*{\@maketitle}{}
+\renewrobustcmd{\@maketitle}{%
\ifdefvoid{\@titlehead}{}{%
\begin{BlockClass}{titlehead}%
\@titlehead%
@@ -77098,7 +77522,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% output differs from print mode in that the contents
% are formatted in a minipage, which is then inline with the surrounding math.
%
-% For \brand{MathJax}, the contents are used as-is.
+% For \MathJax, the contents are used as-is.
%
% \changes{v0.893}{2020/10/16}{\pkg{seqsplit}: Added.}
%
@@ -77452,13 +77876,13 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
% \DescribePackage{shuffle}
% \pkg{shuffle} is emulated for \SVG\ math, and
-% also emulated for \brand{MathJax}.
+% also emulated for \MathJax.
%
% The font used for \pkg{shuffle} may not render correctly when
% converted to \SVG\ math, so a \env{picture} environment drawing
% is used instead.
%
-% For \brand{MathJax}, the Unicode character is used, and for
+% For \MathJax, the Unicode character is used, and for
% \cs{cshuffle} a \cs{bar} is added.
%
% \changes{v0.89}{2020/07/26}{\pkg{shuffle}: Added.}
@@ -77673,13 +78097,13 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \end{macrocode}
%
%
-% For \brand{MathJax}:
+% For \MathJax:
%
% Note that \pkg{sidenotes} does not support \cs{sidenote} inside math in print mode.
% \watchout
% Use \cs{sidenotemark} and \cs{sidenotetext} instead.
%
-% \changes{v0.82}{2020/03/14}{\pkg{sidenotes}: Added \brand{MathJax} emulation.}
+% \changes{v0.82}{2020/03/14}{\pkg{sidenotes}: Added \MathJax\ emulation.}
% \begin{macrocode}
\begin{warpMathJax}
\providecommand{\sidenotename}{sidenote}
@@ -77805,16 +78229,16 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% and each will have the \attribute{alt} tag set according to \cs{MathImageAltText},
% which defaults to \optn{(math image)}.
%
-% For \brand{MathJax}, individual units used in text will appear as \SVG\ images,
+% For \MathJax, individual units used in text will appear as \SVG\ images,
% since \cs{ensuremath} is used in the original defintions,
-% and \cs{ensuremath} often has expressions which do not work well in \brand{MathJax},
+% and \cs{ensuremath} often has expressions which do not work well in \MathJax,
% so it is always forced to an \SVG\ image.
-% If, however, \cs{unit} is used, the result is expressed with \brand{MathJax}
+% If, however, \cs{unit} is used, the result is expressed with \MathJax
% instead of an \SVG\ image.
%
% \changes{v0.59}{2018/07/11}{\pkg{SIunits}: Added.}
% \changes{v0.81}{2020/02/23}{\pkg{SIunits}: Improved \cs{unit}. Fixed in math mode.
-% Added \brand{MathJax} emulation.}
+% Added \MathJax\ emulation.}
%
% \codehtml
%
@@ -77859,7 +78283,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \end{macrocode}
%
%
-% For \brand{MathJax}:
+% For \MathJax:
% \begin{macrocode}
\begin{warpMathJax}
\LWR@infoprocessingmathjax{SIunits}
@@ -78291,7 +78715,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
% \DescribePackage{siunitx}
% \pkg{siunitx-v2} is patched for use by \pkg{lwarp},
-% and is emulated for \brand{MathJax}.
+% and is emulated for \MathJax.
% Use as:
% \begin{sourceverb}
% \usepackage{siunitx}[=v2]
@@ -78348,7 +78772,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
% \DescribePackage{siunitx-v2}
% \pkg{siunitx-v2} is patched for use by \pkg{lwarp},
-% and is emulated for \brand{MathJax}.
+% and is emulated for \MathJax.
%
% \limitssiunitx
%
@@ -78481,7 +78905,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% For |parse-numbers=false|:
% \changes{v0.48}{2018/02/14}{\pkg{siunitx}: Improved \SVG\ math.}
% \changes{v0.50}{2018/02/24}{\pkg{siunitx}: Improved \SVG\ math \attribute{alt} tags.}
-% \changes{v0.79}{2020/01/21}{\pkg{siunitx}: Improved \brand{MathJax}.}
+% \changes{v0.79}{2020/01/21}{\pkg{siunitx}: Improved \MathJax.}
% \begin{macrocode}
\__siunitx_unit_output_pre_print:
\begingroup% lwarp
@@ -78504,7 +78928,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
%
% For |parse-numbers=false|:
-% \changes{v0.79}{2020/01/21}{\pkg{siunitx}: Improved \brand{MathJax}.}
+% \changes{v0.79}{2020/01/21}{\pkg{siunitx}: Improved \MathJax.}
% \begin{macrocode}
\cs_set_protected:Npn \__siunitx_range_numbers_aux:n #1
{
@@ -78536,7 +78960,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \end{macrocode}
%
% For |parse-numbers=false|:
-% \changes{v0.79}{2020/01/21}{\pkg{siunitx}: Improved \brand{MathJax}.}
+% \changes{v0.79}{2020/01/21}{\pkg{siunitx}: Improved \MathJax.}
% \begin{macrocode}
\cs_set_protected:Npn \__siunitx_angle_print_direct_aux:nn #1#2 {
\tl_if_empty:nF {#1}
@@ -78728,7 +79152,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \end{macrocode}
-% For \brand{MathJax}.
+% For \MathJax.
% (The following runs much faster as separate \cs{CusomizeMathJax} calls instead
% of one single call.)
% \begin{macrocode}
@@ -78736,14 +79160,14 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\LWR@infoprocessingmathjax{siunitx}
% \end{macrocode}
%
-% \changes{v0.89}{2020/07/23}{\pkg{siunitx}: Fix: \brand{MathJax} for \cs{tothe}, \cs{raiseto}.}
+% \changes{v0.89}{2020/07/23}{\pkg{siunitx}: Fix: \MathJax\ for \cs{tothe}, \cs{raiseto}.}
% \begin{macrocode}
\CustomizeMathJax{\newcommand{\tothe}[1]{^{#1}}}
\CustomizeMathJax{\newcommand{\raiseto}[2]{{#2}^{#1}}}
% \end{macrocode}
%
% Used as an end marker when parsing values:
-% \changes{v0.895}{2021/01/13}{\pkg{siunitx}: Fix: \brand{MathJax} for \cs{ang}.}
+% \changes{v0.895}{2021/01/13}{\pkg{siunitx}: Fix: \MathJax\ for \cs{ang}.}
% \begin{macrocode}
\CustomizeMathJax{\newcommand{\LWRsiunitxEND}{}}
% \end{macrocode}
@@ -78761,7 +79185,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
% Processes scientific notation.
% Special handling for a mantissa which is either empty or only a minus sign.
-% \changes{v0.895}{2021/01/14}{\pkg{siunitx}, \brand{MathJax}: Scientific notation.}
+% \changes{v0.895}{2021/01/14}{\pkg{siunitx}, \MathJax: Scientific notation.}
% \begin{macrocode}
\CustomizeMathJax{\newcommand{\LWRsiunitxnumscientific}[2]{%
\ifblank{#1}%
@@ -78783,7 +79207,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% of the arguments of each macro when used, and
% the final argument of each collects any extra unused delimiters.
%
-% \changes{v0.895}{2021/01/14}{\pkg{siunitx}, \brand{MathJax}:
+% \changes{v0.895}{2021/01/14}{\pkg{siunitx}, \MathJax:
% \cs{num} sci notation, multiples, +-, decimals, comma.}
% \begin{macrocode}
\ExplSyntaxOn
@@ -78916,7 +79340,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \begin{noindmacro}{\SI} \oarg{options} \marg{value} \oarg{prefix} \marg{unit}
%
% \cs{SI} has a second optional arg, which is parsed using \cs{ifnextchar}.
-% \changes{v0.895}{2021/01/14}{\pkg{siunitx}: \brand{MathJax}: \cs{SI} prefix parsing.}
+% \changes{v0.895}{2021/01/14}{\pkg{siunitx}: \MathJax: \cs{SI} prefix parsing.}
% \begin{macrocode}
\CustomizeMathJax{\def\LWRsiunitxSIopt#1[#2]#3{%
{#2}\num{#1}{#3}%
@@ -78939,7 +79363,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \begin{noindmacro}{\numlist} \oarg{options} \marg{list}
%
% \cs{numlist} should only be used in text mode.
-% If used in \brand{MathJax}, it is merely printed as input.
+% If used in \MathJax, it is merely printed as input.
% \begin{macrocode}
\CustomizeMathJax{\newcommand{\numlist}[2][]{\mathrm{#2}}}
% \end{macrocode}
@@ -78948,7 +79372,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \begin{noindmacro}{\numrange} \oarg{options} \marg{value1} \marg{value2}
%
% \cs{numrange} should only be used in text mode.
-% If used in \brand{MathJax} math, an en-dash is used instead of the \optn{range-phase}.
+% If used in \MathJax\ math, an en-dash is used instead of the \optn{range-phase}.
% \changes{v0.89}{2020/08/02}{\pkg{siunitx}: Unicode for endash.}
% \begin{macrocode}
\CustomizeMathJax{\newcommand{\numrange}[3][]{\num{#2}\,\unicode{x2013}\,\num{#3}}}
@@ -78958,7 +79382,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \begin{noindmacro}{\SIlist} \oarg{options} \marg{list}
%
% \cs{SIlist} and \cs{SIrange} should only be used in text mode.
-% If used in \brand{MathJax}, a simple emulation is provided.
+% If used in \MathJax, a simple emulation is provided.
% \begin{macrocode}
\CustomizeMathJax{\newcommand{\SIlist}[3][]{\mathrm{#2\,#3}}}
% \end{macrocode}
@@ -79212,7 +79636,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
% \DescribePackage{skmath}
% \pkg{skmath} is used as-is for \SVG\ math,
-% and is emulated for \brand{MathJax}.
+% and is emulated for \MathJax.
%
% \changes{v0.895}{2021/01/13}{\pkg{skmath}: Added.}
%
@@ -79268,7 +79692,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
% \pkg{skmath} uses \cs{DeclarePairedDelimiter} from \pkg{mathtools}
% for \cs{abs} and \cs{norm},
-% and \pkg{lwarp} uses this to automatically define \brand{MathJax} definitions for
+% and \pkg{lwarp} uses this to automatically define \MathJax\ definitions for
% each.
%
% If \optn{notation=english}, use slanted, else upright:
@@ -79626,7 +80050,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
% \DescribePackage{slashed}
% \pkg{slashed} works as-s for \HTML\ \SVG\ math.
-% For \brand{MathJax}, emulation is provided.
+% For \MathJax, emulation is provided.
%
% \changes{v0.79}{2020/01/30}{\pkg{slashed}: Added.}
%
@@ -80267,7 +80691,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
% \DescribePackage{stackrel}
% \pkg{stackrel} is used as-is for \SVG\ math, and
-% is emulated for \brand{MathJax}.
+% is emulated for \MathJax.
%
% \changes{v0.81}{2020/03/03}{\pkg{stackrel}: Added.}
%
@@ -80307,16 +80731,16 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
% \DescribePackage{statex2}
% \pkg{statex2} is patched for use by \pkg{lwarp},
-% and emulated for \brand{MathJax}.
+% and emulated for \MathJax.
%
% As of this version, option \optn{autobold} does not appear to work for \PDF\ output.
% \watchout
%
-% For \brand{MathJax}, the tilde character |~| does not create \cs{sim}.
+% For \MathJax, the tilde character |~| does not create \cs{sim}.
% \watchout
% Use \cs{sim} directly.
%
-% Because \brand{MathJax} has limited conditional processing:
+% Because \MathJax\ has limited conditional processing:
% \watchout
% \begin{itemize}
% \item \cs{wrap} only creates square braces, no matter what its optional arguments.
@@ -80940,7 +81364,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
% \DescribePackage{statmath}
% \pkg{statmath} is used as-is for \SVG\ math, and
-% is emulated for \brand{MathJax}.
+% is emulated for \MathJax.
%
% \changes{v0.81}{2020/02/28}{\pkg{statmath}: Added.}
% \changes{v0.89}{2020/09/01}{\pkg{statmath}: Fixed \optn{abcbm},
@@ -81059,7 +81483,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
% \DescribePackage{steinmetz}
% \pkg{steinmetz} is patched for use by \pkg{lwarp}.
-% Emulation is provided for \brand{MathJax}
+% Emulation is provided for \MathJax
%
% \changes{v0.79}{2020/01/31}{\pkg{steinmetz}: Added.}
%
@@ -81590,7 +82014,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
% \DescribePackage{subsupscripts}
% \pkg{subsupscripts} is used as-is for \SVG\ math, and
-% is emulated for \brand{MathJax}.
+% is emulated for \MathJax.
%
% \changes{v0.80}{2020/02/13}{\pkg{subsupscripts}: Added.}
%
@@ -81852,6 +82276,58 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
%
%
+% \iffalse
+%<*sympytex>
+% \fi
+%
+% \part{lwarp-sympytex.sty}
+%
+% \section{sympytex}
+%
+% \credits{Tim Molteno}
+%
+% \DescribePackage{sympytex}
+% \pkg{sympytex} is patched for use by \pkg{lwarp}.
+%
+% \changes{v0.20}{2017/01/11}{\pkg{sympytex}: Added.}
+% \changes{v0.84}{2020/04/16}{\pkg{sympytex}: Added print mode.}
+% \changes{v0.902}{2021/09/29}{\pkg{sympytex}: Improved \env{sympyblock}.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{sympytex}[2014/05/16]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\AfterEndPreamble{
+
+\AtBeginEnvironment{sympyblock}{%
+ \ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}%
+ {}%
+ {%
+ \LWR@forcenewpage%
+ \LWR@atbeginverbatim{verbatim}%
+ }%
+}
+
+\AfterEndEnvironment{sympyblock}{%
+ \ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}%
+ {}%
+ {%
+ \LWR@afterendverbatim%
+ }%
+}
+
+}
+% \end{macrocode}
+%
+% \iffalse
+%</sympytex>
+% \fi
+%
+%
+%
%
% \iffalse
%<*syntonly>
@@ -82123,7 +82599,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \codehtml
%
% \begin{macrocode}
-\LWR@ProvidesPackageDrop{tagpdf}[2019/07/02]
+\LWR@ProvidesPackageDrop{tagpdf}[2021-08-27]
% \end{macrocode}
%
% \begin{macrocode}
@@ -82131,53 +82607,111 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\tl_new:N \l__uftag_mc_key_label_tl
-\keys_define:nn { uftag / mc }
+\keys_define:nn { __tag / mc }
+ {
+ stash .bool_set:N = \l__tag_mc_key_stash_bool,
+ __artifact-bool .bool_set:N = \l__tag_mc_artifact_bool,
+ __artifact-type .choice:,
+ __artifact-type / pagination .code:n =
+ {},
+ __artifact-type / pagination/header .code:n =
+ {},
+ __artifact-type / pagination/footer .code:n =
+ {},
+ __artifact-type / layout .code:n =
+ {},
+ __artifact-type / page .code:n =
+ {},
+ __artifact-type / background .code:n =
+ {},
+ __artifact-type / notype .code:n =
+ {},
+ __artifact-type / .code:n =
+ {},
+ }
+
+\keys_define:nn { __tag / mc }
+ {
+ tag .code:n = % the name (H,P,Span) etc
+ {},
+ raw .code:n =
+ {},
+ alttext .code:n = % Alt property
+ {
+ \gdef\LWR@ThisAltText{\detokenize\expandafter{#1}}%
+ },
+ actualtext .code:n = % ActualText property
+ {},
+ label .tl_set:N = \l__tag_mc_key_label_tl,
+ artifact .code:n =
+ {},
+ artifact .default:n = {notype}
+ }
+
+\keys_define:nn { __tag / struct }
+ {
+ label .tl_set:N = \l__tag_struct_key_label_tl,
+ stash .bool_set:N = \l__tag_struct_elem_stash_bool,
+ tag .code:n = % S property
+ {},
+ title .code:n = % T property
+ {},
+ title-o .code:n = % T property
+ {},
+ alttext .code:n = % Alt property
+ {
+ \gdef\LWR@ThisAltText{\detokenize\expandafter{#1}}%
+ },
+ actualtext .code:n = % ActualText property
+ {},
+ lang .code:n = % Lang property
+ {},
+ ref .code:n = % Lang property
+ {},
+ E .code:n = % E property
+ {},
+ }
+
+\keys_define:nn { __tag / struct }
{
- tag .code:n = % the name (H,P,Span etc
- {},
- raw .code:n =
- {}
- ,
- alttext .code:n = % Alt property
- {
- \gdef\LWR@ThisAltText{\detokenize\expandafter{#1}}%
- },
- alttext-o .code:n = % Alt property
- {
- \gdef\LWR@ThisAltText{\detokenize\expandafter{#1}}%
- },
- actualtext .code:n = % ActualText property
- {},
- actualtext-o .code:n = % ActualText property
- {},
- label .tl_set:N = \l__uftag_mc_key_label_tl,
- artifact .code:n = {},
- artifact .default:n = {notype}
+ AF .code:n = % AF property
+ {},
+ ,AFinline .code:n =
+ {}
+ ,AFinline-o .code:n =
+ {}
}
-\keys_define:nn { uftag / struct }
- {
- label .tl_set:N = \l__uftag_struct_key_label_tl,
- stash .bool_set:N = \l__uftag_struct_elem_stash_bool,
- tag .code:n = % S property
- {},
- title .code:n = % T property
- {},
- title-o .code:n = % T property
- {},
- alttext .code:n = % Alt property
- {
- \gdef\LWR@ThisAltText{\detokenize\expandafter{#1}}%
- },
- alttext-o .code:n = % Alt property
- {
- \gdef\LWR@ThisAltText{\detokenize\expandafter{#1}}%
- },
- actualtext .code:n = % ActualText property
- {},
- actualtext-o .code:n = % ActualText property
- {},
-}
+\keys_define:nn { __tag / struct }
+ {
+ attribute-class .code:n =
+ {}
+ }
+
+\keys_define:nn { __tag / struct }
+ {
+ attribute .code:n = % A property (attribute, value currently a dictionary)
+ {},
+ }
+
+\cs_new_protected:Npn \__tag_ref_label:nn #1 #2 %#1 label, #2 name of list mc or struct
+ {
+ \@bsphack
+ \ref_label:nv {#1}{c__tag_ref#2_clist}
+ \@esphack
+ }
+\cs_generate_variant:Nn \__tag_ref_label:nn {en}
+
+\cs_new:Npn \__tag_ref_value:nnn #1 #2 #3 %#1 label, #2 attribute, #3 default
+ {
+ \ref_value:nnn {#1}{#2}{#3}
+ }
+\cs_generate_variant:Nn \__tag_ref_value:nnn {enn}
+\cs_new:Npn \__tag_ref_value_lastpage:nn #1 #2
+ {
+ \ref_value:nnn {__tag_LastPage}{#1}{#2}
+ }
+
\NewDocumentCommand \tagpdfsetup { m }{}
@@ -82189,51 +82723,57 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\NewDocumentCommand \tagmcifinTF { m m }{}
-\NewDocumentCommand \tagmcbegin { m }{\uftag_mc_begin:n {#1}\ignorespaces}
-\cs_new_protected:Nn \uftag_mc_begin:n {
- \group_begin:
- \keys_set:nn { uftag / mc } {#1}
- \group_end:
+\NewDocumentCommand \tagmcbegin { m }{%
+ \tag_mc_begin:n {#1}%\ignorespaces
}
-\NewDocumentCommand \tagmcend {}{\ThisAltText{}}
+\cs_new_protected:Npn \tag_mc_begin:n #1 %#1 keyval
+ {
+ \keys_set:nn { __tag / mc } {#1}
+ }
-\cs_new_protected:Nn \uftag_mc_end: {\ThisAltText{}}
+\NewDocumentCommand \tagmcend {}{\ThisAltText{}}
\NewDocumentCommand \tagmcuse { m }{}
\cs_new_protected:Nn \uftag_mc_use:n {}
-\NewDocumentCommand \tagstructbegin { m }{
- \uftag_struct_begin:n {#1}
-}
+\NewDocumentCommand \tagstructbegin { m }
+ {
+ \tag_struct_begin:n {#1}
+ }
-\cs_new_protected:Nn \uftag_struct_begin:n
-{
- \group_begin:
- \keys_set:nn {uftag / struct} { #1 }
- \group_end:
-}
+\cs_new_protected:Npn \tag_struct_begin:n #1 %#1 key-val
+ {
+ \keys_set:nn { __tag / struct} { #1 }
+ }
-\NewDocumentCommand \tagstructend { }{\ThisAltText{}}
-\cs_new_protected:Nn \uftag_struct_end: {\ThisAltText{}}
+\NewDocumentCommand \tagstructend { }
+ {
+ \tag_struct_end:
+ }
-\NewDocumentCommand \tagstructuse { m }{}
+\cs_new_protected:Nn \tag_struct_end:
+ {\ThisAltText{}}
-% \NewDocumentCommand\showtagpdfmcdata { O {\__uftag_get_mc_abs_cnt:} }{}
-% What is the second argument?
+\NewDocumentCommand \tagstructuse { m }{}
-\NewDocumentCommand\showtagpdfattributes { }{}
+\NewDocumentCommand\ShowTagging { m }
+ {}
\sys_if_engine_luatex:T
{
\NewDocumentCommand\pdffakespace { }
- {
- \__uftag_fakespace:
- }
+ {}
}
+\newcommand\tagpdfparaOn {}
+
+\newcommand\tagpdfparaOff{}
+
+\NewDocumentCommand\tagpdfsuppressmarks{m}{}
+
\ExplSyntaxOff
% \end{macrocode}
%
@@ -82674,7 +83214,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
}% AtBeginDocument
% \end{macrocode}
%
-% For \brand{MathJax}:
+% For \MathJax:
% \begin{macrocode}
\CustomizeMathJax{\newcommand{\tcbset}[1]{}}
\CustomizeMathJax{\newcommand{\tcbsetforeverylayer}[1]{}}
@@ -82707,12 +83247,12 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
% \DescribePackage{tensor}
% \pkg{tensor} is used as-is for \SVG\ math, and
-% is emulated for \brand{MathJax}.
+% is emulated for \MathJax.
%
-% Compressed spacing and left justification are not possible with \brand{MathJax}.
+% Compressed spacing and left justification are not possible with \MathJax.
% \trouble[spacing]{tensor=\pkg{tensor}}
%
-% \changes{v0.895}{2021/01/23}{\pkg{tensor}: Added \brand{MathJax}.}
+% \changes{v0.895}{2021/01/23}{\pkg{tensor}: Added \MathJax.}
%
% \codehtml
%
@@ -82720,7 +83260,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\LWR@ProvidesPackagePass{tensor}[2004/12/20]
% \end{macrocode}
%
-% For \brand{MathJax}.
+% For \MathJax.
% Special handling is required to parse the superscript and subscript arguments.
%
% When a superscript or subscript is seen, it is processed and then the
@@ -82915,7 +83455,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \DescribePackage{textcomp}
% \pkg{textcomp} is patched for use by \pkg{lwarp}.
%
-% For \brand{MathJax}, the \brand{MathJax} packge is used.
+% For \MathJax, the \MathJax\ packge is used.
%
%
% \subsection{Limitations}
@@ -83111,7 +83651,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \end{macrocode}
%
%
-% For \brand{MathJax}:
+% For \MathJax:
% \changes{v0.901}{2021/08/26}{\pkg{textcomp}: Uses \pkg{MathJax} 3.2 package.}
% \begin{macrocode}
\CustomizeMathJax{\require{textcomp}}
@@ -84858,7 +85398,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
% Print the text:
% \begin{macrocode}
- ##1%
+ {##1}%
}% \@makefntext
}
% \end{macrocode}
@@ -84930,7 +85470,8 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \changes{v0.39}{2017/09/04}{\pkg{titling} version.}
%
% \begin{macrocode}
-\DeclareDocumentCommand{\@maketitle}{}{%
+\providecommand*{\@maketitle}{}
+\renewrobustcmd{\@maketitle}{%
\maketitlehooka
{
\LWR@stoppars\LWR@htmltag{\LWR@tagtitle}%
@@ -85133,9 +85674,9 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\fi
\fi
\fi
-\let\item\LWR@indexitem%
-\let\subitem\LWR@indexsubitem%
-\let\subsubitem\LWR@indexsubsubitem%
+\LetLtxMacro\item\LWR@indexitem%
+\LetLtxMacro\subitem\LWR@indexsubitem%
+\LetLtxMacro\subsubitem\LWR@indexsubsubitem%
}{}
% \end{macrocode}
%
@@ -86288,7 +86829,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
% \DescribePackage{txfonts}
% \pkg{txfonts} is used as-is for \SVG\ math, and is
-% emulated for \brand{MathJax}.
+% emulated for \MathJax.
%
% \changes{v0.89}{2020/08/10}{\pkg{txfonts}: Added.}
%
@@ -86298,7 +86839,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\LWR@ProvidesPackagePass{txfonts}[2008/01/22]
% \end{macrocode}
%
-% For \brand{MathJax}:
+% For \MathJax:
% \begin{macrocode}
\LWR@origRequirePackage{lwarp-common-mathjax-letters}
@@ -86327,9 +86868,9 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
% \DescribePackage{txgreeks}
% \pkg{txgreeks} is used as-is for \SVG\ math, and is
-% emulated for \brand{MathJax}.
+% emulated for \MathJax.
%
-% The \brand{MathJax} emulation honors all package options.
+% The \MathJax\ emulation honors all package options.
%
% \changes{v0.891}{2020/09/14}{\pkg{txgreeks}: Added.}
%
@@ -86682,17 +87223,17 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \pkg{unicode-math} is supported as-is for \HTML\ with \SVG math.
%
% If the document source includes embedded Unicode characters,
-% \trouble[\brand{MathJax}]{unicode-math=\pkg{unicode-math}}
-% \trouble{mathjax=\brand{MathJax}>unicode-math=\pkg{unicode-math}}
+% \trouble[\MathJax]{unicode-math=\pkg{unicode-math}}
+% \trouble{mathjax=\MathJax>unicode-math=\pkg{unicode-math}}
% these may not be reproduced correctly for \prog{pdftotext},
-% and thus not display correctly in \brand{MathJax}.
+% and thus not display correctly in \MathJax.
%
% Symbol font commands are emulated, but not all combinations are
-% supported by \brand{MathJax}, especially with the dedicated Greek macros.
+% supported by \MathJax, especially with the dedicated Greek macros.
% Symbol macros such as \cs{symbfsf} may not be sans or bold.
% For Greek, use the Unicode equivalent, if necessary.
%
-% The \brand{MathJax} emulation does not change with the use of \cs{mathversion}.
+% The \MathJax\ emulation does not change with the use of \cs{mathversion}.
% \watchout[\cs{mathversion}]
% Whatever emulation is established at the begin of the document will remain.
%
@@ -86700,11 +87241,11 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% but \optn{italic} will not be sans, in order to support Greek macros.
%
% Greek macros such as \cs{alpha} respond to the \optn{math-style} option.
-% Latin symbols does not, per \brand{MathJax} limitations, unless placed inside
+% Latin symbols does not, per \MathJax\ limitations, unless placed inside
% \cs{symbit} or similar.
%
% Macros from the categories \cs{mathopen}, \cs{mathclose}, and \cs{mathfence}
-% are emulated. Due to current \brand{MathJax} limitations, not all
+% are emulated. Due to current \MathJax\ limitations, not all
% stretch to the correct height.
%
% Also emulated are macros from the categories
@@ -86713,11 +87254,11 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
% The individual \pkg{unicode-math} macros
% of categories \cs{mathbin}, \cs{mathord}, and \cs{mathrel}
-% are not emulated for \brand{MathJax},
+% are not emulated for \MathJax,
% as there are more than two thousand of them, but they may be added as needed.
% Place the following in the document preamble after loading \pkg{unicode-math},
% including a definition for each macro which is used in the document
-% but undefined in \brand{MathJax}:
+% but undefined in \MathJax:
%
% \begin{sourceverb}
% \begin{warpMathJax}
@@ -86730,7 +87271,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% For a list of macro names and symbols, see \cmds{texdoc unimath-symbols}.
%
% \changes{v0.79}{2020/01/30}{\pkg{unicode-math}: Added.}
-% \changes{v0.80}{2020/02/15}{\pkg{unicode-math}: Improved \brand{MathJax}.}
+% \changes{v0.80}{2020/02/15}{\pkg{unicode-math}: Improved \MathJax.}
%
% \codehtml
%
@@ -86846,7 +87387,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% or \optn{literal},
% which set |\g__um_upGreek_bool| and |\g__um_upgreek_bool|.
%
-% \changes{v0.80}{2020/02/15}{\pkg{unicode-math}: Improved \brand{MathJax}.}
+% \changes{v0.80}{2020/02/15}{\pkg{unicode-math}: Improved \MathJax.}
% \begin{macrocode}
\ExplSyntaxOn
@@ -86876,7 +87417,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% Many \cs{mathopen} \Slash \cs{mathclose} delimiters are
% defined in \filenm{lwarp_mathjax.txt}, where
% \cs{left} \Slash \cs{right} support is added.
-% \changes{v0.892}{2020/09/26}{\pkg{unicode-math}: Adeed \brand{MathJax} support for \cs{left} \Slash \cs{right}.}
+% \changes{v0.892}{2020/09/26}{\pkg{unicode-math}: Adeed \MathJax\ support for \cs{left} \Slash \cs{right}.}
% \begin{macrocode}
\CustomizeMathJax{\newcommand{\longdivision}[1]{\mathord{\unicode{x027CC}#1}}}
@@ -87110,10 +87651,10 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
% \DescribePackage{upgreek}
% \pkg{upgreek} is used as-is for \SVG\ math, and is
-% emulated for \brand{MathJax}.
+% emulated for \MathJax.
%
% \changes{v0.89}{2020/08/10}{\pkg{upgreek}: Added.}
-% \changes{v0.901}{2021/08/26}{\pkg{upgreek}: Use \brand{MathJax} package.}
+% \changes{v0.901}{2021/08/26}{\pkg{upgreek}: Use \MathJax\ package.}
%
% \codehtml
%
@@ -87121,7 +87662,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\LWR@ProvidesPackagePass{upgreek}[2003/02/12]
% \end{macrocode}
%
-% For \brand{MathJax}:
+% For \MathJax:
% \begin{macrocode}
\begin{warpMathJax}
\CustomizeMathJax{\require{upgreek}}
@@ -87222,7 +87763,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \credits{Martin V\"ath}
%
% \DescribePackage{ushort}
-% \pkg{ushort} is used as-is, and emulated for \brand{MathJax}.
+% \pkg{ushort} is used as-is, and emulated for \MathJax.
%
% \changes{v0.88}{2020/07/23}{\pkg{ushort}: Added.}
%
@@ -87928,7 +88469,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
% \DescribePackage{witharrows}
% \pkg{witharrows} is patched for use by \pkg{lwarp}.
-% Emulation is provided for \brand{MathJax}.
+% Emulation is provided for \MathJax.
%
% \changes{v0.79}{2020/01/31}{\pkg{witharrows}: Added.}
%
@@ -88953,20 +89494,29 @@ height:\LWR@printlength{\LWR@tempheight}%
% \pkg{xetexko} is patched for use by \pkg{lwarp}.
%
% \changes{v0.20}{2017/01/11}{\pkg{xetexko}: Added.}
+% \changes{v0.902}{2021/09/30}{\pkg{xetexko}: Updated to v4.0.}
%
% \codehtml
%
% \begin{macrocode}
\LWR@loadbefore{xetexko}
-\LWR@ProvidesPackagePass{xetexko}[2021/03/22]
+\LWR@ProvidesPackagePass{xetexko}[2021/09/06]
% \end{macrocode}
%
% \begin{macrocode}
-\renewcommand{\verticaltypesetting}{}
-\renewenvironment{vertical}[1]{\BlockClass{verticalrl}}{\endBlockClass}
-\renewenvironment{horizontal}[1]{\BlockClass{horizontaltb}}{\endBlockClass}
-\renewcommand{\vertlatin}[1]{#1}
+\protected\def\typesetvertical{}
+\protected\def\typesethorizontal{}
+
+\def\verticaltypesetting{\BlockClass{verticalrl}}
+\def\beginverticaltypesetting{\BlockClass{verticalrl}}
+\def\endverticaltypesetting{\endBlockClass}
+
+\protected\def\vertical#1{\BlockClass{verticalrl}}
+\protected\def\endvertical{\endBlockClass}
+\protected\def\horizontal#1{\BlockClass{horizontaltb}}
+\protected\def\endhorizontal{\endBlockClass}
+\DeclareDocumentCommand{\vertlatin}{m}{#1}
% \end{macrocode}
%
% \iffalse
@@ -89052,7 +89602,7 @@ height:\LWR@printlength{\LWR@tempheight}%
}
% \end{macrocode}
%
-% For \brand{MathJax}, \pkg{xfakebold} is ignored.
+% For \MathJax, \pkg{xfakebold} is ignored.
% \begin{macrocode}
\begin{warpMathJax}
\CustomizeMathJax{\newcommand{\setBold}[1][]{}}
@@ -89079,7 +89629,7 @@ height:\LWR@printlength{\LWR@tempheight}%
% \credits{The \LaTeX3 Project}
%
% \DescribePackage{xfrac} Supported by adding \pkg{xfrac} instances,
-% and emulated for \brand{MathJax}.
+% and emulated for \MathJax.
%
% \codehtml
% \begin{macrocode}
@@ -89215,8 +89765,8 @@ height:\LWR@printlength{\LWR@tempheight}%
% \end{macrocode}
-% For \brand{MathJax}:
-% \changes{v0.80}{2020/02/08}{\pkg{xfrac}: Added \brand{MathJax} emulation.}
+% For \MathJax:
+% \changes{v0.80}{2020/02/08}{\pkg{xfrac}: Added \MathJax\ emulation.}
% \begin{macrocode}
\begin{warpMathJax}
\CustomizeMathJax{\newcommand{\LWRsfrac}[2][/]{{}^\LWRsfracnumerator\!#1{}_{#2}}}
@@ -89445,7 +89995,9 @@ height:\LWR@printlength{\LWR@tempheight}%
% \end{macrocode}
%
% The original's boxes are not used, instead the contents are used with
-% \element{ruby}, \element{rb}, and \element{rt} tags per modern \HTML.
+% \element{ruby},
+% ^^A deprecated: \element{rb}, and
+% \element{rt}, and \element{rp} tags per modern \HTML.
% Color is detected. \optn{ratio} is ignored for \prog{pdftotext} to work correctly.
% Extra spaces are placed inside the tags to allow line breaks in the \HTML\
% text.
@@ -89466,14 +90018,15 @@ height:\LWR@printlength{\LWR@tempheight}%
\color_group_end:
}
\LWR@formatted{__xpinyin_make_pinyin_box:nnn}
+% \end{macrocode}
+% \changes{v0.902}{2021/09/30}{\pkg{xpinyin}: Removed deprecated \element{rb}.}
+% \begin{macrocode}
\cs_new_protected_nopar:Npn \LWR@HTML@__xpinyin_CJKsymbol:nn #1#2
{
\__xpinyin_leavevmode:
\LWR@htmltagc{ruby}
- \LWR@htmltagc{rb}
\__xpinyin_save_CJKsymbol:n {#2}\null% \null removes extra space
- \LWR@htmltagc{/rb\space}
\LWR@htmltagc{rp}(\LWR@htmltagc{/rp\space}
\LWR@htmltagc{rt}
\__xpinyin_make_pinyin_box:nnn {#1} {#2} { \use:c { c__xpinyin_ #1 _tl } }
@@ -89482,14 +90035,15 @@ height:\LWR@printlength{\LWR@tempheight}%
\LWR@htmltagc{/ruby\space}\null
}
\LWR@formatted{__xpinyin_CJKsymbol:nn}
+% \end{macrocode}
+% \changes{v0.902}{2021/09/30}{\pkg{xpinyin}: Removed deprecated \element{rb}.}
+% \begin{macrocode}
\cs_new_protected_nopar:Npn \LWR@HTML@__xpinyin_single_CJKsymbol:nn #1#2
{
\__xpinyin_leavevmode:
\LWR@htmltagc{ruby}
- \LWR@htmltagc{rb}
\__xpinyin_save_CJKsymbol:n {#1}\null% \null removes extra space
- \LWR@htmltagc{/rb\space}
\LWR@htmltagc{rp}(\LWR@htmltagc{/rp\space}
\LWR@htmltagc{rt}
\__xpinyin_make_pinyin_box:xnn
@@ -90085,9 +90639,9 @@ height:\LWR@printlength{\LWR@tempheight}%
\renewenvironment{theindex}{%
\idx@heading%
\index@preamble\par\nobreak
- \let\item\LWR@indexitem%
- \let\subitem\LWR@indexsubitem%
- \let\subsubitem\LWR@indexsubsubitem%
+ \LetLtxMacro\item\LWR@indexitem%
+ \LetLtxMacro\subitem\LWR@indexsubitem%
+ \LetLtxMacro\subsubitem\LWR@indexsubsubitem%
}
{}
@@ -90203,6 +90757,7 @@ height:\LWR@printlength{\LWR@tempheight}%
\ProvidesPackage{lwarp-patch-memoir}
% \end{macrocode}
%
+%
% \subsection{Packages}
% \label{sec:patch-memoir-packages}
%
@@ -90307,7 +90862,6 @@ height:\LWR@printlength{\LWR@tempheight}%
}
}
% \end{macrocode}
-
%
%
% \subsection{Page layout}
@@ -90460,6 +91014,7 @@ height:\LWR@printlength{\LWR@tempheight}%
\renewcommand{\setpagecc}[3]{}
% \end{macrocode}
%
+%
% \subsection{Text and fonts}
% \begin{macrocode}
\let\miniscule\tiny
@@ -90506,6 +91061,7 @@ height:\LWR@printlength{\LWR@tempheight}%
\renewcommand*{\sloppybottom}{}
% \end{macrocode}
%
+%
% \subsection{Titles}
%
% \changes{v0.54}{2018/04/06}{\pkg{lwarp-patch-memoir}: Update for v3.7g.}
@@ -90543,7 +91099,6 @@ height:\LWR@printlength{\LWR@tempheight}%
%
% \subsection{Docment divisions}
%
-%
% \begin{noindmacro}{\book} * \parg{2:PDF name} \oarg{3:TOC name}
% \oarg{4:PDF name} \parg{5:PDF name} \marg{6:name}
% \changes{v0.73}{2019/06/21}{\pkg{lwarp-patch-memoir}: Added \cs{book}.}
@@ -90715,6 +91270,7 @@ height:\LWR@printlength{\LWR@tempheight}%
\renewcommand*{\headstyles}[1]{}
% \end{macrocode}
%
+%
% \subsection{Pagination and headers}
% \begin{macrocode}
\renewcommand*{\savepagenumber}{}
@@ -90781,6 +91337,7 @@ height:\LWR@printlength{\LWR@tempheight}%
\renewcommand*{\showtextblocklocoff}{}
% \end{macrocode}
%
+%
% \subsection{Paragraphs and lists}
% \begin{macrocode}
\renewcommand{\hangfrom}[1]{#1}
@@ -90789,7 +91346,12 @@ height:\LWR@printlength{\LWR@tempheight}%
% \newlength{\ragrparindent}
\renewcommand{\sourceatright}[2][]{\attribution{#2}}
\let\memorigdbs\LWR@endofline
-\let\memorigpar\par
+% \end{macrocode}
+% \changes{v0.902}{2021/09/30}{\pkg{memoir}: Fixed \cs{memorigpar}.}
+% \begin{macrocode}
+\renewcommand*{\memorigpar}{\par}
+% \end{macrocode}
+% \begin{macrocode}
\let\atcentercr\LWR@endofline
\renewcommand*{\linenottooshort}[1][]{}
@@ -90822,6 +91384,7 @@ height:\LWR@printlength{\LWR@tempheight}%
\renewcommand*{\restoretrivseps}{}
% \end{macrocode}
%
+%
% \subsection{Contents lists}
%
% \changes{v0.82}{2020/03/24}{\pkg{lwarp-patch-memoir}: Supports \pkg{tocvsec2}.}
@@ -91300,6 +91863,7 @@ height:\LWR@printlength{\LWR@tempheight}%
}
% \end{macrocode}
%
+%
% \subsection{Footnotes and page notes}
%
% \begin{macrocode}
@@ -91475,6 +92039,7 @@ height:\LWR@printlength{\LWR@tempheight}%
\renewcommand*{\PoemTitlefont}{}
% \end{macrocode}
%
+%
% \subsection{Boxes, verbatims and files}
%
% \begin{macrocode}
@@ -91526,6 +92091,7 @@ height:\LWR@printlength{\LWR@tempheight}%
\renewcommand*{\bvnumbersoutside}{}
% \end{macrocode}
%
+%
% \subsection{Cross referencing}
%
% \begin{macrocode}
@@ -91561,6 +92127,7 @@ height:\LWR@printlength{\LWR@tempheight}%
\renewcommand*{\namerefoff}{}
% \end{macrocode}
%
+%
% \subsection{Back matter}
% \label{sec:memoirbackmatter}
%
@@ -91665,6 +92232,7 @@ height:\LWR@printlength{\LWR@tempheight}%
\renewcommand*{\xindyindex}{}
% \end{macrocode}
%
+%
% \subsection{Miscellaneous}
%
% \begin{macrocode}
@@ -92240,7 +92808,7 @@ height:\LWR@printlength{\LWR@tempheight}%
%
% \DescribePackage{lwarp-common-mathjax-letters}
% Common code used by a number of packages to generate Greek math characters
-% for \brand{MathJax}.
+% for \MathJax.
%
% \changes{v0.89}{2020/08/10}{\pkg{lwarp-common-mathjax-letters}: Added.}
% \changes{v0.893}{2020/08/10}{\pkg{lwarp-common-mathjax-letters}: Added \cs{varbeta}.}
@@ -92700,7 +93268,7 @@ height:\LWR@printlength{\LWR@tempheight}%
%
% \DescribePackage{lwarp-common-mathjax-newpxtxmath}
% Common code used by \pkg{newpxmath}, \pkg{newtxmath}, and \pkg{newtxsf}
-% for \brand{MathJax}.
+% for \MathJax.
%
% \changes{v0.89}{2020/08/31}{\pkg{lwarp-common-mathjax-newpxtxmath}: Added.}
% \changes{v0.891}{2020/09/20}{\pkg{lwarp-common-mathjax-newpxtxmath}: Reverse factored out Greek, non-\brand{Unicode}.}
@@ -92711,7 +93279,7 @@ height:\LWR@printlength{\LWR@tempheight}%
\ProvidesPackage{lwarp-common-mathjax-newpxtxmath}[2020/09/20]
% \end{macrocode}
%
-% For \brand{MathJax}:
+% For \MathJax:
% \begin{macrocode}
\LWR@origRequirePackage{lwarp-common-mathjax-nonunicode}
\LWR@origRequirePackage{lwarp-common-mathjax-overlaysymbols}
@@ -93060,7 +93628,7 @@ height:\LWR@printlength{\LWR@tempheight}%
% \DescribePackage{lwarp-common-mathjax-nonunicode}
% Common code used by \pkg{newpxmath}, \pkg{newtxmath}, \pkg{newtxsf},
% \pkg{kpfonts-otf}
-% for \brand{MathJax}.
+% for \MathJax.
% These are symbols not found in \brand{Unicode}.
%
% Factored from \pkg{lwarp-common-mathjax-newpxtxmath}.
@@ -93073,7 +93641,7 @@ height:\LWR@printlength{\LWR@tempheight}%
\ProvidesPackage{lwarp-common-mathjax-nonunicode}[2020/09/20]
% \end{macrocode}
%
-% For \brand{MathJax}:
+% For \MathJax:
% \begin{macrocode}
\LWR@origRequirePackage{lwarp-common-mathjax-overlaysymbols}
@@ -93229,7 +93797,7 @@ height:\LWR@printlength{\LWR@tempheight}%
%
% \DescribePackage{lwarp-common-mathjax-overlaysymbols}
% Common code used by a number of packages to overlay two symbols
-% for \brand{MathJax}.
+% for \MathJax.
%
% \changes{v0.89}{2020/08/17}{\pkg{lwarp-common-mathjax-overlaysymbols}: Added.}
%
diff --git a/macros/latex/contrib/lwarp/lwarp.ins b/macros/latex/contrib/lwarp/lwarp.ins
index 5d3ad912df..b78c0027ad 100644
--- a/macros/latex/contrib/lwarp/lwarp.ins
+++ b/macros/latex/contrib/lwarp/lwarp.ins
@@ -75,6 +75,7 @@ version 2005/12/01 or later.
\file{lwarp-backref.sty}{\from{lwarp.dtx}{backref}}
\file{lwarp-balance.sty}{\from{lwarp.dtx}{balance}}
\file{lwarp-bbding.sty}{\from{lwarp.dtx}{bbding}}
+\file{lwarp-beamerarticle.sty}{\from{lwarp.dtx}{beamerarticle}}
\file{lwarp-biblatex.sty}{\from{lwarp.dtx}{biblatex}}
\file{lwarp-bibunits.sty}{\from{lwarp.dtx}{bibunits}}
\file{lwarp-bigdelim.sty}{\from{lwarp.dtx}{bigdelim}}
@@ -507,6 +508,7 @@ version 2005/12/01 or later.
\file{lwarp-supertabular.sty}{\from{lwarp.dtx}{supertabular}}
\file{lwarp-svg.sty}{\from{lwarp.dtx}{svg}}
\file{lwarp-swfigure.sty}{\from{lwarp.dtx}{swfigure}}
+\file{lwarp-sympytex.sty}{\from{lwarp.dtx}{sympytex}}
\file{lwarp-syntonly.sty}{\from{lwarp.dtx}{syntonly}}
\file{lwarp-tabfigures.sty}{\from{lwarp.dtx}{tabfigures}}
\file{lwarp-tablefootnote.sty}{\from{lwarp.dtx}{tablefootnote}}
diff --git a/macros/latex/contrib/lwarp/lwarp.pdf b/macros/latex/contrib/lwarp/lwarp.pdf
index ccdf3d87da..e6119bc4e8 100644
--- a/macros/latex/contrib/lwarp/lwarp.pdf
+++ b/macros/latex/contrib/lwarp/lwarp.pdf
Binary files differ
diff --git a/macros/latex/contrib/lwarp/lwarpmk.lua b/macros/latex/contrib/lwarp/lwarpmk.lua
index 0b276a9301..eddb459816 100755
--- a/macros/latex/contrib/lwarp/lwarpmk.lua
+++ b/macros/latex/contrib/lwarp/lwarpmk.lua
@@ -2,7 +2,7 @@
-- Copyright 2016-2021 Brian Dunn
-printversion = "v0.901"
+printversion = "v0.902"
requiredconfversion = "2" -- also at *lwarpmk.conf
function printhelp ()
diff --git a/macros/latex/contrib/tabularray/tabularray.pdf b/macros/latex/contrib/tabularray/tabularray.pdf
index 198b6fd211..450375620e 100644
--- a/macros/latex/contrib/tabularray/tabularray.pdf
+++ b/macros/latex/contrib/tabularray/tabularray.pdf
Binary files differ
diff --git a/macros/latex/contrib/tabularray/tabularray.sty b/macros/latex/contrib/tabularray/tabularray.sty
index 2e3fa4eb5d..db63c63a3c 100644
--- a/macros/latex/contrib/tabularray/tabularray.sty
+++ b/macros/latex/contrib/tabularray/tabularray.sty
@@ -12,7 +12,7 @@
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}
-\ProvidesExplPackage{tabularray}{2021-09-01}{2021N}
+\ProvidesExplPackage{tabularray}{2021-10-01}{2021P}
{Typeset tabulars and arrays with LaTeX3}
\RequirePackage{xparse}
@@ -52,6 +52,7 @@
\cs_generate_variant:Nn \tl_const:Nn { ce }
\cs_generate_variant:Nn \tl_log:n { x }
\cs_generate_variant:Nn \tl_gput_right:Nn { Nf }
+\cs_generate_variant:Nn \tl_put_left:Nn { Nv }
\prg_generate_conditional_variant:Nnn \clist_if_in:Nn { Nx } { TF }
\prg_generate_conditional_variant:Nnn \prop_if_in:Nn { c } { T }
\prg_generate_conditional_variant:Nnn \str_if_eq:nn { xn } { TF }
@@ -105,11 +106,13 @@
\cs_new_eq:NN \__tblr_halign_command_c: \centering
\cs_new_eq:NN \__tblr_halign_command_r: \raggedleft
-%% Some counters for row and column numbering
-\newcounter{rownum}
-\newcounter{colnum}
-\newcounter{rowcount}
-\newcounter{colcount}
+%% Some counters for row and column numbering.
+%% We may need to restore all LaTeX counters in measuring and building cells,
+%% so we must not define these counters with \newcounter command.
+\int_new:N \c@rownum
+\int_new:N \c@colnum
+\int_new:N \c@rowcount
+\int_new:N \c@colcount
%% Some dimensions for row and column spacing
\dim_new:N \abovesep
@@ -369,7 +372,10 @@
\__tblr_data_new_key:nnn { cell } { halign } { str }
\__tblr_data_new_key:nnn { cell } { valign } { str }
\__tblr_data_new_key:nnn { cell } { background } { str }
+\__tblr_data_new_key:nnn { cell } { foreground } { str }
\__tblr_data_new_key:nnn { cell } { font } { str }
+\__tblr_data_new_key:nnn { cell } { mode } { str }
+\__tblr_data_new_key:nnn { cell } { cmd } { str }
\__tblr_data_new_key:nnn { cell } { omit } { int }
\__tblr_data_new_key:nnn { cell } { @cell-width } { dim }
\__tblr_data_new_key:nnn { cell } { @cell-height } { dim }
@@ -1634,11 +1640,14 @@
f .meta:n = { valign = f },
wd .code:n = \__tblr_cell_gput:ne { width } {#1},
bg .code:n = \__tblr_cell_gput:ne { background } {#1},
+ fg .code:n = \__tblr_cell_gput:ne { foreground } {#1},
+ font .code:n = \__tblr_cell_gput:nn { font } { #1 \selectfont },
+ mode .code:n = \__tblr_cell_gput:nn { mode } {#1},
+ $ .meta:n = { mode = math },
+ $$ .meta:n = { mode = dmath },
+ cmd .code:n = \__tblr_cell_gput:nn { cmd } {#1},
preto .code:n = \__tblr_cell_preto_text:n {#1},
appto .code:n = \__tblr_cell_appto_text:n {#1},
- cmd .code:n = \__tblr_cell_process_text:n {#1},
- fg .code:n = \__tblr_cell_preto_text:n { \color{#1} },
- font .code:n = \__tblr_cell_gput:nn { font } { #1 \selectfont },
unknown .code:n = \__tblr_cell_unknown_key:V \l_keys_key_str,
}
@@ -1686,23 +1695,6 @@
}
\cs_generate_variant:Nn \__tblr_cell_appto_text:nnn { nen, enn, een }
-\cs_new_protected:Npn \__tblr_cell_process_text:n #1
- {
- \__tblr_cell_process_text:een
- { \int_use:N \c@rownum } { \int_use:N \c@colnum } {#1}
- }
-
-\cs_new_protected:Npn \__tblr_cell_process_text:nnn #1 #2 #3
- {
- \tl_set:Nx \l__tblr_cell_text_tl
- {
- { \__tblr_spec_item:nn { text } { [#1][#2] } }
- }
- \tl_put_left:Nn \l__tblr_cell_text_tl {#3}
- \__tblr_spec_gput:nnV { text } { [#1][#2] } \l__tblr_cell_text_tl
- }
-\cs_generate_variant:Nn \__tblr_cell_process_text:nnn { nen, enn, een }
-
\cs_new_protected:Npn \__tblr_cell_unknown_key:n #1
{
\regex_match:NnTF \c__tblr_is_color_key_regex {#1}
@@ -1911,13 +1903,16 @@
h .meta:n = { valign = h },
f .meta:n = { valign = f },
bg .code:n = \__tblr_column_gput_cell:nn { background } {#1},
- fg .code:n = \__tblr_preto_text_for_every_column_cell:n { \color{#1} },
+ fg .code:n = \__tblr_column_gput_cell:nn { foreground } {#1},
font .code:n = \__tblr_column_gput_cell:nn { font } { #1 \selectfont },
+ mode .code:n = \__tblr_column_gput_cell:nn { mode } {#1},
+ $ .meta:n = { mode = math },
+ $$ .meta:n = { mode = dmath },
+ cmd .code:n = \__tblr_column_gput_cell:nn { cmd } {#1},
wd .code:n = \__tblr_column_gput:ne { width } { \dim_eval:n {#1} },
co .code:n = \__tblr_column_gput:ne { coefficient } {#1},
preto .code:n = \__tblr_preto_text_for_every_column_cell:n {#1},
appto .code:n = \__tblr_appto_text_for_every_column_cell:n {#1},
- cmd .code:n = \__tblr_process_text_for_every_column_cell:n {#1},
leftsep .code:n = \__tblr_column_gput:ne { leftsep } { \dim_eval:n {#1} },
rightsep .code:n = \__tblr_column_gput:ne { rightsep } { \dim_eval:n {#1} },
colsep .meta:n = { leftsep = #1, rightsep = #1},
@@ -1969,14 +1964,6 @@
}
}
-\cs_new_protected:Npn \__tblr_process_text_for_every_column_cell:n #1
- {
- \int_step_inline:nn { \c@rowcount }
- {
- \__tblr_cell_process_text:nen {##1} { \int_use:N \c@colnum } {#1}
- }
- }
-
\regex_const:Nn \c__tblr_is_number_key_regex { ^[\+\-]? (\d+|\d*\.\d+)$ }
\cs_new_protected:Npn \__tblr_column_unknown_key:n #1
@@ -2071,13 +2058,16 @@
h .meta:n = { valign = h },
f .meta:n = { valign = f },
bg .code:n = \__tblr_row_gput_cell:nn { background } {#1},
- fg .code:n = \__tblr_preto_text_for_every_row_cell:n { \color{#1} },
+ fg .code:n = \__tblr_row_gput_cell:nn { foreground } {#1},
font .code:n = \__tblr_row_gput_cell:nn { font } { #1 \selectfont },
+ mode .code:n = \__tblr_row_gput_cell:nn { mode } {#1},
+ $ .meta:n = { mode = math },
+ $$ .meta:n = { mode = dmath },
+ cmd .code:n = \__tblr_row_gput_cell:nn { cmd } {#1},
ht .code:n = \__tblr_row_gput:ne { height } { \dim_eval:n {#1} },
co .code:n = \__tblr_row_gput:ne { coefficient } {#1},
preto .code:n = \__tblr_preto_text_for_every_row_cell:n {#1},
appto .code:n = \__tblr_appto_text_for_every_row_cell:n {#1},
- cmd .code:n = \__tblr_process_text_for_every_row_cell:n {#1},
abovesep .code:n = \__tblr_row_gput:ne { abovesep } { \dim_eval:n {#1} },
belowsep .code:n = \__tblr_row_gput:ne { belowsep } { \dim_eval:n {#1} },
rowsep .meta:n = { abovesep = #1, belowsep = #1},
@@ -2142,14 +2132,6 @@
}
}
-\cs_new_protected:Npn \__tblr_process_text_for_every_row_cell:n #1
- {
- \int_step_inline:nn { \c@colcount }
- {
- \__tblr_cell_process_text:enn { \int_use:N \c@rownum } {##1} {#1}
- }
- }
-
\cs_new_protected:Npn \__tblr_row_unknown_key:n #1
{
\regex_match:NnTF \c__tblr_is_number_key_regex {#1}
@@ -3397,7 +3379,9 @@
\cs_new_protected:Npn \__tblr_measure_cell_update_sizes:nnNNNN #1 #2 #3 #4 #5 #6
{
\__tblr_get_cell_alignments:nn {#1} {#2}
+ \__tblr_save_counters:n { trial }
\hbox_set:Nn \l_tmpa_box { \__tblr_get_cell_text:nn {#1} {#2} }
+ \__tblr_restore_counters:n { trial }
\__tblr_update_cell_size:nnNNNN {#1} {#2} #3 #4 #5 #6
\__tblr_update_row_size:nnNNN {#1} {#2} #4 #5 #6
\__tblr_update_col_size:nN {#2} #3
@@ -3416,13 +3400,45 @@
{ \__tblr_get_cell_text_real:nn { #1 } { #2 } }
}
+\tl_new:N \l__tblr_cell_fg_tl
+\tl_new:N \l__tblr_cell_cmd_tl
+\tl_new:N \l__tblr_cell_mode_tl
+\bool_new:N \l__tblr_cell_math_mode_bool
+\tl_const:Nn \l__tblr_cell_math_style_tl { \relax }
+\tl_const:Nn \l__tblr_cell_imath_style_tl { \textstyle }
+\tl_const:Nn \l__tblr_cell_dmath_style_tl { \displaystyle }
+
%% Get cell text, #1: row number, #2: column number
%% If the width of the cell is not set, split it with \\ and compute the width
%% Therefore we always get a vbox for any cell
\cs_new_protected:Npn \__tblr_get_cell_text_real:nn #1 #2
{
\group_begin:
- \tl_set:Nx \l__tblr_c_tl { \__tblr_spec_item:ne { text } {[#1][#2]} }
+ \tl_set:Nx \l__tblr_cell_cmd_tl
+ { \__tblr_data_item:neen { cell } {#1} {#2} { cmd } }
+ \tl_if_empty:NTF \l__tblr_cell_cmd_tl
+ { \tl_set:Nx \l__tblr_c_tl { \__tblr_spec_item:ne { text } {[#1][#2]} } }
+ {
+ \tl_set:Nx \l__tblr_c_tl { { \__tblr_spec_item:ne { text } {[#1][#2]} } }
+ \tl_put_left:NV \l__tblr_c_tl \l__tblr_cell_cmd_tl
+ }
+ \tl_set:Nx \l__tblr_cell_mode_tl
+ { \__tblr_data_item:neen { cell } {#1} {#2} { mode } }
+ \tl_if_empty:NT \l__tblr_cell_mode_tl
+ {
+ \bool_if:NTF \l__tblr_math_mode_bool
+ { \tl_set:Nn \l__tblr_cell_mode_tl { math } }
+ { \tl_set:Nn \l__tblr_cell_mode_tl { text } }
+ }
+ \tl_if_eq:NnTF \l__tblr_cell_mode_tl { text }
+ { \bool_set_false:N \l__tblr_cell_math_mode_bool }
+ {
+ \bool_set_true:N \l__tblr_cell_math_mode_bool
+ \tl_put_left:Nv \l__tblr_c_tl
+ { l__tblr_cell_ \l__tblr_cell_mode_tl _style_tl }
+ \tl_put_left:Nn \l__tblr_c_tl { $ }
+ \tl_put_right:Nn \l__tblr_c_tl { $ }
+ }
\tl_set:Nx \l__tblr_f_tl { \__tblr_data_item:neen { cell } {#1} {#2} { font } }
\tl_set:Nx \l__tblr_w_tl
{ \__tblr_data_item:neen { cell } {#1} {#2} { width } }
@@ -3437,15 +3453,17 @@
}
\dim_compare:nNnT { \l__tblr_w_tl } < { 0pt } % column width unset
{
- \bool_if:NTF \l__tblr_math_mode_bool
+ \bool_if:NTF \l__tblr_cell_math_mode_bool
{
- \hbox_set:Nn \l_tmpa_box { $\l__tblr_c_tl$ }
+ \hbox_set:Nn \l_tmpa_box { \l__tblr_c_tl }
\tl_set:Nx \l__tblr_w_tl { \box_wd:N \l_tmpa_box }
}
{
\__tblr_get_cell_size_with_box:
}
}
+ \tl_set:Nx \l__tblr_cell_fg_tl
+ { \__tblr_data_item:neen { cell } {#1} {#2} { foreground } }
\tl_put_left:NV \l__tblr_c_tl \l__tblr_f_tl
\__tblr_get_vcell_and_sizes:NN \l__tblr_c_tl \l__tblr_w_tl
\group_end:
@@ -3453,9 +3471,11 @@
\cs_new_protected:Npn \__tblr_get_cell_size_with_box:
{
+ \__tblr_save_counters:n { cell }
\tl_if_eq:NnTF \l__tblr_inner_spec_measure_tl { vbox }
{ \__tblr_get_cell_size_with_vbox: }
{ \__tblr_get_cell_size_with_hbox: }
+ \__tblr_restore_counters:n { cell }
}
%% Varwidth won't work as expected when \color command occurs in it,
@@ -3503,7 +3523,9 @@
\cs_new_protected:Npn \__tblr_get_vcell_and_sizes:NN #1 #2
{
\group_begin:
+ \__tblr_save_counters:n { cell }
\vbox_set_top:Nn \l_tmpa_box { \__tblr_make_vcell_text:NN #1 #2 }
+ \__tblr_restore_counters:n { cell }
\vbox_set:Nn \l_tmpb_box { \__tblr_make_vcell_text:NN #1 #2 }
\dim_gset:Nn \g__tblr_cell_wd_dim { \box_wd:N \l_tmpb_box }
\dim_gset:Nn \g__tblr_cell_ht_dim
@@ -3555,8 +3577,9 @@
\cs:w __tblr_halign_command_ \g__tblr_cell_halign_tl : \cs_end:
\mode_leave_vertical:
\box_use:N \l__tblr_strut_ht_box
- \bool_if:NTF \l__tblr_math_mode_bool
- { $#1$ }
+ \tl_if_empty:NF \l__tblr_cell_fg_tl { \exp_args:NV \color \l__tblr_cell_fg_tl }
+ \bool_if:NTF \l__tblr_cell_math_mode_bool
+ { #1 }
{ \__tblr_rescan_cell_tokens:N #1 }
\box_use:N \l__tblr_strut_dp_box
}
@@ -3571,6 +3594,8 @@
\tl_if_empty:NTF \l__tblr_inner_spec_verb_tl
{ #1 }
{
+ %% insert space characters after some control sequences first (issue #112)
+ \regex_replace_all:nnN { (\c{[A-Za-z]*}) ([A-Za-z]) } { \1 \ \2 } #1
\regex_replace_all:nnN { . } { \c{string} \0 } #1
\tl_set:Nx #1 { #1 \noexpand \empty }
\exp_args:NV \tex_scantokens:D #1
@@ -4644,7 +4669,7 @@
%% since we want a correct hangindent caption paragraph.
\DefTblrTemplate { caption-tag } { empty } { }
-\DefTblrTemplate { caption-tag } { normal } { Table \hspace{0.25em} \thetable }
+\DefTblrTemplate { caption-tag } { normal } { \tablename\hspace{0.25em}\thetable }
\SetTblrTemplate { caption-tag } { normal }
\DefTblrTemplate { caption-sep } { empty } { }
@@ -5386,11 +5411,7 @@
\vbox_set:Nn \l__tblr_table_box
{
\box_use:N \l__tblr_table_head_box
- \hrule height ~ 0pt
- \box_use:N \l__tblr_row_head_box
- \hrule height ~ 0pt
- \box_use:N \l__tblr_table_box
- \hrule height ~ 0pt
+ \__tblr_cover_two_vboxes:NN \l__tblr_row_head_box \l__tblr_table_box
\box_use:N \l__tblr_row_foot_box
\hrule height ~ 0pt
\box_use:N \l__tblr_table_foot_box
@@ -5399,6 +5420,22 @@
}
\cs_generate_variant:Nn \__tblr_build_page_table:nnn { nnx }
+%% To solve the problem of missing hlines of long tables in some PDF readers,
+%% We need to draw body rows before head rows (see issue #88).
+\cs_new_protected:Npn \__tblr_cover_two_vboxes:NN #1 #2
+ {
+ \dim_set:Nn \l_tmpa_dim { \box_ht:N #1 + \box_dp:N #1 }
+ \dim_set:Nn \l_tmpb_dim { \box_ht:N #2 + \box_dp:N #2 }
+ \skip_vertical:N \l_tmpa_dim
+ \hrule height ~ 0pt
+ \box_use:N #2
+ \skip_vertical:n { - \l_tmpa_dim - \l_tmpb_dim }
+ \hrule height ~ 0pt
+ \box_use:N #1
+ \skip_vertical:N \l_tmpb_dim
+ \hrule height ~ 0pt
+ }
+
\cs_new_protected:Npn \__tblr_halign_whole:Nn #1 #2
{
\noindent
@@ -6451,6 +6488,72 @@
\clist_map_inline:nn {#1} { \use:c { __tblr_use_lib_ ##1: } }
}
+%% Library amsmath and environments +array, +matrix, +cases, ...
+
+\NewTblrLibrary { amsmath }
+ {
+ \RequirePackage { amsmath, environ }
+ \NewTblrEnviron { +array }
+ \SetTblrInner[+array]{colsep = 5pt}
+ \NewEnviron { +matrix } [1] [] {
+ \begin{+array}[expand = \BODY]{
+ column{1} = {leftsep = 0pt}, column{Z} = {rightsep = 0pt},
+ cells = {c}, ##1
+ }
+ \BODY
+ \end{+array}
+ }
+ \NewEnviron { +bmatrix } [1] [] {
+ \left[\begin{+array}[expand = \BODY]{
+ column{1} = {leftsep = 0pt}, column{Z} = {rightsep = 0pt},
+ cells = {c}, ##1
+ }
+ \BODY
+ \end{+array}\right]
+ \ignorespacesafterend
+ }
+ \NewEnviron { +Bmatrix } [1] [] {
+ \left\lbrace\begin{+array}[expand = \BODY]{
+ column{1} = {leftsep = 0pt}, column{Z} = {rightsep = 0pt},
+ cells = {c}, ##1
+ }
+ \BODY
+ \end{+array}\right\rbrace
+ }
+ \NewEnviron { +pmatrix } [1] [] {
+ \left(\begin{+array}[expand = \BODY]{
+ column{1} = {leftsep = 0pt}, column{Z} = {rightsep = 0pt},
+ cells = {c}, ##1
+ }
+ \BODY
+ \end{+array}\right)
+ }
+ \NewEnviron { +vmatrix } [1] [] {
+ \left\lvert\begin{+array}[expand = \BODY]{
+ column{1} = {leftsep = 0pt}, column{Z} = {rightsep = 0pt},
+ cells = {c}, ##1
+ }
+ \BODY
+ \end{+array}\right\rvert
+ }
+ \NewEnviron { +Vmatrix } [1] [] {
+ \left\lVert\begin{+array}[expand = \BODY]{
+ column{1} = {leftsep = 0pt}, column{Z} = {rightsep = 0pt},
+ cells = {c}, ##1
+ }
+ \BODY
+ \end{+array}\right\rVert
+ }
+ \NewEnviron { +cases } [1] [] {
+ \left\lbrace\begin{+array}[expand = \BODY]{
+ column{1} = {leftsep = 0pt}, column{Z} = {rightsep = 0pt},
+ colspec = {ll}, stretch = 1.2, ##1
+ }
+ \BODY
+ \end{+array}\right.
+ }
+ }
+
%% Library booktabs and commands \toprule, \midrule, \bottomrule
\NewTblrLibrary { booktabs }
@@ -6507,6 +6610,32 @@
{ \SetVspace { abovespace+ = (##1) / 2, belowspace+ = (##1) / 2 } }
}
+%% Library counter for resetting all counters
+
+\tl_new:N \__tblr_saved_trial_counters_tl
+\tl_new:N \__tblr_saved_cell_counters_tl
+
+\cs_new_protected:Npn \__tblr_save_counters:n #1 { }
+\cs_new_protected:Npn \__tblr_restore_counters:n #1 { }
+
+%% We use code from tabularx package for resetting all LaTeX counters,
+%% where internal macro \cl@@ckpt looks like the following:
+%% \@elt{page} \@elt{equation} \@elt{enumi} \@elt{enumii} \@elt{enumiii} ...
+
+\NewTblrLibrary { counter }
+ {
+ \cs_set_protected:Npn \__tblr_save_counters:n ##1
+ {
+ \def \@elt ####1 { \global\value{####1} = \the\value{####1} \relax }
+ \tl_set:cx { __tblr_saved_ ##1 _counters_tl } { \cl@@ckpt }
+ \let \@elt = \relax
+ }
+ \cs_set_protected:Npn \__tblr_restore_counters:n ##1
+ {
+ \tl_use:c { __tblr_saved_ ##1 _counters_tl }
+ }
+ }
+
%% Library diagbox and command \diagbox
\NewTblrLibrary { diagbox }
@@ -6538,7 +6667,7 @@
\cs_new_protected:Npn \__tblr_lib_diagbox_math_or_text:n #1
{
- \bool_if:NTF \l__tblr_math_mode_bool {$#1$} {#1}
+ \bool_if:NTF \l__tblr_cell_math_mode_bool {$#1$} {#1}
}
\box_new:N \l__tblr_diag_box
@@ -6566,7 +6695,7 @@
\cs_new_protected:Npn \__tblr_siunitx_setcolumn:n ##1
{
\__tblr_column_gput_cell:nn { si } {##1}
- \__tblr_process_text_for_every_column_cell:n { \TblrNum }
+ \__tblr_column_gput_cell:nn { cmd } { \TblrNum }
}
\NewDocumentCommand \TblrNum { m }
{
diff --git a/macros/latex/contrib/tabularray/tabularray.tex b/macros/latex/contrib/tabularray/tabularray.tex
index 0d502f3bbc..bda64717b4 100644
--- a/macros/latex/contrib/tabularray/tabularray.tex
+++ b/macros/latex/contrib/tabularray/tabularray.tex
@@ -1,6 +1,9 @@
% -*- coding: utf-8 -*-
% !TEX program = lualatex
\documentclass[oneside]{book}
+\newcommand*{\myversion}{2021P}
+\newcommand*{\mylpad}[1]{\ifnum#1<10 0\the#1\else\the#1\fi}
+
\usepackage[a4paper,margin=2.5cm]{geometry}
\usepackage{codehigh} % https://ctan.org/pkg/codehigh
@@ -11,7 +14,7 @@
\usepackage[firstpage=true]{background}
\backgroundsetup{contents={}}
-\UseTblrLibrary{booktabs,diagbox,siunitx,varwidth}
+\UseTblrLibrary{amsmath,booktabs,counter,diagbox,siunitx,varwidth}
\usepackage{hyperref}
\hypersetup{
@@ -58,10 +61,7 @@
\end{tcolorbox}
}
-\renewcommand*{\thefootnote}{*}
-
-\newcommand*{\myversion}{2021N}
-\newcommand*{\mylpad}[1]{\ifnum#1<10 0\the#1\else\the#1\fi}
+%\renewcommand*{\thefootnote}{*}
\colorlet{highback}{azure9}
\CodeHigh{language=latex/table,style/main=highback,style/code=highback}
@@ -353,6 +353,9 @@ therefore it always avoids vertical overflow:
\end{tblr}
\end{demohigh}
+If you want to distribute extra vertical space evenly to two rows,
+you may use \verb!vspan! option described in Chapter \ref{chap:extra}.
+
\section{Multi Rows and Columns}
It was a hard job to typeset cells with multiple rows and multiple columns. For example:
@@ -607,6 +610,7 @@ All available keys for hlines and vlines are described in Table \ref{key:hline}
\underline{\K{fg}} & rule color name & \None \\
\K{leftpos} & crossing or trimming position at the left side & \V{1} \\
\K{rightpos} & crossing or trimming position at the right side & \V{1} \\
+ \K{endpos} & adjust leftpos/rightpos for only the leftmost/rightmost column & \V{false} \\
\K{abovespace} & set \V{belowsep} of previous row (see Table \ref{key:row}) & \V{2pt} \\
\K{belowspace} & set \V{abovesep} of current row (see Table \ref{key:row}) & \V{2pt} \\
\K{abovespace+} & increase \V{belowsep} of previous row & \None \\
@@ -657,14 +661,13 @@ Another pair of braces before will select segments in all hlines/vlines.
\begin{demohigh}
\begin{tblr}{
vlines = {1,3,5}{dashed},
- vlines = {2,4,6}{solid},
+ vlines = {2,4}{solid},
}
Alpha & Beta & Gamma & Delta \\
Epsilon & Zeta & Eta & Theta \\
Iota & Kappa & Lambda & Mu \\
Nu & Xi & Omicron & Pi \\
Rho & Sigma & Tau & Upsilon \\
- Phi & Chi & Psi & Omega \\
\end{tblr}
\end{demohigh}
@@ -682,7 +685,6 @@ Advanced users could read the source code for this.)
Iota & Kappa & Lambda & Mu \\
Nu & Xi & Omicron & Pi \\
Rho & Sigma & Tau & Upsilon \\
- Phi & Chi & Psi & Omega \\
\end{tblr}
\end{demohigh}
@@ -795,6 +797,22 @@ Here is an example for these four keys:
\end{tblr}
\end{demohigh}
+There is also an \verb!endpos! option for adjusting \verb!leftpos!/\verb!rightpos!
+for only the leftmost/rightmost column:
+
+\begin{demohigh}
+\begin{tblr}{
+ hline{1,4} = {1}{-}{},
+ hline{1,4} = {2}{-}{},
+ hline{2,3} = {leftpos = -1, rightpos = -1, endpos},
+ vline{1,4} = {abovepos = 1, belowpos = 1},
+}
+ Alpha & Beta & Gamma \\
+ Epsilon & Zeta & Eta \\
+ Iota & Kappa & Lambda \\
+\end{tblr}
+\end{demohigh}
+
\subsection{Hlines and Vlines in Old Interfaces}
The \verb!\hline! command has an optional argument which accepts key-value options.
@@ -882,7 +900,7 @@ All available keys for cells are described in Table \ref{key:cell} and Table \re
caption = {Keys for the Content of Cells},
label = {key:cell},
remark{Note} = {In most cases, you can omit the underlined key names and write only their values.}
-]{}
+]{verb}
Key & Description and Values & Initial Value \\
\underline{\K{halign}}
& horizontal alignment: \V{l} (left), \V{c} (center), \V{r} (right) or \V{j} (justify)
@@ -895,9 +913,12 @@ All available keys for cells are described in Table \ref{key:cell} and Table \re
\underline{\K{bg}} & background color name & \None \\
\K{fg} & foreground color name & \None \\
\K{font} & font commands & \None \\
+ \K{mode} & set cell mode: \V{math}, \V{imath}, \V{dmath} or \V{text} & \None \\
+ \verb!$! & same as \V{mode=math} & \None \\
+ \verb!$$! & same as \V{mode=dmath} & \None \\
+ \K{cmd} & execute command for the cell text & \None \\
\K{preto} & prepend text to the cell & \None \\
\K{appto} & append text to the cell & \None \\
- \K{cmd} & execute command for the cell text & \None \\
\end{spectblr}
\vspace{-2em}
\begin{spectblr}[
@@ -922,7 +943,16 @@ Option \verb!cells! is for setting all cells.
\end{tblr}
\end{demohigh}
-Option \verb!cell{i}{j}! is for setting some cells.
+Option \verb!cell{i}{j}! is for setting some cells,
+where \verb!i! stands for the row numbers and \verb!j! stands for the column numbers.
+\nopagebreak
+\begin{demohigh}
+\begin{tblr}{
+ cell{1}{2-4} = {cmd=\fbox}
+}
+ Alpha & Beta & Gamma & Delta
+\end{tblr}
+\end{demohigh}
\begin{demohigh}
\begin{tblr}{
@@ -1007,7 +1037,7 @@ All available keys for rows and columns are described in Table \ref{key:row} and
caption = {Keys for Rows},
label = {key:row},
remark{Note} = {In most cases, you can omit the underlined key names and write only their values.}
-]{}
+]{verb}
Key & Description and Values & Initial Value \\
\underline{\K{halign}}
& horizontal alignment: \V{l} (left), \V{c} (center), or \V{r} (right)
@@ -1020,6 +1050,10 @@ All available keys for rows and columns are described in Table \ref{key:row} and
\underline{\K{bg}} & background color name & \None \\
\K{fg} & foreground color name & \None \\
\K{font} & font commands & \None \\
+ \K{mode} & set mode for row cells: \V{math}, \V{imath}, \V{dmath} or \V{text} & \None \\
+ \verb!$! & same as \V{mode=math} & \None \\
+ \verb!$$! & same as \V{mode=dmath} & \None \\
+ \K{cmd} & execute command for every cell text & \None \\
\K{abovesep} & set vertical space above the row & \V{2pt} \\
\K{abovesep+} & increase vertical space above the row & \None \\
\K{belowsep} & set vertical space below the row & \V{2pt} \\
@@ -1028,14 +1062,13 @@ All available keys for rows and columns are described in Table \ref{key:row} and
\K{rowsep+} & increase vertical space above and below the row & \None \\
\K{preto} & prepend text to every cell (like \V{>} specifier in \K{rowspec}) & \None \\
\K{appto} & append text to every cell (like \V{<} specifier in \K{rowspec}) & \None \\
- \K{cmd} & execute command for every cell text & \None \\
\end{spectblr}
\vspace{-2em}
\begin{spectblr}[
caption = {Keys for Columns},
label = {key:column},
remark{Note} = {In most cases, you can omit the underlined key names and write only their values.}
-]{}
+]{verb}
Key & Description and Values & Initial Value \\
\underline{\K{halign}}
& horizontal alignment: \V{l} (left), \V{c} (center), or \V{r} (right)
@@ -1049,6 +1082,10 @@ All available keys for rows and columns are described in Table \ref{key:row} and
\underline{\K{bg}} & background color name & \None \\
\K{fg} & foreground color name & \None \\
\K{font} & font commands & \None \\
+ \K{mode} & set mode for column cells: \V{math}, \V{imath}, \V{dmath} or \V{text} & \None \\
+ \verb!$! & same as \V{mode=math} & \None \\
+ \verb!$$! & same as \V{mode=dmath} & \None \\
+ \K{cmd} & execute command for every cell text & \None \\
\K{leftsep} & set horizontal space to the left of the column & \V{6pt} \\
\K{leftsep+} & increase horizontal space to the left of the column & \None \\
\K{rightsep} & set horizontal space to the right of the column & \V{6pt} \\
@@ -1057,7 +1094,6 @@ All available keys for rows and columns are described in Table \ref{key:row} and
\K{colsep+} & increase horizontal space to both sides of the column & \None \\
\K{preto} & prepend text to every cell (like \V{>} specifier in \K{colspec}) & \None \\
\K{appto} & append text to every cell (like \V{<} specifier in \K{colspec}) & \None \\
- \K{cmd} & execute command for every cell text & \None \\
\end{spectblr}
\subsection{Rows and Columns in New Interfaces}
@@ -1093,7 +1129,7 @@ Options \verb!row{i}! and \verb!column{j}! are for setting some rows and columns
\end{tblr}
\end{demohigh}
-The following example demonstrates the usages of \verb!bg!, \verb!fg! and \verb!font! keys.
+The following example demonstrates the usages of \verb!bg!, \verb!fg! and \verb!font! keys:
\nopagebreak
\begin{demohigh}
\begin{tblr}{
@@ -1108,8 +1144,23 @@ The following example demonstrates the usages of \verb!bg!, \verb!fg! and \verb!
\end{tblr}
\end{demohigh}
+The following example demonstrates the usages of \verb!mode! key:
+\nopagebreak
+\begin{demohigh}
+$\begin{tblr}{
+ column{1} = {mode=text},
+ column{3} = {mode=dmath},
+}
+\hline
+ Alpha & \frac12 & \frac12 \\
+ Epsilon & \frac34 & \frac34 \\
+ Iota & \frac56 & \frac56 \\
+\hline
+\end{tblr}$
+\end{demohigh}
+
The following example demonstrates the usages of
-\verb!abovesep!, \verb!belowsep!, \verb!leftsep!, \verb!rightsep! keys.
+\verb!abovesep!, \verb!belowsep!, \verb!leftsep!, \verb!rightsep! keys:
%\nopagebreak
\begin{demohigh}
\begin{tblr}{
@@ -1180,6 +1231,19 @@ The following example demonstrates the usage of \verb!width! option.
\end{tblr}
\end{demohigh}
+You can omit \verb!colspec! name if it is the only key you use inside the mandatory argument.
+The following example demonstrates the usages of \verb!$! and \verb!$$! keys:
+\nopagebreak
+\begin{demohigh}
+\begin{tblr}{Q[l]Q[r,$]Q[r,$$]}
+\hline
+ Alpha & \frac12 & \frac12 \\
+ Epsilon & \frac34 & \frac34 \\
+ Iota & \frac56 & \frac56 \\
+\hline
+\end{tblr}
+\end{demohigh}
+
\subsection{Column Types}
The \verb!tabularray! package has only one type of primitive column: the \verb!Q! column.
@@ -1236,6 +1300,7 @@ Any new row type must be defined with \verb!\NewRowType! command.
It can have an optional argument when it's defined.
\chapter{Extra Interfaces}
+\label{chap:extra}
\section{Table Specifications}
@@ -1408,7 +1473,9 @@ The following example demonstrates how to define a new table command:
\verb!Tabularray! need to see every \verb!&! and \verb!\\! when splitting the table body
with \verb!l3regex!. And you can not put cell text inside any table command defined with
\verb!\NewTableCommand!. But you could use outer specification \verb!expand! to make \verb!tabularray!
-expand every occurrence of a specified macro \underline{once} before splitting the table body:
+expand every occurrence of a specified macro \underline{once} before splitting the table body.
+The macro \underline{can not} be defined with \verb!\NewDocumentCommand! or
+\verb!\NewExpandableDocumentCommand!, and \underline{can not} have optional argument.
\begin{demohigh}
\def\tblrbody{
@@ -1487,14 +1554,12 @@ All tracing messages will be written to the log files.
\chapter{Use Long Tables}
\label{chap:long}
-\mywarning{chapter}
-
\section{A Simple Example}
-In fact, to make a decent long table with header and footer, it is better to separate header/footer as
+To make a decent long table with header and footer, it is better to separate header/footer as
\underline{table head/foot} (which includes caption, footnotes, continuation text)
and \underline{row head/foot} (which includes some rows of the table that should appear in every page).
-By this approach, alternating row colors should work as expected.
+By this approach, alternating row colors work as expected.
\NewTblrTheme{fancy}{
\SetTblrStyle{firsthead}{font=\bfseries}
@@ -1689,25 +1754,25 @@ Alpha & Beta & Gamma \\
Rho & Sigma & Tau \\
\hline
Phi & Chi & Psi \\
-%\hline
-% Alpha & Beta & Gamma \\
-%\hline
-% Epsilon & Zeta & Eta \\
-%\hline
-% Iota & Kappa & Lambda \\
-%\hline
-% Nu & Xi & Omicron \\
-%\hline
-% Rho & Sigma & Tau \\
-%\hline
-% Phi & Chi & Psi \\
+\hline
+ Alpha & Beta & Gamma \\
+\hline
+ Epsilon & Zeta & Eta \\
+\hline
+ Iota & Kappa & Lambda \\
+\hline
+ Nu & Xi & Omicron \\
+\hline
+ Rho & Sigma & Tau \\
+\hline
+ Phi & Chi & Psi \\
\hline
Foot & Foot & Foot \\
\hline
\end{longtblr}
As you can see in the above example, the appearance of long tables of \verb!tabularray! package
-is similar to that of \verb!threeparttable! and \verb!threeparttablex! packages.
+is similar to that of \verb!threeparttablex! packages.
We support table footnotes, but not page footnotes in \verb!tabularray! package.
\newpage
@@ -1782,7 +1847,7 @@ In the above example, We set \verb!rowhead=2! and \verb!rowfoot=1!.
\begin{spectblr}[
caption = {Inner Specifications for Row Heads and Row Foots}
]{}
- Key Nama & Key Description & Initial Value \\
+ Key Name & Key Description & Initial Value \\
\V{rowhead} & number of the first rows of the table appear in every page & \V{0} \\
\V{rowfoot} & number of the last rows of the table appear in every page & \V{0} \\
\end{spectblr}
@@ -1793,7 +1858,7 @@ Their options are outer specifications and should be put in the optional argumen
\begin{spectblr}[
caption = {Outer Specifications for Table Heads and Table Foots}
]{verb}
- Key Nama & Key Description & Initial Value \\
+ Key Name & Key Description & Initial Value \\
\V{headsep} & vertical space between table head and table body & \V{6pt} \\
\V{footsep} & vertical space between table foot and table body & \V{6pt} \\
\V{presep} & vertical space between table head and the above text & \verb!1.5\bigskipamount! \\
@@ -2084,6 +2149,49 @@ TEXT\begin{talltblr}[
The \verb!tabularray! package emulates or fixes some commands in other packages.
To avoid potential conflict, you need to enable them with \verb!\UseTblrLibrary! command.
+\section{Library \texttt{amsmath}}
+
+With \verb!\UseTblrLibrary{amsmath}! in the preamble of the document,
+\verb!tabularray! will load \verb!amsmath! package, and define \verb!+array!, \verb!+matrix!,
+\verb!+bmatrix!, \verb!+Bmatrix!, \verb!+pmatrix!, \verb!+vmatrix!, \verb!+Vmatrix! and \verb!+cases!
+environments. Each of the environments is similar to the environment without \verb!+! prefix in its name,
+but has default \verb!rowsep=2pt! just as \verb!tblr! environment. Every environment
+except \verb!+array! accepts an optional argument, where you can write inner specifications.
+
+\begin{demo}
+$\begin{pmatrix}
+ \dfrac{2}{3} & \dfrac{2}{3} & \dfrac{1}{3} \\
+ \dfrac{2}{3} & -\dfrac{1}{3} & -\dfrac{2}{3} \\
+ \dfrac{1}{3} & -\dfrac{2}{3} & \dfrac{2}{3} \\
+\end{pmatrix}$
+\end{demo}
+
+\begin{demohigh}
+$\begin{+pmatrix}[cells={r},row{2}={purple8}]
+ \dfrac{2}{3} & \dfrac{2}{3} & \dfrac{1}{3} \\
+ \dfrac{2}{3} & -\dfrac{1}{3} & -\dfrac{2}{3} \\
+ \dfrac{1}{3} & -\dfrac{2}{3} & \dfrac{2}{3} \\
+\end{+pmatrix}$
+\end{demohigh}
+
+\begin{demo}
+$f(x)=\begin{cases}
+ 0, & x=1; \\
+ \dfrac{1}{3}, & x=2; \\
+ \dfrac{2}{3}, & x=3; \\
+ 1, & x=4. \\
+\end{cases}$
+\end{demo}
+
+\begin{demohigh}
+$f(x)=\begin{+cases}
+ 0, & x=1; \\
+ \dfrac{1}{3}, & x=2; \\
+ \dfrac{2}{3}, & x=3; \\
+ 1, & x=4. \\
+\end{+cases}$
+\end{demohigh}
+
\section{Library \texttt{booktabs}}
With \verb!\UseTblrLibrary{booktabs}! in the preamble of the document,
@@ -2212,6 +2320,21 @@ and the other half to \verb!abovesep! of current row.
\end{booktabs}
\end{demohigh}
+\section{Library \texttt{counter}}
+
+You need to load \verb!counter! library with \verb!\UseTblrLibrary{counter}!,
+if you want to modify some LaTeX counters inside \verb!tabularray! tables.
+
+\begin{demohigh}
+\newcounter{mycnta}
+\newcommand{\mycnta}{\stepcounter{mycnta}\arabic{mycnta}}
+\begin{tblr}{hlines}
+ \mycnta & \mycnta & \mycnta \\
+ \mycnta & \mycnta & \mycnta \\
+ \mycnta & \mycnta & \mycnta \\
+\end{tblr}
+\end{demohigh}
+
\section{Library \texttt{diagbox}}
When writing \verb!\UseTblrLibrary{diagbox}! in the preamble of the document,
@@ -2297,11 +2420,12 @@ Also you must use \verb!l!, \verb!c! or \verb!r! to set horizontal alignment for
\end{tblr}
\end{demohigh}
-Both \verb!S! and \verb!s! columns are supported. In fact, These two columns are defined as follows:
+Both \verb!S! and \verb!s! columns are supported. In fact, These two columns have been defined as follows:
\begin{codehigh}
-\NewColumnType{S}[1][]{Q[si={##1},c]}
-\NewColumnType{s}[1][]{Q[si={##1},c,cmd=\TblrUnit]}
+\NewColumnType{S}[1][]{Q[si={#1},c]}
+\NewColumnType{s}[1][]{Q[si={#1},c,cmd=\TblrUnit]}
\end{codehigh}
+You don't need to and are not allowed to define them again.
\section{Library \texttt{varwidth}}