summaryrefslogtreecommitdiff
path: root/support/TeX4ht/source
diff options
context:
space:
mode:
Diffstat (limited to 'support/TeX4ht/source')
-rw-r--r--support/TeX4ht/source/ChangeLog230
-rw-r--r--support/TeX4ht/source/Makefile6
-rw-r--r--support/TeX4ht/source/mktex4ht-cnf.tex14
-rw-r--r--support/TeX4ht/source/tex4ht-4ht.tex762
-rw-r--r--support/TeX4ht/source/tex4ht-fonts-noncjk.tex205
-rw-r--r--support/TeX4ht/source/tex4ht-html4.tex127
-rw-r--r--support/TeX4ht/source/tex4ht-info.tex14
-rw-r--r--support/TeX4ht/source/tex4ht-jats.tex26
-rw-r--r--support/TeX4ht/source/tex4ht-mathjax.tex38
-rw-r--r--support/TeX4ht/source/tex4ht-mathml.tex237
-rw-r--r--support/TeX4ht/source/tex4ht-sty.tex16
-rw-r--r--support/TeX4ht/source/tex4ht-t4ht.tex4
-rw-r--r--support/TeX4ht/source/wripro.tex11
13 files changed, 1521 insertions, 169 deletions
diff --git a/support/TeX4ht/source/ChangeLog b/support/TeX4ht/source/ChangeLog
index 890eef5005..382d834693 100644
--- a/support/TeX4ht/source/ChangeLog
+++ b/support/TeX4ht/source/ChangeLog
@@ -1,3 +1,233 @@
+2024-11-10 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-4ht.tex (caption.4ht): declare caption hooks only if they
+ are undefined.
+ https://tex.stackexchange.com/a/730529/2891
+
+2024-11-05 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-4ht.tex (
+ bigfoot.4ht, usepackage.4ht, bigfoot-hooks.4ht
+ ): added support for the Manyfoot package.
+ https://tex.stackexchange.com/a/729975/2891
+
+2024-11-03 Karl Berry <karl@freefriends.org>
+
+ * tex4ht-4ht.tex (amsfonts.4ht, french.4ht, mempatch.4ht):
+ \write-1 version.
+
+2024-11-01 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-4ht.tex (
+ usepackage.4ht, manyfoot.4ht, manyfoot-hooks.4ht
+ ): added support for the Manyfoot package.
+ https://tex.stackexchange.com/a/729975/2891
+
+2024-10-29 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-4ht.tex (french.4ht),
+ * tex4ht-html4.tex (html4.4ht): configure \part to omit the part
+ number.
+ https://github.com/michal-h21/make4ht/issues/155
+
+2024-10-25 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-mathjax.tex (mathjax-latex-4ht.4ht): restore math
+ environments before \tikz@installcommands, to fix issues with
+ the matrix environment.
+
+ * tex4ht-4ht.tex (french.4ht): fixed \part command in TOC.
+ https://github.com/michal-h21/make4ht/issues/155
+
+2024-10-18 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-4ht.tex (caption.4ht): fixed support for the \caption
+ command in classes where we don't provide \Configure{caption}. Found
+ in Svjour3.
+
+ * tex4ht-4ht.tex (nicematrix.4ht): added basic support for the
+ Nicematrix package.
+
+2024-10-14 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-html4.tex (html4.4ht): fixed formatting of the \rtitlex
+ command of Ltugboat class.
+ http://puszcza.gnu.org.ua/bugs/?639
+
+2024-10-13 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-4ht.tex (latex.4ht): fixed support for LaTeX cmd hooks in
+ \@sect and \@ssect commands.
+ http://puszcza.gnu.org.ua/bugs/?639
+
+2024-10-10 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-mathml.tex (mathml.4ht): removed spurious space after
+ \left.
+ https://tex.stackexchange.com/a/728351/2891
+
+ * tex4ht-4ht.tex (stmaryrd.4ht),
+ * tex4ht-mathml.tex (mathml.4ht): added support for \llbracket and
+ \rrbracket in MathML.
+ https://tex.stackexchange.com/a/728351/2891
+
+ * tex4ht-html4.tex (html4.4ht): added support for colored \cline.
+ https://tug.org/pipermail/tex4ht/2024q4/003598.html
+
+2024-10-09 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-4ht.tex (makecell.4ht): added support for the Makecell
+ package.
+ https://tug.org/pipermail/tex4ht/2024q4/003596.html
+
+2024-10-08 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-html4.tex (html4.4ht): don't override \hline:color in
+ booktabs if it is already defined.
+ https://tug.org/pipermail/tex4ht/2024q4/003594.html
+
+2024-10-06 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-html4.tex (html4.4ht): use Colortbl's \arrayrulecolor also
+ for vertical table lines.
+ https://tug.org/pipermail/tex4ht/2024q4/003589.html
+
+2024-10-04 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-4ht.tex (fancyvrb.4ht): added extra check for the
+ definition of \FancyVerbBackgroundColor.
+
+2024-10-03 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-4ht.tex (lua-ul.4ht),
+ * tex4ht-html4.tex (html4.4ht): added support for the Lua-ul
+ package.
+
+2024-10-01 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-4ht.tex (piton.4ht): prevent default use of visible space
+ characters.
+
+ * tex4ht-4ht.tex (piton.4ht): load Xcolor if not already loaded.
+
+2024-09-30 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-4ht.tex (colortbl-hooks.4ht, colortbl.4ht): added support
+ for the \arrayrulecolor command used in the document preamble.
+ https://puszcza.gnu.org.ua/bugs/?636
+
+ * tex4ht-html4.tex (html4.4ht): don't add extra black rule at the
+ first \hline in table.
+ https://puszcza.gnu.org.ua/bugs/?636
+
+ * tex4ht-4ht.tex (longtable.4ht): fixed support for the Colortbl
+ \hline.
+ https://puszcza.gnu.org.ua/bugs/?636
+
+2024-09-27 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-html4.tex (html4-math.4ht),
+ * tex4ht-mathjax.tex (mathjax-latex-4ht.4ht): enclose math elements
+ in MathJax in HTML tags.
+ https://tex.stackexchange.com/a/727413/2891
+
+ * tex4ht-html4.tex (html4-math.4ht): don't add link to the MathJax
+ script if the address is empty.
+
+2024-09-26 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-4ht.tex (fancyvrb.4ht): fixed support for background
+ colors.
+
+ * tex4ht-4ht.tex (minted.4ht): removed minted@colorbg env, to fix
+ support for Minted 3.0.
+
+2024-09-24 Karl Berry <karl@freefriends.org>
+
+ * wripro.tex: copyright 2024.
+ * Makefile (tex4ht_sty_derived): depends on wripro.tex.
+
+2024-09-23 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-4ht.tex (amsmath.4ht): fixed support for superscripts and
+ subscripts in equation tags (like \tag{$e_{1}$}).
+
+ * tex4ht-4ht.tex (th4.4ht),
+ * tex4ht-info.tex (info4ht.4ht),
+ * tex4ht-sty.tex (tex4ht.sty),
+ * wripro.tex: renamed internal TeX4ht command \Ref to \XRef, to
+ prevent clashes with \Ref provided by LaTeX.
+
+ * tex4ht-4ht.tex (latex.4ht): fixed support for superscripts and
+ subscripts that are used values in labels (like in
+ \tag{$e_{1}$}\label{eq1}). Thanks to Linas Stonys.
+
+2024-09-11 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-mathjax.tex (mathjax-latex-4ht.4ht): prevent insertion of
+ spaces after \begin and \end in \VerbMath.
+
+2024-09-10 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-mathjax.tex (mathjax-latex-4ht.4ht): use \detokenize again,
+ the alternative method could lead to commands joined with the
+ following text (\int A to \intA).
+
+2024-09-09 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-4ht.tex (usepackage.4ht, enumitem-hooks.4ht, enumitem.4ht),
+ * tex4ht-html4.tex (html4.4ht): added support for environments
+ defined using \newlist.
+ https://github.com/michal-h21/make4ht/issues/150
+
+2024-09-03 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-fonts-noncjk.tex (
+ ./tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/bbm/bbm.htf
+ ): added support for the BBM font. Thanks to Arkady Benediktov.
+ * tex4ht-fonts-noncjk.tex (
+ ./tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/TeXvect10/vect10.htf
+ ./tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/TeXvect10/vect.htf
+ ): fixed Esvect fonts characters. Thanks to Arkady Benediktov.
+ * tex4ht-mathml.tex (mathml.4ht): use actual arrow symbol defined in
+ the vect10.htf font.
+
+2024-08-27 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-mathml.tex (mathml.4ht): fixed support of upper case Greek
+ letters inside pictures.
+ https://tex.stackexchange.com/q/725157/2891
+
+2024-08-19 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-4ht.tex (moderncv.4ht),
+ * tex4ht-html4.tex (html4.4ht): added support for the Moderncv
+ package.
+ https://tex.stackexchange.com/q/721180/2891
+
+2024-08-13 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-4ht.tex (amsfonts.4ht): fixed support for \mathbb and
+ \mathfrak.
+
+ * tex4ht-jats.tex (jats.4ht): added support for LaTeX
+ bibliographies.
+
+2024-08-11 Karl Berry <karl@freefriends.org>
+
+ * tex4ht-mathml.tex (html-mml.4ht): copyright 2024.
+
+2024-08-02 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-mathml.tex (mathml.4ht): added "texsource" option. It will
+ keep the original LaTeX code as an annotation in MathML.
+ https://chat.stackexchange.com/rooms/154333/discussion-on-question-by-yannisl-alternatives-to-mathml-for-pdf-tagging
+
+ * tex4ht-4ht.tex (esvect.4ht),
+ * tex4ht-mathml.tex (mathml.4ht): added support for the Esvect
+ package.
+ https://tex.stackexchange.com/a/723587/2891
+
2024-07-31 Michal Hoftich <michal.h21@gmail.com>
* tex4ht-fonts-noncjk.tex (
diff --git a/support/TeX4ht/source/Makefile b/support/TeX4ht/source/Makefile
index 5328185f78..16da59e03c 100644
--- a/support/TeX4ht/source/Makefile
+++ b/support/TeX4ht/source/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile 1538 2024-07-07 15:55:16Z karl $
+# $Id: Makefile 1558 2024-09-24 17:22:45Z karl $
# This file is public domain. Originally written 2010, Karl Berry.
# Assumes GNU make.
@@ -385,8 +385,6 @@ endif
derived += $(tex4ht_mathjax_derived)
tex4ht_mathjax_derived = mathjax-latex-4ht.4ht
-# wripro.tex generates nothing (not literate).
-
ifneq ($(do_java),2)
derived += $(xtpipes_derived)
xtpipes_derived = \
@@ -577,7 +575,7 @@ $(tex4ht_ooimpress_derived): tex4ht-ooimpress.tex $(common)
$(tex4ht_options_derived): tex4ht-options.tex $(common)
htlatex $< "html,3,sections+" "" "" $(tex_1opt)
-$(tex4ht_sty_derived): tex4ht-sty.tex $(common_no_tex4ht_sty)
+$(tex4ht_sty_derived): tex4ht-sty.tex wripro.tex $(common_no_tex4ht_sty)
$(HTTEX) $< ""
$(tex4ht_svg_derived): tex4ht-svg.tex $(common)
diff --git a/support/TeX4ht/source/mktex4ht-cnf.tex b/support/TeX4ht/source/mktex4ht-cnf.tex
index 7bc692fff6..5f8283d707 100644
--- a/support/TeX4ht/source/mktex4ht-cnf.tex
+++ b/support/TeX4ht/source/mktex4ht-cnf.tex
@@ -1,4 +1,4 @@
-% $Id: mktex4ht-cnf.tex 1523 2024-05-27 14:16:04Z michal_h21 $
+% $Id: mktex4ht-cnf.tex 1594 2024-11-05 10:24:06Z michal_h21 $
% Manually-maintained file, listing *.4ht files created by tex4ht-4ht.tex.
% Read by tex4ht-cond4ht.
%
@@ -47,6 +47,7 @@
\AddFile{7}{supertabular}
\AddFile{7}{array}
\AddFile{9}{dcolumn}
+\AddFile{9}{makecell}
\AddFile{7}{longtable}
\AddFile{7}{pctable}
\AddFile{8}{tabulary}
@@ -57,6 +58,7 @@
\AddFile{7}{arydshln}
\AddFile{9}{threeparttable}
\AddFile{9}{tabularray}
+\AddFile{9}{nicematrix}
\AddFile{9}{mdwtab}
\AddFile{9}{tabto}
\AddFile{9}{multirow}
@@ -227,6 +229,7 @@
\AddFile{7}{dvipsnam}
\AddFile{7}{svgnam}
\AddFile{7}{colortbl}
+\AddFile{7}{colortbl-hooks}
\AddFile{6}{dvips}
\AddFile{9}{textures}
\AddFile{9}{dvipdf}
@@ -238,8 +241,10 @@
\AddFile{9}{europecv}
\AddFile{9}{resume}
\AddFile{9}{curve}
+\AddFile{9}{moderncv}
\AddFile{9}{vowel}
\AddFile{9}{enumitem}
+\AddFile{9}{enumitem-hooks}
\AddFile{9}{esperanto}
\AddFile{9}{IEEEtran}
\AddFile{9}{enumerate}
@@ -325,6 +330,7 @@
\AddFile{9}{hyperxmp}
\AddFile{9}{breqn}
\AddFile{9}{nicefrac}
+\AddFile{9}{stmaryrd}
\AddFile{9}{multicol}
\AddFile{2}{lettrine}
\AddFile{9}{osudeG}
@@ -334,11 +340,16 @@
\AddFile{9}{footmisc}
\AddFile{9}{tablefootnote}
\AddFile{9}{marginnote}
+\AddFile{9}{manyfoot}
+\AddFile{9}{manyfoot-hooks}
+\AddFile{9}{bigfoot}
+\AddFile{9}{bigfoot-hooks}
\AddFile{9}{writer}
\AddFile{9}{mdwlist}
\AddFile{9}{sverb}
\AddFile{9}{syntax}
\AddFile{9}{soul}
+\AddFile{9}{lua-ul}
\AddFile{5}{plain}
\AddFile{9}{manmac}
\AddFile{8}{mex}
@@ -415,4 +426,5 @@
\AddFile{9}{fontawesome5}
\AddFile{9}{mhchem}
\AddFile{9}{chemfig}
+\AddFile{9}{esvect}
% \AddFile{9}{mktex4ht}
diff --git a/support/TeX4ht/source/tex4ht-4ht.tex b/support/TeX4ht/source/tex4ht-4ht.tex
index 60536c1c1f..e5fd10f33d 100644
--- a/support/TeX4ht/source/tex4ht-4ht.tex
+++ b/support/TeX4ht/source/tex4ht-4ht.tex
@@ -1,4 +1,4 @@
-% $Id: tex4ht-4ht.tex 1539 2024-07-26 15:53:24Z michal_h21 $
+% $Id: tex4ht-4ht.tex 1595 2024-11-10 19:20:38Z michal_h21 $
% tex tex4ht-4ht or ht tex tex4ht-4ht
%
% Copyright 2009-2024 TeX Users Group
@@ -1526,6 +1526,13 @@ A better def is given to \''\l:bel' in AmsLaTeX .
\let\o:ref|=\:ref
\def\::ref#1{{\:SUBOff\:SUPOff\xdef\RefArg{#1}}\expandafter\o:ref
\expandafter{\RefArg}}
+\ExplSyntaxOn
+\def\::ref#1{{\:SUBOff\:SUPOff\xdef\RefArg{#1}%
+ \SUBOn\SUPOn%
+ \def\rEfLiNK##1##2{\Link{##1}{}\tl_rescan:nn{}{##2}\EndLink}%
+ \expandafter\o:ref\expandafter{\RefArg}%
+}}
+\ExplSyntaxOff
\DeclareDocumentCommand\:ref{s}{\IfBooleanTF{#1}{\Protect\::ref}{\Protect\::ref}}
\let\ref|=\:ref
>>>
@@ -1535,12 +1542,14 @@ Support for the \''\Ref' command. It is variant of \''\ref' that uppercases
first letter of the referenced label.
\<sub/sup in labels/refs\><<<
-\def\::Ref#1{%
- \let\olda:rEfLiNK\rEfLiNK%%
- \def\rEfLiNK##1##2{\Link{##1}{}\edef\:ref:currentlabel{##2}\expandafter\MakeUppercase\:ref:currentlabel\EndLink}%
- \::ref{#1}%
- \let\rEfLiNK\olda:rEfLiNK%
-}
+\ExplSyntaxOn
+\def\::Ref#1{{%
+ \:SUBOff\:SUPOff\xdef\RefArg{#1}%
+ \SUBOn\SUPOn%
+ \def\rEfLiNK##1##2{\tl_set_rescan:Nnn\l_tmpa_tl{}{##2}\Link{##1}{}\expandafter\MakeUppercase\l_tmpa_tl\EndLink}%
+ \expandafter\o:ref\expandafter{\RefArg}%
+}}
+\ExplSyntaxOff
\DeclareDocumentCommand\:Ref{s}{\IfBooleanTF{#1}{\Protect\::Ref}{\Protect\::Ref}}
\let\Ref\:Ref
>>>
@@ -10514,6 +10523,36 @@ new way. Don't globalize ar:cnt!!!!
\NewConfigure{dcolumn}{2}
>>>
+%%%%%%%%%%%%%%%%%%%%%%%%
+\Section{makecell}
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+\<makecell.4ht\><<<
+% makecell.4ht (|version), generated from |jobname.tex
+% Copyright 2024 TeX Users Group
+|<TeX4ht license text|>
+
+|<makecell makegapedcells|>
+
+\Hinput{makecell}
+\endinput
+>>> \AddFile{9}{makecell}
+
+These commands redefine internall tabular macros, which can lead
+to errors. We need to disable them. User can provide an alternative
+configurations for them, but it is most likely unnecessary.
+
+\<makecell makegapedcells\><<<
+\NewConfigure{makegapedcells}{1}
+\def\:tempa{\a:makegapedcells}
+\HLet\makegapedcells\:tempa
+
+\NewConfigure{nomakegapedcells}{1}
+\def\:tempa{\a:nomakegapedcells}
+\HLet\nomakegapedcells\:tempa
+>>>
+
+
%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{longtable.sty}
%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -10744,13 +10783,32 @@ Fix for the \Link[https://puszcza.gnu.org.ua/bugs/?437]{}{}starred linebreak iss
{\LT@t@bularcr}}
>>>
-\<longtable hline\><<<
+
+
+This code doesn't work well with Colortbl, so we will ignore it.
+\Link[https://puszcza.gnu.org.ua/bugs/?636]{}{}More info here\EndLink.
+
+\<longtable nohline\><<<
\def\:tempc{%
\o:noalign:{\ifnum0=`}\fi
\penalty\@M
\futurelet\@let@token\LT@@hline}
+>>>
+
+The original code for longtable hline was complex, but it doesn't work
+with the Colortbl package. I've found that the default hline works just
+fine, so we probably don't need to change it at all.
+
+\<longtable hline\><<<
+\def\:tempc{\a:hline}
\HLet\LT@hline\:tempc
+>>>
+
+This code is not used as well.
+
+\<longtable nohline\><<<
\def\:tempc{%
+ \typeout{}
\ifx\@let@token\hline
\global\let\@gtempa\@gobble
\gdef\LT@sep{\penalty-\@medpenalty\vskip\doublerulesep}%
@@ -10791,7 +10849,7 @@ Captions in Longtable are placed inside of the table structure.
We need to use special configuration to produce correct rendering,
normal code for caption will not work.
-\Link[https://tex.stackexchange.com/a/642350/2891] More details\EndLink
+\Link[https://tex.stackexchange.com/a/642350/2891]{}{} More details\EndLink
\<longtable captions\><<<
\NewConfigure{longtablecaption}{4}
@@ -10802,7 +10860,7 @@ normal code for caption will not work.
\HLet\LT@makecaption\:tempc
>>>
-\Link[https://puszcza.gnu.org.ua/bugs/?313]
+\Link[https://puszcza.gnu.org.ua/bugs/?313]{}{}
Write table info to the LOT
\EndLink
\<longtable captions\><<<
@@ -11251,7 +11309,7 @@ compilation errors
%%%%%%%%%%%%%%%%%%%%%%%%
Some details are
-\Link[https://tex.stackexchange.com/a/467126/2891]{}{here}\EndLink. I
+\Link[https://tex.stackexchange.com/a/467126/2891]{}{}here\EndLink. I
was not able to fix all tabu issues, it is too aggressive in basic table
handling. Michal
@@ -11516,6 +11574,31 @@ for horizontal and vertical alignment, background color and rules.
>>>
%%%%%%%%%%%%%%%%%%%%%%%%
+\Section{nicematrix}
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+\<nicematrix.4ht\><<<
+% nicematrix.4ht (|version), generated from |jobname.tex
+% Copyright 2024 TeX Users Group
+|<TeX4ht license text|>
+\ExplSyntaxOn
+|<nicematrix suppress error message|>
+\ExplSyntaxOff
+
+\Hinput{nicematrix}
+\endinput
+>>> \AddFile{9}{nicematrix}
+
+Nicematrix detects if the array environment was changed
+and prints error message if it was. As TeX4ht changes the environment,
+it caused an error message. This boolean should suppress it.
+
+\<nicematrix suppress error message\><<<
+\bool_set_true:N\g__nicematrix_no_test_for_array_bool
+>>>
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%
\Section{mdwtab}
%%%%%%%%%%%%%%%%%%%%%%%%
@@ -12009,14 +12092,32 @@ such as counter numbers.
\def\no@sect#1#2#3#4#5{\no:sect{#1}{#2}{#3}{#4}{0ex}}
>>>
+The LaTeX command hook mechanism doesn't like our redefinitions of
+\''\@sect' and \''\@ssect', so we need to declare and use them explicitly.
+Otherwise, packages that try to add hooks to these commands may cause errors.
+See \Link[http://puszcza.gnu.org.ua/bugs/?639]{}{} this bug report\EndLink.
+
+\<latex ltsect\><<<
+\NewHookWithArguments{cmd/@sect/before}{8}
+\NewReversedHookWithArguments{cmd/@sect/after}{8}
+\NewHookWithArguments{cmd/@ssect/before}{5}
+\NewReversedHookWithArguments{cmd/@ssect/after}{5}
+>>>
+
\<latex ltsect\><<<
\let\no@ssect|=\@ssect
-\def\@ssect#1#2#3#4#5{\:Sc3
- \no@ssect{#1}{#2}{#3}{#4}{\:Sc4#5\:Sc2}\HtmlEnv}
+\def\@ssect#1#2#3#4#5{%
+ \UseHookWithArguments{cmd/@ssect/before}{5}{##1}{##2}{##3}{##4}{##5}%
+ \:Sc3\no@ssect{#1}{#2}{#3}{#4}{\:Sc4#5\:Sc2}\HtmlEnv%
+ \UseHookWithArguments{cmd/@ssect/after}{5}{##1}{##2}{##3}{##4}{##5}%
+}
\let\no@sect|=\@sect
\def\@sect#1#2#3#4#5#6[#7]#8{%
- \xdef\c:secnumdepth{#2}\:Sc3
- \no@sect{#1}{#2}{#3}{#4}{#5}{#6}[#7]{\:Sc4#8\:Sc2}\HtmlEnv}
+ \UseHookWithArguments{cmd/@sect/before}{8}{##1}{##2}{##3}{##4}{##5}{##6}{##7}{##8}%
+ \xdef\c:secnumdepth{#2}\:Sc3%
+ \no@sect{#1}{#2}{#3}{#4}{#5}{#6}[#7]{\:Sc4#8\:Sc2}\HtmlEnv%
+ \UseHookWithArguments{cmd/@sect/after}{8}{##1}{##2}{##3}{##4}{##5}{##6}{##7}{##8}%
+ }
\let\:startsection|=\@startsection
\def\@startsection#1{\@ifstar{\Configure{secType}{like#1}}%
{\Configure{secType}{#1}}%
@@ -12061,13 +12162,16 @@ The following is need for \''\@seccntformat'.
\<redf sec\><<<
\def\@sect##1##2##3##4##5##6[##7]##8{%
+ \UseHookWithArguments{cmd/@sect/before}{8}{##1}{##2}{##3}{##4}{##5}{##6}{##7}{##8}%
|<disable @seccntformat|>%
\let\@sect|=\no@sect \xdef\c:secnumdepth{##2}%
{\SkipRefstepAnchor \let\addcontentsline|=\:gobbleIII \let\mark|=\:gobble
\no@sect{##1}{##2}{##3}{##4}{##5}{##6}[{##7}]{}}%
|<recall Sc, sec, ssec|>%
|<restore @seccntformat|>%
- \HtmlEnv \Toc:Title{##7}\csname no:#1\endcsname{##8}}%
+ \HtmlEnv \Toc:Title{##7}\csname no:#1\endcsname{##8}%
+ \UseHookWithArguments{cmd/@sect/after}{8}{##1}{##2}{##3}{##4}{##5}{##6}{##7}{##8}%
+ }%
>>>
In the above we want \`'[{##7}]' instead of \`'[##7]', in case `]' is
@@ -12077,12 +12181,15 @@ The following is for the star option.
\<redf ssec\><<<
\def\@ssect##1##2##3##4##5{%
+ \UseHookWithArguments{cmd/@ssect/before}{5}{##1}{##2}{##3}{##4}{##5}%
|<star sec title|>%
\let\@ssect|=\no@ssect
{\def\addcontentsline####1####2####3{}%
\no@ssect{##1}{##2}{##3}{##4}{}}%
|<recall Sc, sec, ssec|>%
- \HtmlEnv \csname :like#1\endcsname{##5}}%
+ \HtmlEnv \csname :like#1\endcsname{##5}%
+ \UseHookWithArguments{cmd/@ssect/after}{5}{##1}{##2}{##3}{##4}{##5}%
+ }%
>>>
\<sv Sc, sec, ssec\><<<
@@ -12926,11 +13033,25 @@ Foo
}
>>>
+Define default values for commands used in caption configuration.
+This configuration is defined in configuration files for particular
+classes, so if the class is unsupported by TeX4ht (like Svjour3,
+for example), the configuration is not defined and these missing
+commands would cause compilation errors.
+
+\<caption redefine makecaption\><<<
+\ifdefined\cptA:\else
+\c:def\cptA:{}\c:def\cptB:{}%
+\c:def\cptC:{}\c:def\cptD:{}
+\fi
+>>>
+
Handle redefined caption command. We ignore the second parameter of
\''\Configure{caption}'. It contains the separator between caption number
and label. It is colon by default, but user can configure to use something
different. We should keep the separator selected by the user.
+
\<caption redefine makecaption\><<<
\long\def\@makecaption#1#2{%
|<fix continued float|>%
@@ -16538,7 +16659,6 @@ DIV.right
\<memoir.4ht\><<<
% memoir.4ht (|version), generated from |jobname.tex
% Copyright |CopyYear.2003. Eitan M. Gurari
-% Copyright 2003-2024 TeX Users Group
|<TeX4ht copywrite|>
\input book.4ht
\input verse.4ht
@@ -16751,10 +16871,9 @@ they were stripped by the literate programming system.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\<mempatch.4ht\><<<
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% mempatch.4ht |version %
-% Copyright (C) |CopyYear.2003. Eitan M. Gurari %
-|<TeX4ht copyright|>
+% mempatch.4ht (|version), generated from |jobname.tex
+% Copyright |CopyYear.2003. Eitan M. Gurari
+|<TeX4ht copywrite|>
|<mempatch cfg|>
\Hinput{mempatch}
\endinput
@@ -22112,11 +22231,13 @@ $$
|<def :currentlabel for make@df@tag|>%
\anc:lbl r{}%
}}
-\def\make@df@tag@@@#1{\gdef\df@tag{\tagform@{#1}%
+\ExplSyntaxOn
+\def\make@df@tag@@@#1{\gdef\df@tag{\tagform@{\tl_rescan:nn{}{#1}}%
\toks@\@xp{\p@equation{#1}}\edef\@currentlabel{\the\toks@}%
|<def :currentlabel for make@df@tag|>%
\anc:lbl r{}%
}}
+\ExplSyntaxOff
>>>
%%%%%%%%%%%%%
@@ -22268,10 +22389,9 @@ $$
%%%%%%%%%%%%%%%
\<amsfonts.4ht\><<<
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% amsfonts.4ht |version %
-% Copyright (C) |CopyYear.2001. Eitan M. Gurari %
-|<TeX4ht copyright|>
+% amsfonts.4ht (|version), generated from |jobname.tex
+% Copyright |CopyYear.2001. Eitan M. Gurari
+|<TeX4ht copywrite|>
|<amsfonts sty|>
\Hinput{amsfonts}
\endinput
@@ -22279,14 +22399,14 @@ $$
\<amsfonts sty\><<<<
\NewConfigure{mathbb}{2}
-\def\:temp#1{{\a:mathbb \o:@mathbb:{#1}\b:mathbb}}
-\HLet\@mathbb\:temp
+\def\:temp#1{{\a:mathbb \o:mathbb:{#1}\b:mathbb}}
+\HLet\mathbb\:temp
>>>
\<amsfonts sty\><<<<
\NewConfigure{mathfrak}{2}
-\def\:temp#1{{\a:mathfrak \o:@mathfrak:{#1}\b:mathfrak}}
-\HLet\@mathfrak\:temp
+\def\:temp#1{{\a:mathfrak \o:mathfrak:{#1}\b:mathfrak}}
+\HLet\mathfrak\:temp
>>>
Commands like \''\rm' need low level implemetation through
@@ -25913,15 +26033,15 @@ CTAN:language/mongolian/montex/examples
%%%%%%%%%%%%%%%%
\<french.4ht\><<<
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% french.4ht |version %
-% Copyright (C) |CopyYear.1999. Eitan M. Gurari %
-|<TeX4ht copyright|>
+% french.4ht |version, generated from |jobname.tex
+% Copyright |CopyYear.1999. Eitan M. Gurari
+|<TeX4ht copywrite|>
\expandafter\ifx \csname @s@ORI\endcsname \relax
\else
|<french 4ht|>
\Configure{special}{\csname @s@ORI\endcsname}
\fi
+|<french part|>
\Hinput{french}
\endinput
>>> \AddFile{7}{french}
@@ -25956,6 +26076,13 @@ CTAN:language/mongolian/montex/examples
\fi
>>>
+This should fix part commands in TOC. Bug report is
+\Link[https://github.com/michal-h21/make4ht/issues/155]{}{}here\EndLink
+
+\<french part\><<<
+\DeclareRobustCommand*{\FB@emptypart}{}
+>>>
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Chapter{Verbatim}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -26183,7 +26310,11 @@ See \Link[://github.com/michal-h21/make4ht/issues/141]{}{}this issue\EndLink.
\ifx \fv:color\empty \else{%
\let\HColor\fv:color \a:fancyvrbcolor%
}\fi
- \ifx \FancyVerbFillColor\relax \else%
+ \ifx \FancyVerbFillColor\relax \ifx\FancyVerbBackgroundColor\relax\else%
+ \ifdefined\FancyVerbBackgroundColor% this extra check is needed for \BVerbatimInput
+ \:fvcolor \b:fancyvrbcolor \color{\FancyVerbBackgroundColor}|<par del|>%
+ \fi%
+ \fi\else%
\:fvcolor \b:fancyvrbcolor \FancyVerbFillColor|<par del|>%
\fi
\ifx \FancyVerbRuleColor\relax \else%
@@ -26329,12 +26460,11 @@ of LaTeX. The \''\:gobbleII' is for getting rid of the
\<minted.4ht\><<<
% minted.4ht (|version), generated from |jobname.tex
-% Copyright 2022 TeX Users Group
+% Copyright 2022-2024 TeX Users Group
|<TeX4ht license text|>
|<minted inline fixes|>
|<minted background color|>
-|<minted background color|>
|<minted input fixes|>
\Hinput{minted}
@@ -26369,9 +26499,18 @@ in the generated HTML.
\HLet\minted@inline@iii\:tempa
>>>
+Minted 3.0 changed the way it works with the background color.
+It now uses Fancyvrb, so the minted@colorbg environment is not used anymore.
+We need to remove the redefinition, to prevent compilation error.
+The MintedColorbg configuration can stay here, to prevent errors in
+user config files that use it, but it doesn't have any effect.
+
\<minted background color\><<<
% support for background color in Minted listings
\NewConfigure{MintedColorbg}{2}
+>>>
+
+\<minted background color not used\><<<
\renewenvironment{minted@colorbg}[1]{%
\colorlet{shadecolor}{#1}%
\extractcolorspec{shadecolor}{\:tempa}%
@@ -26452,10 +26591,12 @@ Minted, it turns the breaklines option to false when it is used.
\<piton.4ht\><<<
% piton.4ht (|version), generated from |jobname.tex
-% Copyright 2023 TeX Users Group
+% Copyright 2023-2024 TeX Users Group
|<TeX4ht license text|>
\ExplSyntaxOn
+|<piton xcolor|>
+|<piton spaces|>
|<piton env|>
|<piton inlines|>
\ExplSyntaxOff
@@ -26463,6 +26604,51 @@ Minted, it turns the breaklines option to false when it is used.
\endinput
>>> \AddFile{9}{piton}
+If Xcolor is not loaded earlier, Piton loads it in the begindocument/before hook.
+It leads to a compilation error caused by catcodes mismatch. We can prevent it
+by loading Xcolor earlier.
+
+\<piton xcolor\><<<
+\IfPackageLoadedTF{xcolor}{}{\RequirePackage{xcolor}}
+>>>
+
+The current version of Piton started to show visible space character (U+2423) instead
+of spaces even if they are not requested using the show-spaces option. This code should
+prevent that.
+
+\<piton spaces\><<<
+\def\:pitonvisiblespace{ \HCode{\string&\#x2423;} }
+\cs_new_protected:Npn \:__piton_replace_spaces:n #1
+ {
+ \tl_set:Nn \l_tmpa_tl { #1 }
+ \bool_if:NTF \l__piton_show_spaces_bool
+ {
+ \tl_set:Nn \l__piton_space_tl {\:pitonvisiblespace} % U+2423
+ \regex_replace_all:nnN { \x20 } {\c{:pitonvisiblespace}} \l_tmpa_tl
+ }
+ {
+ \bool_if:NTF \l__piton_break_lines_in_Piton_bool
+ {
+ \regex_replace_all:nnN
+ { \x20 }
+ { \c { __piton_breakable_space: } }
+ \l_tmpa_tl
+ \regex_replace_all:nnN
+ { \c { l__piton_space_tl } }
+ { \c { __piton_breakable_space: } }
+ \l_tmpa_tl
+ }
+ {
+ \regex_replace_all:nnN { \x20 } { \x20 } \l_tmpa_tl
+ }
+ }
+ \l_tmpa_tl
+ }
+
+
+\HLet\__piton_replace_spaces:n\:__piton_replace_spaces:n
+>>>
+
\<piton env\><<<
\NewConfigure{pitonline}{3}
@@ -29223,6 +29409,21 @@ The same is true for array.sty.
\endinput
>>> \AddFile{7}{colortbl}
+
+\<add to usepackage\><<<
+\Configure{PackageHooks}{colortbl.sty}{colortbl-hooks.4ht}
+>>>
+
+\<colortbl-hooks.4ht\><<<
+% colortbl-hooks.4ht (|version), generated from |jobname.tex
+% Copyright 2024 TeX Users Group
+|<TeX4ht license text|>
+\:AtEndOfPackage{%
+|<colortbl arrayrulecolor|>
+}
+>>> \AddFile{7}{colortbl-hooks}
+
+
color.sty is obsoleted by xcolor, so we will load the latter package in
order to get access to the color space conversion commands.
@@ -29364,8 +29565,10 @@ need also a treatment similar to \''\CT@column@color'?
>>>
Fixes for colored hlines. The \`|\hline:color| can be used in CSS, for instance.
+We need to use early hooks file, because this command can be used in the preamble,
+and we want to catch the defined color.
-\<fix colortbl\><<<
+\<colortbl arrayrulecolor\><<<
% default hline color is black
\def\hline:color{000}
% save rule color in format usable in CSS
@@ -29376,14 +29579,10 @@ Fixes for colored hlines. The \`|\hline:color| can be used in CSS, for instance.
\noalign{\convertcolorspec{#1}{#2}{HTML}\:tmp\global\let\hline:color\:tmp}% we are
\fi
}
-\HLet\arrayrulecolor\tmp:arrayrulecolor
->>>
-
-\SubSection{Utilities}
-
-This should enable use of \`|\color| command in array declaration
+% \HLet doesn't work in the preamble, so we need to work around it
+\let\o:arrayrulecolor:\arrayrulecolor
+\let\arrayrulecolor\tmp:arrayrulecolor
-\<fix colortbl\><<<
\def\convert:colorspec#1 #2 #3 #4{%
\edef\current:color{%
\ifx\relax#1\relax\else%
@@ -29398,6 +29597,21 @@ This should enable use of \`|\color| command in array declaration
}%
}
+>>>
+
+This version of arrayrulecolor will be used after preamble.
+It supports pictures.
+
+\<fix colortbl\><<<
+\HRestore\arrayrulecolor
+\HLet\arrayrulecolor\tmp:arrayrulecolor
+>>>
+
+\SubSection{Utilities}
+
+This should enable use of \`|\color| command in array declaration
+
+\<fix colortbl\><<<
\def\save:color#1 #2//{%
\convert:colorspec#2 {} {} {} {}
\convertcolorspec{#1}{\current:color}{HTML}\tmp:col
@@ -30147,6 +30361,173 @@ A style file for resumes.
>>>
%%%%%%%%%%%%%%%%%%%%%%%%%
+\Section{moderncv}
+%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\<moderncv.4ht\><<<
+% moderncv.4ht (|version), generated from |jobname.tex
+% Copyright 2024 TeX Users Group
+|<TeX4ht license text|>
+|<moderncv configs|>
+\Hinput{moderncv}
+\endinput
+>>>\AddFile{9}{moderncv}
+
+This is a bit messy. We had to redefine a bunch of commands from various
+files that Moderncv uses, mostly to prevent compilation errors and to
+insert some basic formatting.
+
+\<moderncv configs\><<<
+\NewConfigure{section}{2}
+\RenewDocumentCommand\section{sm}{\a:section #2\b:section}
+
+\NewConfigure{subsection}{2}
+\RenewDocumentCommand\subsection{sm}{\a:subsection #2\b:subsection}
+
+
+\NewConfigure{cvitem}{3}
+\renewcommand*{\cvitem}[3][.25em]{
+\a:cvitem #2\b:cvitem #3\c:cvitem
+}
+
+\NewConfigure{cvdoubleitem}{2}
+\renewcommand*{\cvdoubleitem}[5][.25em]{%
+\a:cvdoubleitem
+\cvitem{#2}{#3}
+\cvitem{#4}{#5}
+\b:cvdoubleitem
+}
+
+\NewConfigure{cvlistitem}{2}
+\renewcommand*{\cvlistitem}[2][.25em]{%
+ \a:cvlistitem\cvitem[#1]{\listitemsymbol}{#2}\b:cvlistitem
+}
+
+\NewConfigure{cvlistdoubleitem}{2}
+\renewcommand*{\cvlistdoubleitem}[3][.25em]{%
+ \a:cvlistdoubleitem%
+ \cvitem[#1]{\listitemsymbol}{#2}%
+ \cvitem[#1]{\listitemsymbol}{#3}%
+ \b:cvlistdoubleitem%
+}
+
+\NewConfigure{cvhead}{2}
+\NewConfigure{cvphoto}{2}
+
+
+\renewcommand*{\makecvhead}{%
+ \a:cvhead
+ % recompute lengths (in case we are switching from letter to resume, or vice versa)
+ \recomputecvlengths%
+ % optional detailed information (pre-rendering)
+ \@initializebox{\makecvheaddetailsbox}%
+ \if@details%
+ \def\phonesdetails{}%
+ \collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number
+ \protected@edef\phonesdetails{\phonesdetails\protect\makenewline\csname\collectionloopkey phonesymbol\endcsname\collectionloopitem}}%
+ \def\socialsdetails{}%
+ \collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link
+ \protected@edef\socialsdetails{\socialsdetails\protect\makenewline\csname\collectionloopkey socialsymbol\endcsname\collectionloopitem}}%
+ \savebox{\makecvheaddetailsbox}{%
+ \addressfont\color{color2}%
+ \if@left\begin{tabular}[b]{@{}r@{}}\fi%
+ \if@right\begin{tabular}[b]{@{}l@{}}\fi%
+ \ifthenelse{\isundefined{\@addressstreet}}{}{\makenewline\addresssymbol\@addressstreet%
+ \ifthenelse{\equal{\@addresscity}{}}{}{\makenewline\@addresscity}% if \addresstreet is defined, \addresscity and addresscountry will always be defined but could be empty
+ \ifthenelse{\equal{\@addresscountry}{}}{}{\makenewline\@addresscountry}}%
+ \ifthenelse{\isundefined{\@born}}{}{\makenewline\bornsymbol\@born}%
+ \phonesdetails% needs to be pre-rendered as loops and tabulars seem to conflict
+ \ifthenelse{\isundefined{\@email}}{}{\makenewline\emailsymbol\emaillink{\@email}}%
+ \ifthenelse{\isundefined{\@homepage}}{}{\makenewline\homepagesymbol\httpslink{\@homepage}}%
+ \socialsdetails% needs to be pre-rendered as loops and tabulars seem to conflict
+ \ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}%
+ \end{tabular}
+ }\fi%
+ % optional photo (pre-rendering)
+ \@initializebox{\makecvheadpicturebox}%
+ \savebox{\makecvheadpicturebox}{%
+ \ifthenelse{\isundefined{\@photo}}%
+ {}%
+ {%
+ \a:cvphoto\includegraphics[]{\@photo}\b:cvphoto}%
+ }%
+ % name and title (pre-rendering)
+ \@initializelength{\makecvheaddetailswidth}\settowidth{\makecvheaddetailswidth}{\usebox{\makecvheaddetailsbox}}%
+ \@initializelength{\makecvheadpicturewidth}\settowidth{\makecvheadpicturewidth}{\usebox{\makecvheadpicturebox}}%
+ \ifthenelse{\lengthtest{\makecvheadnamewidth=0pt}}% check for dummy value (equivalent to \ifdim\makecvheadnamewidth=0pt)
+ {\setlength{\makecvheadnamewidth}{\textwidth-\makecvheaddetailswidth-\makecvheadpicturewidth}}%
+ {}%
+ \@initializebox{\makecvheadnamebox}%
+ \savebox{\makecvheadnamebox}{%
+ \begin{minipage}[b]{\makecvheadnamewidth}%
+ \if@left\raggedright\fi%
+ \if@right\raggedleft\fi%
+ \namestyle{\@firstname\ \@lastname}%
+ \ifthenelse{\equal{\@title}{}}{}{\\[1.25em]\titlestyle{\@title}}%
+ \end{minipage}}%
+ % rendering
+ \if@left%
+ \usebox{\makecvheadnamebox}%
+ \hfill%
+ \llap{\usebox{\makecvheaddetailsbox}}% \llap is used to suppress the width of the box, allowing overlap if the value of makecvheadnamewidth is forced
+ \usebox{\makecvheadpicturebox}\fi%
+ \if@right%
+ \usebox{\makecvheadpicturebox}%
+ \rlap{\usebox{\makecvheaddetailsbox}}% \llap is used to suppress the width of the box, allowing overlap if the value of makecvheadnamewidth is forced
+ \hfill%
+ \usebox{\makecvheadnamebox}\fi%
+ \\[2.5em]%
+ % optional quote
+ \ifthenelse{\isundefined{\@quote}}%
+ {}%
+ {{\centering\begin{minipage}{\quotewidth}\centering\quotestyle{\@quote}\end{minipage}\\[2.5em]}}%
+ \b:cvhead\par}% to avoid weird spacing bug at the first section if no blank line is left after \makecvhead
+
+
+\RenewDocumentCommand\cvskilllegend{s +O{.25em} +O{\skillLegend@defaultLevelOne} +O{\skillLegend@defaultLevelTwo} +O{\skillLegend@defaultLevelThree} +O{\skillLegend@defaultLevelFour} +O{\skillLegend@defaultLevelFive} +m}{%
+\begin{tabular}{l l l l l l}
+ \raggedleft\hintstyle{#8} & \cvskill{1}\, & \,{\skillLegend@FontSize #3} & \cvskill{3}\, &\,{\skillLegend@FontSize #5 } \\%
+ %
+ & \cvskill{2}\, & \,\multirow{2}{\cvskilllegend@leftdescriptorwidth}{{\skillLegend@FontSize #4}} & \cvskill{4}\, &\,{\skillLegend@FontSize #6 } \\%
+ %
+ & & & \cvskill{5}\, &\,{\skillLegend@FontSize #7 }%
+ \end{tabular}%
+}%
+
+
+\NewConfigure{cvskill}{2}
+\def\:tempa#1{\def\:cvskillamount{#1}\a:cvskill\o:cvskill:{#1}\b:cvskill}
+\HLet\cvskill\:tempa
+
+\NewConfigure{cvskillhead}{2}
+\NewConfigure{cvskillentry}{2}
+\RenewDocumentCommand\cvskillhead{O{.25em} +O{\skillMatrix@HeaderDefaultOne} +O{\skillMatrix@HeaderDefaultTwo} +O{\skillMatrix@HeaderDefaultThree} +O{\skillMatrix@HeaderDefaultFour}}{%
+ \begingroup
+ \a:cvskillhead
+ \begin{tabular}{ p{6em} p{12em} p{4em} p{20em}}%
+ { #2} & { #3} & { #4} & { #5}
+ \end{tabular}%
+ \b:cvskillhead
+ \endgroup
+ \par\addvspace{#1}
+}
+
+\RenewDocumentCommand\cvskillentry{s +O{.25em} +m +m +m +m +m}{%
+\a:cvskillentry
+\cvitem{#3}{
+ \begin{tabular}{ p{6em} p{12em} p{4em} p{20em}}
+ \centering \cvskill{#4} &\centering {#5} & \centering {#6} &{\itshape#7}%
+ \end{tabular}}%
+ \b:cvskillentry
+ \par\addvspace{#2}
+}
+
+>>>
+
+%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%
\Chapter{Small Ones}
%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -30173,6 +30554,7 @@ A style file for resumes.
% Copyright |CopyYear.2009. Eitan M. Gurari
|<TeX4ht copywrite|>
|<enumitem config|>
+|<enumitem newlist|>
\Hinput{enumitem}
\endinput
>>> \AddFile{9}{enumitem}
@@ -30207,6 +30589,61 @@ See \Link[https://github.com/hendricius/the-sourdough-framework/pull/312]{}{}for
\def\enit@postlabel{}
>>>
+We need to provide a configuration for environments defined using \Verb+\newlist+.
+Because they are defined in the preamble, we must catch them using the early hooks
+file.
+
+The test file and report can be found \Link[https://github.com/michal-h21/make4ht/issues/150]{}{}here\EndLink.
+
+
+\<add to usepackage\><<<
+\Configure{PackageHooks}{enumitem.sty}{enumitem-hooks.4ht}
+>>>
+
+\<enumitem-hooks.4ht\><<<
+% enumitem-hooks.4ht (|version), generated from |jobname.tex
+% Copyright 2024 TeX Users Group
+|<TeX4ht license text|>
+\:AtEndOfPackage{%
+|<enumitem patch newlist|>
+}
+>>> \AddFile{9}{enumitem-hooks}
+
+
+We save all defined environments in \Verb+\enumitem:newlist+. This command
+is then called in the \Verb+\Configure{enumitemnewlist}+, which can
+be used in the output format configuration.
+
+\<enumitem patch newlist\><<<
+\def\enumitem:newlist{}
+\def\:tempa#1#2#3#4{\concat:config\enumitem:newlist{\Configure{enumitemenv}{#2}}\o:enit@newlist{#1}{#2}{#3}{#4}}
+\let\o:enit@newlist\enit@newlist
+\let\enit@newlist\:tempa
+>>>
+
+
+This configuration is called automatically by \Verb+\Configure{enumitenewlist}+ for each
+declared environment. The environment name is saved in \Verb+\a:enumitemenv+,
+and then we call \Verb+\enumitem:newlist+, which should provide a configuration for lists
+in the current output format.
+
+\<enumitem newlist\><<<
+\NewConfigure{enumitemenv}[1]{%
+\def\a:enumitemenv{#1}%
+\enumitem:newlistconfig
+}
+>>>
+
+This configuration should provide a configuration for a list in the current output format.
+Name of the configured environment is saved in \Verb+\a:enumitemenv+.
+
+\<enumitem newlist\><<<
+\NewConfigure{enumitemnewlist}[1]{
+ \def\enumitem:newlistconfig{#1}
+ \enumitem:newlist
+}
+>>>
+
%%%%%%%%%%%%%
\Section{esperanto.sty}
@@ -31410,6 +31847,25 @@ for output formats.
\ExplSyntaxOff
>>>
+%%%%%%%%%%%%%%%
+\Section{Esvect}
+%%%%%%%%%%%%%%%
+
+\<esvect.4ht\><<<
+% esvect.4ht (|version), generated from |jobname.tex
+% Copyright 2024 TeX Users Group
+|<TeX4ht license text|>
+|<esvect redefinitions|>
+
+\Hinput{esvect}
+\endinput
+>>> \AddFile{9}{esvect}
+
+
+\<esvect redefinitions\><<<
+>>>
+
+
%%%%%%%%%%%%%
\Section{Ushort}
%%%%%%%%%%%%%
@@ -34973,6 +35429,21 @@ but fatal error is a worse possibility.
\Configure{nicefrac}{}{/}{}
>>>
+
+%%%%%%%%%%%%%%%%%%%%%%%%
+\Section{stmaryrd}
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+\<stmaryrd.4ht\><<<
+% stmaryrd.4ht (|version), generated from |jobname.tex
+% Copyright 2024 TeX Users Group
+|<TeX4ht license text|>
+
+
+\Hinput{stmaryrd}
+\endinput
+>>> \AddFile{9}{stmaryrd}
+
\Section{fontmath.ltx}
\<config fontmath.ltx utilities\><<<
@@ -36872,25 +37343,25 @@ is not a font).
\<non-html TeX4ht divs\><<<
\def\TagCh#1{\Tag{#1|<Ch tag|>}{\theChapterCounter}}
-\def\RefCh#1{Chapter\ \Ref{#1|<Ch tag|>}}
+\def\RefCh#1{Chapter\ \XRef{#1|<Ch tag|>}}
\def\TagApp#1{\Tag{#1|<Ap tag|>}{\theChapterCounter}}
-\def\RefApp#1{Appendix\ \Ref{#1|<Ap tag|>}}
+\def\RefApp#1{Appendix\ \XRef{#1|<Ap tag|>}}
\def\TagSec#1{\Tag{#1|<Sec tag|>}{\theSectionCounter}}
-\def\RefSec#1{Section\ \Ref{#1|<Sec tag|>}}
+\def\RefSec#1{Section\ \XRef{#1|<Sec tag|>}}
>>>
\<html TeX4ht divs\><<<
\def\TagCh#1{\Tag{#1|<Ch tag|>}{\theChapterCounter}\Tag
{#1|<hCh tag|>}{\:curch}}
-\def\RefCh#1{\Link{\LikeRef{#1|<hCh tag|>}}{}Chapter\ \Ref
+\def\RefCh#1{\Link{\LikeRef{#1|<hCh tag|>}}{}Chapter\ \XRef
{#1|<Ch tag|>}\EndLink}
\def\TagApp#1{\Tag{#1|<Ap tag|>}{\theChapterCounter}\Tag
{#1|<hAp tag|>}{\:curch}}
-\def\RefApp#1{\Link{\LikeRef{#1|<hAp tag|>}}{}Appendix\ \Ref
+\def\RefApp#1{\Link{\LikeRef{#1|<hAp tag|>}}{}Appendix\ \XRef
{#1|<Ap tag|>}\EndLink}
\def\TagSec#1{\Tag{#1|<Sec tag|>}{\theSectionCounter}\Tag
{#1|<hSec tag|>}{\:cursec}}
-\def\RefSec#1{\Link{\LikeRef{#1|<hSec tag|>}}{}Section\ \Ref
+\def\RefSec#1{\Link{\LikeRef{#1|<hSec tag|>}}{}Section\ \XRef
{#1|<Sec tag|>}\EndLink}
>>>
@@ -36902,12 +37373,12 @@ is not a font).
\<html TeX4ht divs\><<<
\def\TagPage#1{%
\Link{}{page#1}\EndLink\Tag{#1}{}}
-\def\RefPage#1{\Link{page#1}{}\Ref{#1}\EndLink}
+\def\RefPage#1{\Link{page#1}{}\XRef{#1}\EndLink}
>>>
\<non-html TeX4ht divs\><<<
\def\TagPage#1{\Tag{#1}{}}
-\def\RefPage{\Ref}
+\def\RefPage{\XRef}
>>>
%\SubSection{Standard}
@@ -38018,6 +38489,98 @@ instead.
\HLet\@mn@@@marginnote\:tempa
>>>
+%%%%%%%%%%%%%%%%%%%%%%%%
+\Section{manyfoot}
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+\<manyfoot.4ht\><<<
+% manyfoot.4ht (|version), generated from |jobname.tex
+% Copyright 2024 TeX Users Group
+|<TeX4ht license text|>
+
+
+\Hinput{manyfoot}
+\endinput
+>>> \AddFile{9}{manyfoot}
+
+
+\<add to usepackage\><<<
+\Configure{PackageHooks}{manyfoot.sty}{manyfoot-hooks.4ht}
+>>>
+
+\<manyfoot-hooks.4ht\><<<
+% manyfoot-hooks.4ht (|version), generated from |jobname.tex
+% Copyright 2024 TeX Users Group
+|<TeX4ht license text|>
+
+\:AtEndOfPackage{%
+|<declare manyfoot footnote|>
+}
+
+\endinput
+>>> \AddFile{9}{manyfoot-hooks}
+
+The Manyfoot package provides the \''\DeclareNewFootnote' command to
+declare new footnote types. The following code catches these new
+commands, and redefines them to produce normal footnotes, just with
+changed footnote mark.
+
+See \Link[https://tex.stackexchange.com/a/729975/2891]{}{} this answer\EndLink
+for an example.
+
+\<declare manyfoot footnote\><<<
+\let\o:MFL@declare:\MFL@declare
+\def\manyfoot:declarefn#1{%
+ \expandafter\renewcommand\csname footnote#1\endcsname[1]{%
+ \stepcounter{footnote#1}%
+ \renewcommand\thefootnote{\csname thefootnote#1\endcsname}%
+ \footnote{##1}%
+ }%
+}
+\def\MFL@declare#1#2[#3]{%
+ \o:MFL@declare:{#1}{#2}[#3]%
+ \manyfoot:declarefn{#2}%
+}%
+
+>>>
+
+%%%%%%%%%%%%%%%%%%%%%%%%
+\Section{bigfoot}
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+\<bigfoot.4ht\><<<
+% bigfoot.4ht (|version), generated from |jobname.tex
+% Copyright 2024 TeX Users Group
+|<TeX4ht license text|>
+
+
+\Hinput{bigfoot}
+\endinput
+>>> \AddFile{9}{bigfoot}
+
+\<add to usepackage\><<<
+\Configure{PackageHooks}{bigfoot.sty}{bigfoot-hooks.4ht}
+>>>
+
+The Bigfoot package redefines the output routine in a way which
+crashes TeX4ht. It basically just loads the Manyfoot package and
+then redefines its commands. As the changes are mostly just in
+how the notes are displayed on the page, which doesn't matter
+with TeX4ht, I think we can safely block the package from loading
+and just use the Manyfoot package directly.
+
+One feature that doesn't work though is nested footnotes. I may look
+into this issue in the future.
+
+\<bigfoot-hooks.4ht\><<<
+% bigfoot-hooks.4ht (|version), generated from |jobname.tex
+% Copyright 2024 TeX Users Group
+|<TeX4ht license text|>
+\:dontusepackage{bigfoot}
+\RequirePackage{manyfoot}
+\endinput
+>>> \AddFile{9}{bigfoot-hooks}
+
%%%%%%%%%%%%%%%
\Section{Other}
%%%%%%%%%%%%%%%%%
@@ -38784,6 +39347,95 @@ Type 6 is for punctuation (\''\mathpunc', in LaTeX), and type 7 is
\NewConfigure{textul}{2}
>>>
+%%%%%%%%%%%%%%%%%%%%%
+\Section{Lua-ul}
+%%%%%%%%%%%%%%%%%%%%%
+
+\<lua-ul.4ht\><<<
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% lua-ul.4ht (|version), generated from |jobname.tex
+% Copyright 2024 TeX Users Group
+|<TeX4ht license text|>
+|<lua-ul getxcolor|>
+\ExplSyntaxOn
+|<lua-ul hooks|>
+\ExplSyntaxOff
+\Hinput{lua-ul}
+\endinput
+>>> \AddFile{9}{lua-ul}
+
+If Xcolor is not loaded explicitly in the document, the \Verb+\get:xcolorcss+ command
+is not available. We want to be able to save colors of underlines etc, so we need
+to provide a variant that will work regardless of Xcolor\dots
+
+\<lua-ul getxcolor\><<<
+\def\lua:ul:get:xcolorcss#1#2{%
+ \expandafter\extractcolorspec\expandafter{#1}{\tsf:color}%
+ \expandafter\convertcolorspec\tsf:color{HTML}\tsf:color%
+ \edef#2{\#\tsf:color}%
+}
+>>>
+
+\<lua-ul hooks\><<<
+
+\NewConfigure{highLight}{2}
+\NewDocumentCommand \:highLight {O{\l__luaul_highlight_color_tl} +m} {
+ \group_begin:
+ \lua:ul:get:xcolorcss{#1}\:highLightColor%
+ \a:highLight#2\b:highLight%
+ \group_end:
+}
+
+\HLet\highLight\:highLight
+
+\NewConfigure{strikeThrough}{2}
+\NewDocumentCommand \:strikeThrough {o +m} {
+ \group_begin:
+ \IfValueTF {#1} {
+ \lua:ul:get:xcolorcss{#1}\:strikeThroughColor%
+ }{\def\:strikeThroughColor{inherit}}
+ \a:strikeThrough#2\b:strikeThrough
+ \group_end:
+ }
+
+\HLet\strikeThrough\:strikeThrough
+
+\NewConfigure{underLine}{2}
+\NewDocumentCommand \:underLine {o +m} {
+ \group_begin:
+ \IfValueTF {#1} {
+ \__luaul_parse_generic_keys:n {
+ #1
+ }
+ }{}
+ \bool_if:NTF \l__luaul_color_set_bool {
+ % the \l__luaul_current_color_tl contains color in a format suitable for \convertcolorspec,
+ % so we cannot use \lua:ul:get:xcolorcss here
+ \expandafter\convertcolorspec\l__luaul_current_color_tl{HTML}\:tempa
+ \edef\:underLineColor{\#\:tempa}%
+ }{\def\:underLineColor{inherit}}
+ \a:underLine#2\b:underLine
+ \group_end:
+}
+
+\HLet\underLine\:underLine
+
+
+>>>
+
+Lua-ul can emulate commands defined by Soul, in that case we need to use our
+redefinitions of Lua-ul commands.
+
+\<lua-ul hooks\><<<
+\bool_if:NT \l__luaul_soulnames_bool {
+ \cs_set_eq:NN \textul \underLine \cs_set_eq:NN \ul \textul
+ \cs_set_eq:NN \textst \strikeThrough \cs_set_eq:NN \st \textst
+ \cs_set_eq:NN \texthl \highLight \cs_set_eq:NN \hl \texthl
+}
+>>>
+
+
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{Underline and Overline}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/support/TeX4ht/source/tex4ht-fonts-noncjk.tex b/support/TeX4ht/source/tex4ht-fonts-noncjk.tex
index 0e22004638..91e506635d 100644
--- a/support/TeX4ht/source/tex4ht-fonts-noncjk.tex
+++ b/support/TeX4ht/source/tex4ht-fonts-noncjk.tex
@@ -1,8 +1,8 @@
-% $Id: tex4ht-fonts-noncjk.tex 1541 2024-07-31 10:01:14Z michal_h21 $
+% $Id: tex4ht-fonts-noncjk.tex 1551 2024-09-03 22:26:09Z karl $
% tex tex4ht-fonts-noncjk
% or ht tex tex4ht-fonts-noncjk
%
-% Copyright 2009-2023 TeX Users Group
+% Copyright 2009-2024 TeX Users Group
% Copyright 1997-2009 Eitan M. Gurari
% Released under LPPL 1.3c+.
% See tex4ht-cpright.tex for license text.
@@ -24490,62 +24490,161 @@ Font file for the Esvect package.
% writing vect10.htf hash: d9018d0b41b7639bd8c3bf0419c3b8a5
\<vect10\><<<
vect10 0 47
-'&#x60;' '' grave 0 % generated from vect10.tfm, 2024-07-31-11:51
-'&#x00B4;' '' acute 1 % Copyright 2024 TeX Users Group
-'&#x02C6;' '' circumflex 2 %
-'&#x02DC;' '' tilde 3 % This work may be distributed and/or modified under the
-'&#x00A8;' '' dieresis 4 % conditions of the LaTeX Project Public License, either
-'&#x02DD;' '' hungarumlaut 5 % version 1.3c of this license or (at your option) any
-'&#x02DA;' '' ring 6 % later version. The latest version of this license is in
-'&#x02C7;' '' caron 7 % http://www.latex-project.org/lppl.txt
-'&#x02D8;' '' breve 8 % and version 1.3c or later is part of all distributions
-'' '' % of LaTeX version 2005/12/01 or later.
-'' '' %
-'' '' % This work has the LPPL maintenance status "maintained".
-'' '' %
-'' '' % The Current Maintainer of this work
-'' '' % is the TeX4ht Project <http://tug.org/tex4ht>.
-'' '' %
-'&#x201C;' '' quotedblleft 16 % If you modify this program, changing the
-'&#x201D;' '' quotedblright 17 % version identification would be appreciated.
-'&#x201E;' '' quotedblbase 18
-'&#x00AB;' '' guillemotleft 19
-'&#x00BB;' '' guillemotright 20
-'&#x2013;' '' endash 21
-'&#x2014;' '' emdash 22
-'&#x200C;' '' cwm 23
-'&#x2030;' '' perthousand 24
-'' ''
-'' ''
-'' ''
-'' ''
-'' ''
-'' ''
-'' ''
-' ' '' space 32
-'!' '' exclam 33
-'"' '' quotedbl 34
-'#' '' numbersign 35
-'$' '' dollar 36
-'%' '' percent 37
-'&amp;' '' ampersand 38
-'&#x2019;' '' quoteright 39
-'(' '' parenleft 40
-')' '' parenright 41
-'*' '' asterisk 42
-'+' '' plus 43
-',' '' comma 44
-'-' '' hyphen 45
-'.' '' period 46
-'/' '' slash 47
+'&#x2192;' '' 0000 0 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+'&#x2192;' '' 0001 1 %% vect.htf (unicode) %
+'&#x2192;' '' 0002 2 %% generated from vect10.tfm, 2024-07-31-11:51 %
+'&#x2192;' '' 0003 3 %% Copyright 2024 TeX Users Group, Arkady Benediktov %
+'&#x2192;' '' 0004 4 %% %
+'&#x2192;' '' 0005 5 %% This work may be distributed and/or modified under the %
+'&#x2192;' '' 0006 6 %% conditions of the LaTeX Project Public License, either %
+'&#x2192;' '' 0007 7 %% version 1.3c of this license or (at your option) any %
+'&#x2192;' '' 0008 8 %% later version. The latest version of this license is in %
+'&#x0009;' '' 0009 9 %% http://www.latex-project.org/lppl.txt %
+'&#x000A;' '' 000A 10 %% and version 1.3c or later is part of all distributions %
+'&#x000B;' '' 000B 11 %% of LaTeX version 2005/12/01 or later. %
+'&#x000C;' '' 000C 12 %% %
+'&#x000D;' '' 000D 13 %% This work has the LPPL maintenance status "maintained". %
+'&#x000E;' '' 000E 14 %% %
+'&#x000F;' '' 000F 15 %% The Current Maintainer of this work %
+'&#x2192;' '' 0010 16 %% is the TeX4ht Project <http://tug.org/tex4ht>. %
+'&#x2192;' '' 0011 17 %% %
+'&#x2192;' '' 0012 18 %% If you modify this program, changing the %
+'&#x2192;' '' 0013 19 % % version identification would be appreciated. %
+'&#x2192;' '' 0014 20 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+'&#x2192;' '' 0015 21
+'&#x2192;' '' 0016 22
+'&#x2192;' '' 0017 23
+'&#x2192;' '' 0018 24
+'&#x0019;' '' 0019 25
+'&#x001A;' '' 001A 26
+'&#x001B;' '' 001B 27
+'&#x001C;' '' 001C 28
+'&#x001D;' '' 001D 29
+'&#x001E;' '' 001E 30
+'&#x001F;' '' 001F 31
+'&#x23AF;' '' 0020 32
+'&#x23AF;' '' 0021 33
+'&#x23AF;' '' 0022 34
+'&#x23AF;' '' 0023 35
+'&#x23AF;' '' 0024 36
+'&#x23AF;' '' 0025 37
+'&#x23AF;' '' 0026 38
+'&#x23AF;' '' 0027 39
+'&#x23AF;' '' 0028 40
+'&#x23AF;' '' 0029 41
+'&#x23AF;' '' 002A 42
+'&#x23AF;' '' 002B 43
+'&#x23AF;' '' 002C 44
+'&#x23AF;' '' 002D 45
+'&#x23AF;' '' 002E 46
+'&#x23AF;' '' 002F 47
vect10 0 47
-htfcss: vect10 font-family: 'TeXvect10', serif;
+
>>>
\AddFont{vect10}{unicode/TeXvect10/vect10}{}
-
-
+\<vect\><<<
+.vect10
+htfcss: vect10 font-family: 'TeXvect10', serif;
+htfcss: vect5 font-family: 'TeXvect10', serif;
+>>>
+
+\AddFont{vect}{unicode/TeXvect10/vect}{}
+
+
+
+\Section{BBM}
+
+\<bbm\><<<
+bbm 8 90 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+'&#x2985;' '' 8 %% bbm.htf (unicode) %
+'&#x2986;' '' 9 %% generated from bbm.tfm, 2024-09-03 %
+'' '1' 10 %% Copyright 2024 TeX Users Group, Arkady Benediktov %
+'' '1' 11 %% %
+'' '1' 12 %% This work may be distributed and/or modified under the %
+'' '1' 13 %% conditions of the LaTeX Project Public License, either %
+'' '1' 14 %% version 1.3c of this license or (at your option) any %
+'' '1' 15 %% later version. The latest version of this license is in %
+'' '1' 16 %% http://www.latex-project.org/lppl.txt %
+'&#x1d7d9;' '' 17 %% and version 1.3c or later is part of all distributions %
+'&#x1d7da;' '' 18 %% of LaTeX version 2005/12/01 or later. %
+'' '1' 19 %% %
+'' '1' 20 %% This work has the LPPL maintenance status "maintained". %
+'' '1' 21 %% %
+'' '1' 22 %% The Current Maintainer of this work %
+'' '1' 23 %% is the TeX4ht Project <http://tug.org/tex4ht>. %
+'' '1' 24 %% %
+'' '1' 25 %% If you modify this program, changing the %
+'' '1' 26 % % version identification would be appreciated. %
+'' '1' 27 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+'' '1' 28
+'' '1' 29
+'' '1' 30
+'' '1' 31
+'' '1' 32
+'&#x1d538;' '' 33
+'&#x1d539;' '' 34
+'&#x2102;' '' 35
+'&#x1d53b;' '' 36
+'&#x1d53c;' '' 37
+'&#x1d53d;' '' 38
+'&#x1d53e;' '' 39
+'&#x210d;' '' 40
+'&#x1d540;' '' 41
+'&#x1d541;' '' 42
+'&#x1d542;' '' 43
+'&#x1d543;' '' 44
+'&#x1d544;' '' 45
+'&#x2115;' '' 46
+'&#x1d546;' '' 47
+'&#x2119;' '' 48
+'&#x211a;' '' 49
+'&#x211d;' '' 50
+'&#x1d54a;' '' 51
+'&#x1d54b;' '' 52
+'&#x1d54c;' '' 53
+'&#x1d54d;' '' 54
+'&#x1d54e;' '' 55
+'&#x1d54f;' '' 56
+'&#x1d550;' '' 57
+'&#x2124;' '' 58
+'&#x27e6;' '' 59
+'' '1' 60
+'&#x27e7;' '' 61
+'' '1' 62
+'' '1' 63
+'' '1' 64
+'&#x1d552;' '' 65
+'&#x1d553;' '' 66
+'&#x1d554;' '' 67
+'&#x1d555;' '' 68
+'&#x1d556;' '' 69
+'&#x1d557;' '' 70
+'&#x1d558;' '' 71
+'&#x1d559;' '' 72
+'&#x1d55a;' '' 73
+'&#x1d55b;' '' 74
+'&#x1d55c;' '' 75
+'&#x1d55d;' '' 76
+'&#x1d55e;' '' 77
+'&#x1d55f;' '' 78
+'&#x1d560;' '' 79
+'&#x1d561;' '' 80
+'&#x1d562;' '' 81
+'&#x1d563;' '' 82
+'&#x1d564;' '' 83
+'&#x1d565;' '' 84
+'&#x1d566;' '' 85
+'&#x1d567;' '' 86
+'&#x1d568;' '' 87
+'&#x1d569;' '' 88
+'&#x1d56a;' '' 89
+'&#x1d56b;' '' 90
+bbm 8 90
+>>>
+
+\AddFont{bbm}{unicode/bbm/bbm}{}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/support/TeX4ht/source/tex4ht-html4.tex b/support/TeX4ht/source/tex4ht-html4.tex
index 13bf280c88..012883e471 100644
--- a/support/TeX4ht/source/tex4ht-html4.tex
+++ b/support/TeX4ht/source/tex4ht-html4.tex
@@ -1,4 +1,4 @@
-% $Id: tex4ht-html4.tex 1537 2024-07-06 19:48:42Z michal_h21 $
+% $Id: tex4ht-html4.tex 1591 2024-10-29 13:48:36Z michal_h21 $
% Compile 4 times: latex tex4ht-html4
% Copy html4.4ht into the work directory before all but the last compilation.
%
@@ -73,7 +73,7 @@
\<html4-math\><<<
% html4-math.4ht (|version), generated from |jobname.tex
-% Copyright 2009-2023 TeX Users Group
+% Copyright 2009-2024 TeX Users Group
% Copyright |CopyYear.1999. Eitan M. Gurari
|<TeX4ht copywrite|>
>>>
@@ -5996,7 +5996,7 @@ thanks author date and>>>
\<tug boat maketitle\><<<
\@ifclassloaded{ltugproc}{}{%
- \@ifpackageloaded{ltugproc}{}{\Configure{@BODY}{\rtitlex}}
+ \@ifpackageloaded{ltugproc}{}{\Configure{@BODY}{\@ifundefined{:rtitlexused}{\rtitlex}{}\def\:rtitlexused{}}}
}
\Configure{maketitle}
{\ifvmode \IgnorePar\fi \EndP
@@ -7661,7 +7661,7 @@ consecutive \verb+<br />+ tags.
{}
{\xdef\col:Css{\col:Css
border-\ifnum \ar:cnt=0 left\else right\fi
- :solid black 0.4pt;}%
+ :1px solid \VBorder:color;}%
}{}{}%
}
{\ifx \col:Css\empty \else
@@ -7809,6 +7809,7 @@ Currently, we either have empty \verb'\VBorder', or one defined to
\<html latex array/tabular Config 4.0t\><<<
\let\VBorder|=\empty \let\AllColMargins|=\empty
+\def\VBorder:color{black}
\Configure{VBorder}
{\let\VBorder|=\empty \let\AllColMargins|=\empty
\global\let\GROUPS|=\empty \HAssign\NewGroup = 0
@@ -7818,10 +7819,10 @@ Currently, we either have empty \verb'\VBorder', or one defined to
% put vertical border for a column
\ifnum\ar:cnt > 0%
% in all other cases, we should put right border
- \Css{\#TBL-\TableNo-\ar:cnt {border-right:1px solid black;}}%
+ \Css{\#TBL-\TableNo-\ar:cnt {border-right:1px solid \VBorder:color;}}%
\else%
% columns are numbered from 1. if \ar:cnt == 0 then it is the left border
- \Css{\#TBL-\TableNo-1{border-left: 1px solid black;}}%
+ \Css{\#TBL-\TableNo-1{border-left: 1px solid \VBorder:color;}}%
\fi%
}
{\Advance:\NewGroup by 1
@@ -7832,8 +7833,8 @@ Currently, we either have empty \verb'\VBorder', or one defined to
{\xdef\AllColMargins{\AllColMargins 0}}
\Configure{HBorder}
{<tr\Hnewline class="hline">} {<td><hr\xml:empty></td>} {</tr>}
- {<tr\Hnewline class="cline">}
- {<td></td>} {<td><hr\xml:empty></td>} {</tr>}
+ {<tr\Hnewline class="cline">}
+ {<td></td>} {<td style="border-top:1px solid \#\hline:color;"></td>} {</tr>}
{<tr\Hnewline class="vspace" style="font-size:\HBorderspace">}
{<td\Hnewline>\string&nbsp;</td>}
{</tr>}
@@ -7844,7 +7845,8 @@ Currently, we either have empty \verb'\VBorder', or one defined to
\Css{.hline hr, .cline hr{border:none;border-top:1px solid black;}}
\Css{.hline {border-top: 1px solid black;}}
\Css{.hline + .vspace:last-child{display:none;}}
-\Css{.hline:first-child{border-bottom:1px solid black;border-top:none;}}
+% why was there this rule? it adds unnecessary extra rule at the top of tables
+% \Css{.hline:first-child{border-bottom:1px solid black;border-top:none;}}
>>>
When \verb'\putVBorder' is call in \verb'\VBorder'
@@ -8790,16 +8792,22 @@ The hbox is for avoiding the start of a new paragraph, if in vmode.
};
}
\fi
+\NewConfigure{MathjaxInline}{2}
+\NewConfigure{MathjaxBlock}{2}
+\Configure{MathjaxInline}{\HCode{<span class="mathjax-inline">}}{\HCode{</span>}}
+\Configure{MathjaxBlock}{\ifvmode\IgnorePar\fi\EndP\HCode{<div class="mathjax-block">}}{\HCode{</div>}}
+\Configure{MathjaxEnv}{\ifvmode\IgnorePar\fi\EndP\HCode{<div class="mathjax-env mathjax-\@currenvir">}}{\HCode{</div>}}
+
\Configure{@HEAD}{\HCode{<script>window.MathJax = \a:MathJaxConfig</script>\Hnewline}}
\Configure{MathjaxSource}{https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml-full.js}
-\Configure{@HEAD}{\HCode{ <script type="text/javascript" async="async" id="MathJax-script" src="\a:MathjaxSource"></script> \Hnewline}}
+\Configure{@HEAD}{\ifx\a:MathjaxSource\@empty\else\HCode{<script type="text/javascript" async="async" id="MathJax-script" src="\a:MathjaxSource"></script> \Hnewline}\fi}
\edef\:RestoreMathjaxCatcodes{\catcode`\noexpand \&=\the\catcode`\&}
\def\:HandleMathjaxCatcodes{\edef\:RestoreMathjaxCatcodes{\catcode`\noexpand \&=\the\catcode`\&}\catcode`\&=11}
-\Configure{$}{\:HandleMathjaxCatcodes}{\:RestoreMathjaxCatcodes}{\expandafter\AltMathOne}
-\Configure{$$}{\:HandleMathjaxCatcodes}{\:RestoreMathjaxCatcodes}{\expandafter\AltlDisplayDollars}
-% for some reason, it is necessary to specify the catcode change directly in the configuration
-\Configure{()}{\:HandleMathjaxCatcodes\catcode`\&=11\AltlMath}{\:RestoreMathjaxCatcodes}
-\Configure{[]}{\:HandleMathjaxCatcodes\catcode`\&=11\AltlDisplay}{\:RestoreMathjaxCatcodes}
+\Configure{$}{\a:MathjaxInline\:HandleMathjaxCatcodes}{\:RestoreMathjaxCatcodes\b:MathjaxInline}{\expandafter\AltMathOne}
+\Configure{()}{\a:MathjaxInline\:HandleMathjaxCatcodes\catcode`\&=11\AltlMath}{\:RestoreMathjaxCatcodes\b:MathjaxInline}
+\Configure{$$}{\a:MathjaxBlock\:HandleMathjaxCatcodes}{\:RestoreMathjaxCatcodes\b:MathjaxBlock}{\expandafter\AltlDisplayDollars}
+\Configure{[]}{\a:MathjaxBlock\:HandleMathjaxCatcodes\catcode`\&=11\AltlDisplay}{\:RestoreMathjaxCatcodes\b:MathjaxBlock}
+
\fi
>>>
@@ -16472,6 +16480,9 @@ Blue = 1-minimum(1,Yellow *(1-Black)+Black)
% redefine default table configuration and put the color rule
\def\a:HBorder{<tr class="hline" style="border-top:1px solid \#\hline:color">}
+
+% use the hline color also for vertial lines
+\def\VBorder:color{\#\hline:color}
% don't display <hr> elements in colored \hline
\Css{tr.hline td hr{display:none}}
>>>
@@ -16540,6 +16551,18 @@ Blue = 1-minimum(1,Yellow *(1-Black)+Black)
>>>
%%%%%%%%%%%%%%%%
+\section{lua-ul}
+%%%%%%%%%%%%%%%%
+
+\<configure html4 lua-ul\><<<
+\Configure{highLight}{\HCode{<span class="highLight" style="background-color:\:highLightColor;">}}{\HCode{</span>}}
+\Configure{strikeThrough}{\HCode{<span class="strikeThrough" style="text-decoration-color:\:strikeThroughColor;" >}}{\HCode{</span>}}
+\Css{.strikeThrough{text-decoration: line-through;}}
+\Configure{underLine}{\HCode{<span class="underLine" style="text-decoration-color:\:underLineColor;">}}{\HCode{</span>}}
+\Css{.underLine{text-decoration: underline;}}
+>>>
+
+%%%%%%%%%%%%%%%%
\section{framed}
\<configure html4 framed\><<<
@@ -16846,9 +16869,26 @@ Blue = 1-minimum(1,Yellow *(1-Black)+Black)
{\end:itm \global\def\end:itm{\EndP\Tg</dd>}\HCode{<dt
class="enumerate-enumitem">}\bgroup \bf}
{\egroup\EndP\HCode{</dt><dd\Hnewline class="enumerate-enumitem">}}
+
\Css{dl.enumerate-enumitem{display:grid; grid-template-columns: 3ch 1fr; align-items: top; row-gap:1ch;}}
>>>
+Configurations for new list environments.
+
+\<configure html4 enumitem\><<<
+\Configure{enumitemnewlist}{%
+\ConfigureList{\a:enumitemenv}%
+ {\EndP\HCode{<dl \a:LRdir class="enumerate-enumitem enumitem-\a:enumitemenv">}%
+ |<save end:itm|>\global\let\end:itm=\empty}
+ {|<recall end:itm|>\EndP\HCode{</dd></dl>}\ShowPar}
+ {\end:itm \global\def\end:itm{\EndP\Tg</dd>}\HCode{<dt
+ class="enumerate-enumitem enumitem-\a:enumitemenv">}\bgroup \bf}
+ {\egroup\EndP\HCode{</dt><dd\Hnewline class="enumerate-enumitem">}}
+}
+
+
+>>>
+
%%%%%%%%%%%%%
\subsection{IEEEtran}
@@ -17806,6 +17846,45 @@ Blue = 1-minimum(1,Yellow *(1-Black)+Black)
>>>
%%%%%%%%%%%%%%%%%%
+\section{moderncv}
+%%%%%%%%%%%%%%%%%%
+
+\<configure html4 moderncv\><<<
+\Configure{cvhead}{\ifvmode\IgnorePar\fi\EndP\HCode{<div class="cvhead">}}{\ifvmode\IgnorePar\fi\EndP\HCode{</div>}}
+\Configure{cvphoto}{\ifvmode\IgnorePar\fi\EndP\HCode{<div class="cvphoto">}}{\ifvmode\IgnorePar\fi\EndP\HCode{</div>}}
+
+\Configure{section}{\ifvmode\IgnorePar\fi\EndP\HCode{<h2>}}{\HCode{</h2>}}
+\Configure{subsection}{\ifvmode\IgnorePar\fi\EndP\HCode{<h3>}}{\HCode{</h3>}}
+\Configure{cvitem}{\ifvmode\IgnorePar\fi\EndP\HCode{<div class="cvitem"><span class="cvitemhead">}}{\HCode{</span><span class="cvitembody">}}{\HCode{</span></div>}}
+\Configure{cvdoubleitem}{\ifvmode\IgnorePar\fi\EndP\HCode{<div class="cvdoubleitem">}}{\HCode{</div>}}
+\Configure{cvlistitem}{\ifvmode\IgnorePar\fi\EndP\HCode{<div class="cvlistitem">}}{\HCode{</div>}}
+\Configure{cvlistdoubleitem}{\ifvmode\IgnorePar\fi\EndP\HCode{<div class="cvlistdoubleitem">}}{\HCode{</div>}}
+
+\Configure{cvskillhead}{\ifvmode\IgnorePar\fi\EndP\HCode{<div class="cvskillhead">}}{\HCode{</div>}}
+\Configure{cvskillentry}{\ifvmode\IgnorePar\fi\EndP\HCode{<div class="cvskillentry">}}{\HCode{</div>}}
+
+\Configure{cvskill}{\Picture*[skill level: \:cvskillamount]{}}{\EndPicture}
+
+\Css{.cvskillentry .tabular, .cvskillhead .tabular {margin:0pt;}}
+\Css{.cvskillentry .tabular td:nth-child(1), .cvskillhead .tabular td:nth-child(1){width: 8ch}}
+\Css{.cvskillentry .tabular td:nth-child(2), .cvskillhead .tabular td:nth-child(2){width: 12ch}}
+\Css{.cvskillentry .tabular td:nth-child(3), .cvskillhead .tabular td:nth-child(3){width: 6ch}}
+\Css{.cvskillentry .tabular td:nth-child(4), .cvskillhead .tabular td:nth-child(4){width: 54ch}}
+
+\Css{.cvitemhead{margin-right: 1em;}}
+
+\Css{
+@media (min-width:94ch) {
+.cvitemhead{
+ margin-left: -14ch;
+ width: 12ch;
+ float: left;
+ text-align: right;
+ }
+}}
+>>>
+
+%%%%%%%%%%%%%%%%%%
\section{CSS}
%%%%%%%%%%%%%%%%%%
@@ -18355,6 +18434,19 @@ font-size:70\%;
>>>
+This should remove part number in French Babel, because
+the number is a part of the partname.
+\Link[https://github.com/michal-h21/make4ht/issues/155]{}{}Bug report\EndLink.
+
+\<configure html4 french\><<<
+\Configure{part}{}{}
+ {\IgnorePar \EndP\HCode{<h1 class="partHead"\a:LRdir>}%
+ \HCode{<span class="titlemark">}\partname
+ \HCode{</span><br />}}
+ {\HCode{</h1>}\IgnoreIndent\par}
+>>>
+
+
\<configure html4 galician\><<<
@@ -19902,9 +19994,10 @@ chess notation as an alt text.
\<configure html4 ltugboat\><<<
|<tug boat maketitle|>
\Configure{titlex}
- {\HCode{<div class="titlex">}}
+ {\ifvmode\IgnorePar\fi\EndP\HCode{<div class="titlex">}}
{\HCode{</div>}}
\Css{div.titlex p{margin-bottom:1em;}}
+\Css{div.titlex {text-align: center;}}
|<ltugboat congif|>
>>>
@@ -22869,7 +22962,9 @@ The \verb|\hline:color| macro is defined by TeX4ht configuration for colortbl.st
We reuse it to support change of rule colors. It is initialized as black.
\<booktabs default hline color\><<<
+\ifdefined\hline:color\else
\def\hline:color{000}
+\fi
>>>
diff --git a/support/TeX4ht/source/tex4ht-info.tex b/support/TeX4ht/source/tex4ht-info.tex
index 75c784f811..339cfaae87 100644
--- a/support/TeX4ht/source/tex4ht-info.tex
+++ b/support/TeX4ht/source/tex4ht-info.tex
@@ -1,4 +1,4 @@
-% $Id: tex4ht-info.tex 905 2021-04-18 15:30:06Z karl $
+% $Id: tex4ht-info.tex 1564 2024-09-29 14:56:20Z karl $
% Compile with the command `ht latex tex4ht-info'
% or
% compile 3 times: latex tex4ht-info
@@ -33,7 +33,7 @@
\<info4ht\><<<
% info4ht.4ht (|version), generated from |jobname.tex
-% Copyright 2009-2021 TeX Users Group
+% Copyright 2009-2024 TeX Users Group
% Copyright |CopyYear.2000. Eitan M. Gurari
%
% This work may be distributed and/or modified under the
@@ -654,15 +654,15 @@ Cross-Linking
#1 label
#2 content
-\Ref.....................................1
+\XRef.....................................1
\LikeRef.................................1
#1 label
- \Tag and \Ref are tex4ht.sty commands introduced cross-referencing
+ \Tag and \XRef are tex4ht.sty commands introduced cross-referencing
content through .xref auxiliary files.
- \LikeRef is a variant of \Ref which doesn't verify whether the
+ \LikeRef is a variant of \XRef which doesn't verify whether the
labels exit. It is mainly used in \Link and \edef environments.
\ifTag ..................................3
@@ -676,7 +676,7 @@ Cross-Linking
Load the named xref-type file
.xref optional--`.xref' is assume for a default
- + optional-- asks \Ref and \LikeRef commands
+ + optional-- asks \XRef and \LikeRef commands
to use expanded tags `filename::tag', instead of just `tag'
[prefix] optional--asks just for tags starting with the
specified prefix.
@@ -688,7 +688,7 @@ Cross-Linking
Example:
% a.tex
- \LoadRef-[to:]{b}{from:#1} \Ref{from:filename}
+ \LoadRef-[to:]{b}{from:#1} \XRef{from:filename}
\LikeRef{from:filename}
% b.tex
diff --git a/support/TeX4ht/source/tex4ht-jats.tex b/support/TeX4ht/source/tex4ht-jats.tex
index e54de5ad20..16182ba8f5 100644
--- a/support/TeX4ht/source/tex4ht-jats.tex
+++ b/support/TeX4ht/source/tex4ht-jats.tex
@@ -1,4 +1,4 @@
-% $Id: tex4ht-jats.tex 1473 2024-02-23 12:26:51Z michal_h21 $
+% $Id: tex4ht-jats.tex 1545 2024-08-13 19:02:54Z michal_h21 $
% compile 3 times: latex tex4ht-jats
% or xhlatex tex4ht-jats "html,3,sections+"
%
@@ -201,6 +201,7 @@ Configurations that are shared only for article and report
|<latex footnotes|>
|<latex quotes|>
|<latex lists|>
+|<latex bibliography|>
>>>
\<shared article,report\><<<
@@ -841,6 +842,29 @@ them separatelly.
{\EndNoFonts\HCode{</term><def>}\HtmlParOn|<list par|>}
>>>
+
+We cannot create a structured bibliographic record for plain LaTeX references, so we
+at least mark individual entries.
+
+Entry id is set on the label element. The id comes from a child xref element that is removed
+by make4ht. Ideally, it should be set on ref, but we need to use label here, to catch
+potential entry number.
+
+
+\<latex bibliography\><<<
+\ConfigureList{thebibliography}%
+ {\ifvmode\IgnorePar\fi \EndP \HCode{<ref-list>}\let\en:bib=\empty}
+ {\en:bib \ifvmode\IgnorePar\fi \EndP \HCode{</ref-list>}}
+ {\en:bib\def\en:bib{\HCode{</mixed-citation></ref>}}%
+ \HCode{<ref><label>}%
+ \Configure{HtmlPar}%
+ {\EndP}%
+ {\EndP}%
+ {} {}%
+ }
+ {\HCode{</label><mixed-citation>}}
+>>>
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Packages}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/support/TeX4ht/source/tex4ht-mathjax.tex b/support/TeX4ht/source/tex4ht-mathjax.tex
index 25f324ab7f..0e96e2b270 100644
--- a/support/TeX4ht/source/tex4ht-mathjax.tex
+++ b/support/TeX4ht/source/tex4ht-mathjax.tex
@@ -1,4 +1,4 @@
-% $Id: tex4ht-mathjax.tex 1540 2024-07-28 17:10:17Z michal_h21 $
+% $Id: tex4ht-mathjax.tex 1589 2024-10-25 14:47:14Z michal_h21 $
% compile: latex tex4ht-mathjax
%
% Copyright 2018-2024 TeX Users Group
@@ -54,24 +54,35 @@ The original code was this:
% % replace \\:{ back to \\ { -- this can be introduced by the previous regex
% \regex_replace_all:nnN { \x{5C} \x{5C} \x{3A} \x{7B} } { \x{5C} \x{5C} \x{20} \x{7B} } \l_tmpa_tl
-Now (July 2024), when I researched another issue, I've found that it is actually possible to avoid these
+
+In July 2024, when I researched another issue, I've found that it is actually possible to avoid these
extra spaces using LaTeX 3 commands. The inspiration comes from
\Link[https://tex.stackexchange.com/a/44444/2891]this Bruno Le Foch\EndLink.
One ongoing issue is that newlines are not presented. But they weren't preserved with \verb|\detokenize|
either, so it shouldn't be a problem.
+In September 2024 I found that the LaTeX 3 method of preserving spaces didn't work correctly for
+code like this: \verb|$\int A f(x)\;dx$| -- the space between \verb|\int| and \verb|A| was removed,
+so it ended like command \verb|\intA|. So we are moving back to \verb|\detokenize|.
-We still use regular expressions to escape invalid XML characters to entities, so it works only with LaTeX.
+This is the code that was promising, but didn't work in the end:
-\<defined commands\><<<
-\ExplSyntaxOn
-\cs_new_protected:Npn \alteqtoks #1
-{
+\begin{verbatim}
% save tokens, but preserve spaces
% https://tex.stackexchange.com/a/44444/2891
\tl_set:Nn \l_tmpa_tl {#1}
\regex_replace_all:nnN { . } { \c{string} \0 } \l_tmpa_tl
\tl_set:Nx \l_tmpa_tl { \l_tmpa_tl }
+\end{verbatim}
+
+
+We still use regular expressions to escape invalid XML characters to entities, so it works only with LaTeX.
+
+\<defined commands\><<<
+\ExplSyntaxOn
+\cs_new_protected:Npn \alteqtoks #1
+{
+ \tl_set:Ne \l_tmpa_tl {\detokenize{#1}}
% % replace < > and & with xml entities
\regex_replace_all:nnN { \x{26} } { &amp; } \l_tmpa_tl
\regex_replace_all:nnN { \x{3C} } { &lt; } \l_tmpa_tl
@@ -120,10 +131,14 @@ environments. They will then keep the LaTeX code unchanged.
% beginning of each display math
\long\def\AltlDisplayDollars#1$${\alteqtoks{\[#1\]}$$}
+\NewConfigure{MathjaxEnv}{2}
+
\newcommand\VerbMathToks[2]{%
- \alteqtoks{\begin{#2}
- #1
- \end{#2}}%
+ \a:MathjaxEnv%
+ \HCode{\string\begin{#2}}%
+ \alteqtoks{#1}%
+ \HCode{\string\end{#2}}%
+ \b:MathjaxEnv%
}
>>>
@@ -294,7 +309,8 @@ inside TikZ etc.
\<restore environments\><<<
\@ifpackageloaded{tikz}{%
-\tikzset{every picture/.append code={\:ignoretikzmatrix\RestoreMathJaxEnvironments}}
+%\tikzset{every picture/.append code={\:ignoretikzmatrix\RestoreMathJaxEnvironments}}
+\pend:def\tikz@installcommands{\RestoreMathJaxEnvironments}
}{}
>>>
diff --git a/support/TeX4ht/source/tex4ht-mathml.tex b/support/TeX4ht/source/tex4ht-mathml.tex
index e7f496d6bf..672530a27c 100644
--- a/support/TeX4ht/source/tex4ht-mathml.tex
+++ b/support/TeX4ht/source/tex4ht-mathml.tex
@@ -1,8 +1,8 @@
-% $Id: tex4ht-mathml.tex 1495 2024-03-21 16:39:31Z michal_h21 $$
+% $Id: tex4ht-mathml.tex 1580 2024-10-10 21:27:16Z michal_h21 $$
% compile 3 times: latex tex4ht-mathltx
% or xhlatex tex4ht-mathltx "html,3,sections+"
%
-% Copyright 2009-2023 TeX Users Group
+% Copyright 2009-2024 TeX Users Group
% Copyright 1999-2009 Eitan M. Gurari
% Released under LPPL 1.3c+.
% See tex4ht-cpright.tex for license text.
@@ -584,7 +584,7 @@ in italic and without space that would separate it from the following element.
\<html-mml\><<<
% html-mml.4ht (|version), generated from |jobname.tex
-% Copyright 2009-2022 TeX Users Group
+% Copyright 2009-2024 TeX Users Group
% Copyright |CopyYear.1999. Eitan M. Gurari
|<TeX4ht copywrite|>
>>>
@@ -1939,6 +1939,189 @@ primes.
\fi
>>>
+
+We may want to include LaTeX source as an annotation in MathML. In particular LaTeX PDF tagging code can use
+this feature. We will not use it by default, but only with texsource option, as it can potentially
+break some functionality.
+
+The code is based on the LaTeX MathJax code, but heavily modified.
+
+\<configure html-mml latex\><<<
+\:CheckOption{texsource}\if:Option
+
+\newtoks\mmleqtoks
+\ExplSyntaxOn
+\cs_new_protected:Npn \mmlalteqtoks #1
+{
+ % save tokens, but preserve spaces
+ % https://tex.stackexchange.com/a/44444/2891
+ \tl_set:Nn \l_tmpa_tl {#1}
+ \regex_replace_all:nnN { . } { \c{string} \0 } \l_tmpa_tl
+ \tl_set:Nx \l_tmpa_tl { \l_tmpa_tl }
+ % % replace < > and & with xml entities
+ \regex_replace_all:nnN { \x{26} } { &amp; } \l_tmpa_tl
+ \regex_replace_all:nnN { \x{3C} } { &lt; } \l_tmpa_tl
+ \regex_replace_all:nnN { \x{3E} } { &gt; } \l_tmpa_tl
+ % \regex_replace_all:nnN { \n } {\HCode{ \Hnewline }} \l_tmpa_tl
+ % replace \par command with blank lines
+ \regex_replace_all:nnN { \x{5C}par\b } {\x{A}\x{A}} \l_tmpa_tl
+ \tl_set:Nx \mmleqtoks{ \l_tmpa_tl }
+
+ %\HCode{\l_tmpb_tl}
+}
+\ExplSyntaxOff
+
+
+\def\AltMath#1${\mmlalteqtoks{#1}%
+ #1\HCode{</\a:mathml mrow><\a:mathml annotation encoding="application/x-tex">\mmleqtoks</\a:mathml annotation>}$}
+\Configure{$}{\Configure{@math}{display="inline"}\DviMath\HCode{<\a:mathml semantics><\a:mathml mrow>}}{\HCode{</\a:mathml semantics>}\EndDviMath}{\expandafter\AltMath}
+
+\def\AltMathParen#1\){\mmlalteqtoks{#1}%
+ #1\HCode{</\a:mathml mrow><a\a:mathml nnotation encoding="application/x-tex">\mmleqtoks</\a:mathml annotation>}$}
+
+\def\AltMathParen#1\){\mmlalteqtoks{#1}#1\HCode{</\a:mathml mrow><\a:mathml annotation encoding="application/x-tex">\mmleqtoks</\a:mathml annotation>}\)}
+%\Configure{()}{\Configure{@math}{display="inline"}\DviMath\HCode{<\a:mathml semantics><\a:mathml mrow>}\AltMathParen$}{\EndDviMath\HCode{</\a:mathml semantics>}}
+\Configure{()}
+ {\Configure{@math}{%\a:mathml
+ display="inline"
+}\csname a:mathml()\endcsname
+\DviMath\HCode{<\a:mathml semantics><\a:mathml mrow>}$\expandafter\AltMathParen}
+{$\HCode{</\a:mathml semantics>}\EndDviMath\csname b:mathml()\endcsname}
+
+
+\long\def\AltDisplay#1\]{\mmlalteqtoks{#1}#1\HCode{</\a:mathml mrow><\a:mathml annotation encoding="application/x-tex">\mmleqtoks</\a:mathml annotation></\a:mathml semantics>}\]}
+\Configure{[]}{\Configure{@math}{display="block"}\DviMath$$\DisplayMathtrue\HCode{<\a:mathml semantics><\a:mathml mrow>}\AltDisplay}{$$\EndDviMath}
+
+
+% \long\def\MMLAltlDisplayDollars#1$${\mmlalteqtoks{\[#1\]}#1\HCode{</\a:mathml mrow><\a:mathml annotation encoding="application/x-tex">\mmleqtoks</\a:mathml annotation>}$$}
+
+% configuarartion of display math doesn't work yet. need to investigate it.
+% \Configure{$$}
+% {\Configure{@math}{%\a:mathml
+% display="block"
+% }\IgnorePar
+% \ifvmode\else \HCode{<!--tex4ht:inline-->}\fi
+% \EndP\DviMath\HCode{<\a:mathml semantics><\a:mathml mrow>}}
+% {\HCode{</\a:mathml semantics>}\EndDviMath\ShowPar\par{\csname HCondtrue\endcsname\noindent}}
+% {\DisplayMathtrue\expandafter\MMLAltlDisplayDollars}
+
+
+% \renewcommand\eqannotate[1]{\mmlalteqtoks{#1}\HCode{<\a:mathml semantics><\a:mathml mrow>}#1\HCode{</\a:mathml mrow><\a:mathml annotation encoding="application/x-tex">\mmleqtoks</\a:mathml annotation></\a:mathml semantics>}}
+
+
+% environment support
+\newcommand\MMLVerbMathToks[2]{%
+ \mmlalteqtoks{\begin{#2}
+ #1
+ \end{#2}}%
+ \begingroup%
+ \ifvmode\IgnorePar\fi\EndP\Configure{@math}{display="block"}\DviMath\DisplayMathtrue\HCode{<\a:mathml semantics><\a:mathml mrow>}
+ \Configure{$$}{}{}{}
+ \begin{old#2}
+ #1
+ \end{old#2}
+ \HCode{</\a:mathml mrow><\a:mathml annotation encoding="application/x-tex">}
+ \HCode{\mmleqtoks}
+ \HCode{</\a:mathml annotation></\a:mathml semantics>}
+ \EndDviMath
+ \endgroup
+}
+
+% we must handle equations separatelly.
+% it is a bit messy
+\newcommand\MMLVerbMathToksEquation[2]{%
+ \mmlalteqtoks{\begin{#2}
+ #1
+ \end{#2}}%
+ \begingroup%
+ \def\@tempa{#2}%
+ \def\@equationname{equation}%
+ \def\mlabeledtr{mtr}
+ \ifx\@equationname\@tempa%
+ \def\mlabeledtr{mlabeledtr} % this element can be used to print the equation number, but it is supported only by MathJax
+ \fi
+ \ifvmode\IgnorePar\fi\EndP\Configure{@math}{display="block"}\DviMath\DisplayMathtrue\HCode{<\a:mathml semantics><\a:mathml mrow><\a:mathml mtable><\a:mathml \mlabeledtr><\a:mathml mtd>}%
+ \ifx\@equationname\@tempa%
+ \incr@eqnum%
+ \print@eqnum%
+ \HCode{</\a:mathml mtd><\a:mathml mtd>}%
+ \fi
+ #1%
+ \HCode{</\a:mathml mtd></\a:mathml \mlabeledtr></\a:mathml mtable></\a:mathml mrow><\a:mathml annotation encoding="application/x-tex">}%
+ \HCode{\mmleqtoks}%
+ \HCode{</\a:mathml annotation></\a:mathml semantics>}%
+ \EndDviMath%
+ \endgroup%
+}
+
+\ExplSyntaxOn
+\newcommand\MMLVerbMath[1]{%
+ \cs_if_exist:cTF{#1}{
+ \expandafter\let\csname old#1\expandafter\endcsname\csname #1\endcsname
+ \expandafter\let\csname endold#1\expandafter\endcsname\csname end#1\endcsname
+ \RenewDocumentEnvironment{#1}{+!b}{%
+ \NoFonts\expandafter\MMLVerbMathToks\expandafter{##1}{#1}\EndNoFonts%
+ }{}
+ }{}%
+}
+
+\newcommand\MMLVerbEquation[1]{%
+ \cs_if_exist:cTF{#1}{
+ \expandafter\let\csname old#1\expandafter\endcsname\csname #1\endcsname
+ \expandafter\let\csname endold#1\expandafter\endcsname\csname end#1\endcsname
+ \RenewDocumentEnvironment{#1}{+!b}{%
+ \NoFonts\expandafter\MMLVerbMathToksEquation\expandafter{##1}{#1}\EndNoFonts%
+ }{}
+ }{}%
+}
+\ExplSyntaxOff
+
+% \MMLVerbEquation{equation}
+% \MMLVerbEquation{equation*}
+
+\fi
+>>>
+
+\<configure html-mml amsmath\><<<
+\:CheckOption{texsource}\if:Option
+\MMLVerbMath{subarray}
+\MMLVerbMath{smallmatrix}
+\MMLVerbMath{matrix}
+\MMLVerbMath{pmatrix}
+\MMLVerbMath{bmatrix}
+\MMLVerbMath{Bmatrix}
+\MMLVerbMath{vmatrix}
+\MMLVerbMath{Vmatrix}
+\MMLVerbMath{cases}
+\MMLVerbMath{subequations}
+\MMLVerbMath{aligned}
+\MMLVerbMath{alignedat}
+\MMLVerbMath{gathered}
+\MMLVerbMath{gather}
+\MMLVerbMath{gather*}
+\MMLVerbMath{alignat}
+\MMLVerbMath{alignat*}
+\MMLVerbMath{xalignat}
+\MMLVerbMath{xalignat*}
+\MMLVerbMath{xxalignat}
+\MMLVerbMath{align}
+\MMLVerbMath{align*}
+\MMLVerbMath{flalign}
+\MMLVerbMath{flalign*}
+\MMLVerbMath{split}
+\MMLVerbMath{multline}
+\MMLVerbMath{multline*}
+% equations fails with errors, even though it worked in a .cfg
+% I will need to investigate it more
+% \MMLVerbEquation{equation}
+% \MMLVerbEquation{equation*}
+\MMLVerbMath{math}
+\MMLVerbMath{displaymath}
+\MMLVerbMath{eqnarray}
+\MMLVerbMath{eqnarray*}
+\fi
+>>>
+
%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{plain.sty}
%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -1971,7 +2154,7 @@ subformulas. Hence, the `'.' below is needed.
\def\:temp#1{\a:right{#1}\o:right:.\b:right{#1}}\HLet\right|=\:temp
\Configure{left}
{}
- {\HCode{<\a:mathml mrow><\a:mathml mo \a:mathml fence="true" \a:mathml form="prefix">
+ {\HCode{<\a:mathml mrow><\a:mathml mo \a:mathml fence="true" \a:mathml form="prefix">%
|<lr del 1|></\a:mathml mo>}\bgroup
\HCode{<\a:mathml mrow>}\bgroup}
\Configure{right}
@@ -3584,14 +3767,19 @@ charactes.
Extra brackets are used in order to support subscripts and superscripts.
\<configure mathml latex\><<<
-\def\:temp#1#2{\def#1{\PauseMathClass{\HCode{<mi mathvariant="normal">}\ht:special{t4ht@+\string&{35}x#2{59}}\a:HChar\HCode{</mi>}}\EndPauseMathClass}}
-\:temp\Psi{03A8}
+\def\:temp#1#2{\def\:tempa{\PauseMathClass{\HCode{<mi mathvariant="normal">}\ht:special{t4ht@+\string&{35}x#2{59}}\a:HChar\HCode{</mi>}}\EndPauseMathClass}\HLet#1\:tempa}
+\:temp\Gamma{0393}
\:temp\Delta{0394}
+\:temp\Theta{0398}
+\:temp\Lambda{039B}
\:temp\Xi{039E}
\:temp\Pi{03A0}
\:temp\Sigma{03A3}
\:temp\Upsilon{03A5}
+\:temp\Phi{03A6}
+\:temp\Psi{03A8}
\:temp\Omega{03A9}
+
>>>
@@ -5468,6 +5656,26 @@ latex.ltx, fontmath.ltx, plain.tex
\fi}
>>>
+%%%%%%%%%%%%%%
+\subsection{stmaryrd}
+%%%%%%%%%%%%%%
+
+
+\<configure mathml stmaryrd\><<<
+
+\def\:tempa{\HCode{<\a:mathml mo fence="false">\string&\#x27E6;</\a:mathml mo>}}
+\HLet\llbracket\:tempa
+\def\:tempa{\HCode{<\a:mathml mo fence="false">\string&\#x27E7;</\a:mathml mo>}}
+\HLet\rrbracket\:tempa
+>>>
+
+Fix for some commands used with \verb|\left| or \verb|\right|.
+
+\<configure mathml stmaryrd\><<<
+\Configure{mfenced}{\llbracket}{\string&\#x27E6;}
+\Configure{mfenced}{\rrbracket}{\string&\#x27E7;}
+>>>
+
%%%%%%%%%%%%%
\subsection{subeqnarray}
@@ -5703,6 +5911,23 @@ elements that are printed to support the munderover element easily.
>>>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{esvec}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+We need to redefine these commands only for MathML. By default, Esvect produces images, which is OK.
+
+\<configure mathml esvect\><<<
+\def\:tempa#1{%
+\bgroup\HCode{<\a:mathml mover><\a:mathml mrow>}#1\HCode{</\a:mathml mrow><\a:mathml mo \a:mathml stretchy="true">}
+\PauseMathClass\fldr\EndPauseMathClass%
+\HCode{</\a:mathml mo></\a:mathml mover>}\egroup
+}
+
+\HRestore\ESV@vecteur
+\HLet\ESV@vecteur\:tempa
+>>>
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Notes}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/support/TeX4ht/source/tex4ht-sty.tex b/support/TeX4ht/source/tex4ht-sty.tex
index e713134f7e..34fa75425a 100644
--- a/support/TeX4ht/source/tex4ht-sty.tex
+++ b/support/TeX4ht/source/tex4ht-sty.tex
@@ -1,4 +1,4 @@
-% $Id: tex4ht-sty.tex 1514 2024-05-06 14:50:21Z michal_h21 $
+% $Id: tex4ht-sty.tex 1556 2024-09-23 10:50:11Z michal_h21 $
% tex tex4ht-sty or ht tex tex4ht-sty
%
% Copyright 2009-2022 TeX Users Group
@@ -2162,11 +2162,11 @@ Should be consistent with the corresponding features in ProTeX.
\SubSection{Ref}
-The implementations of \''\Ref' and \''\Tag' view the crosswords $\alpha$ as
+The implementations of \''\XRef' and \''\Tag' view the crosswords $\alpha$ as
pointers to macros that carry the names `\''\cw:'$\alpha$'.
\<common cross references\><<<
-\def\Ref#1{\expandafter\ifx
+\def\XRef#1{\expandafter\ifx
\csname |<tag of Tag|>#1\endcsname \relax \:NoTag{#1}%
\else \csname |<tag of Tag|>#1\endcsname \fi}
>>>
@@ -2186,7 +2186,7 @@ pointers to macros that carry the names `\''\cw:'$\alpha$'.
\SubSection{LikeRef}
The \`'\:LikeRef' command is a stripped down version of
-\`'\Ref'; it doesn't check whether the tag is defined.
+\`'\XRef'; it doesn't check whether the tag is defined.
The space in \`'\space' is needed for carrying MAME tags
in (mosaic) html files.
@@ -2272,7 +2272,7 @@ probably in latex.4ht.
\openin15=\jobname.xref
\ifeof15 \def\:NoTag#1{\hbox{$???$}}
\else \def\:NoTag#1{\hbox{$???$}
- \:warning{\string\Ref\string{\string#1\string}?}}
+ \:warning{\string\XRef\string{\string#1\string}?}}
|<warnings for missing /Link|>
\fi
\closein15
@@ -2312,11 +2312,11 @@ optional. A missing \`'.ext' stands for \`'.xref'. When \`'-[prefix]+'
is empty the component \`'{...}' should also be omitted (and the
comamnd assume the form \`'\LoadRef{filename.ext}').
-A \`'+' asks that \`'\Ref' and \`'LikeRef' commands will refer to
+A \`'+' asks that \`'\XRef' and \`'LikeRef' commands will refer to
expanded tags of the form \`'filename::tag' instead of just \`'tag'.
A \`'[prefix]' asks that only tags which start with the given prefix
will be loaded. When \`'[prefix]' is omitted, an empty prefix is
-assumed and all the tags are loaded. A \`'-' asks that \`'\Ref' and
+assumed and all the tags are loaded. A \`'-' asks that \`'\XRef' and
\`'LikeRef' commands will refer to truncated tags in which the
specified prefixes are omitted.
@@ -2920,7 +2920,7 @@ restricted environments (\`'\edef', \`'\write').
>>>
-\`'\def\RefFile#1{\Ref{#1|<File tag|>}}
+\`'\def\RefFile#1{\XRef{#1|<File tag|>}}
\def\LikeRefFile#1{\LikeRef{#1|<File tag|>}}'
\<html file commands\><<<
diff --git a/support/TeX4ht/source/tex4ht-t4ht.tex b/support/TeX4ht/source/tex4ht-t4ht.tex
index 9b534c9490..44833a5512 100644
--- a/support/TeX4ht/source/tex4ht-t4ht.tex
+++ b/support/TeX4ht/source/tex4ht-t4ht.tex
@@ -1,4 +1,4 @@
-% $Id: tex4ht-t4ht.tex 418 2018-07-03 17:37:07Z karl $
+% $Id: tex4ht-t4ht.tex 1556 2024-09-23 10:50:11Z michal_h21 $
% tex tex4ht-t4ht or ht tex tex4ht-t4ht
%
% Copyright 2009-2018 TeX Users Group
@@ -2351,7 +2351,7 @@ From log files \`'l. # --- needs --- "command" ---'
The htfcss records are stored in the following linked list, and used
when the font entries `Font("key","...","...","...")' are loaded
-(Section~'\Link{usehtfcc}{}\Ref{usehtfcc}\EndLink').
+(Section~'\Link{usehtfcc}{}\XRef{usehtfcc}\EndLink').
\<vars\><<<
static struct htf_struct *htf_rec = (struct htf_struct *) 0;
diff --git a/support/TeX4ht/source/wripro.tex b/support/TeX4ht/source/wripro.tex
index 30d0c025f2..d583c8ced0 100644
--- a/support/TeX4ht/source/wripro.tex
+++ b/support/TeX4ht/source/wripro.tex
@@ -1,8 +1,8 @@
-% $Id: wripro.tex 414 2018-06-12 23:04:41Z karl $
+% $Id: wripro.tex 1558 2024-09-24 17:22:45Z karl $
% Used in tex4ht.sty. Not installed in runtime.
%
-% Copyright (C)) 2009-2010 TeX Users Group
-% Copyright (C) 1996-2009, 2018 Eitan M. Gurari
+% Copyright 2009-2024 TeX Users Group
+% Copyright 1996-2009 Eitan M. Gurari
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
@@ -19,6 +19,7 @@
%
% If you modify this program, changing the
% version identification would be appreciated.
+\immediate\write-1{version 2024-09-23-15:43}
%\openin15= wripro.tex
%\ifeof15 \closein15 \else \closein15 \input wripro.tex \fi
@@ -181,9 +182,9 @@ For instance, in {\tt
A \`'\Link-{..}{b}' asks that a \''\Tag' will not be produced for `b'.
-A \`'\Link[\empty]{b}{..}' asks that a \''\Ref' will not be produced for
+A \`'\Link[\empty]{b}{..}' asks that a \''\XRef' will not be produced for
`a'. The same is true for any other non-empty replacement to \''\empty'
-A `b' for which we neither have a \''\Tag' and a \''\Ref' provides
+A `b' for which we neither have a \''\Tag' and a \''\XRef' provides
a memory save in `strings out of', `string characters out of', and
`multiletter control sequences' (see log files).