diff options
Diffstat (limited to 'support/TeX4ht/source')
-rw-r--r-- | support/TeX4ht/source/ChangeLog | 230 | ||||
-rw-r--r-- | support/TeX4ht/source/Makefile | 6 | ||||
-rw-r--r-- | support/TeX4ht/source/mktex4ht-cnf.tex | 14 | ||||
-rw-r--r-- | support/TeX4ht/source/tex4ht-4ht.tex | 762 | ||||
-rw-r--r-- | support/TeX4ht/source/tex4ht-fonts-noncjk.tex | 205 | ||||
-rw-r--r-- | support/TeX4ht/source/tex4ht-html4.tex | 127 | ||||
-rw-r--r-- | support/TeX4ht/source/tex4ht-info.tex | 14 | ||||
-rw-r--r-- | support/TeX4ht/source/tex4ht-jats.tex | 26 | ||||
-rw-r--r-- | support/TeX4ht/source/tex4ht-mathjax.tex | 38 | ||||
-rw-r--r-- | support/TeX4ht/source/tex4ht-mathml.tex | 237 | ||||
-rw-r--r-- | support/TeX4ht/source/tex4ht-sty.tex | 16 | ||||
-rw-r--r-- | support/TeX4ht/source/tex4ht-t4ht.tex | 4 | ||||
-rw-r--r-- | support/TeX4ht/source/wripro.tex | 11 |
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 -'`' '' grave 0 % generated from vect10.tfm, 2024-07-31-11:51 -'´' '' acute 1 % Copyright 2024 TeX Users Group -'ˆ' '' circumflex 2 % -'˜' '' tilde 3 % This work may be distributed and/or modified under the -'¨' '' dieresis 4 % conditions of the LaTeX Project Public License, either -'˝' '' hungarumlaut 5 % version 1.3c of this license or (at your option) any -'˚' '' ring 6 % later version. The latest version of this license is in -'ˇ' '' caron 7 % http://www.latex-project.org/lppl.txt -'˘' '' 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>. -'' '' % -'“' '' quotedblleft 16 % If you modify this program, changing the -'”' '' quotedblright 17 % version identification would be appreciated. -'„' '' quotedblbase 18 -'«' '' guillemotleft 19 -'»' '' guillemotright 20 -'–' '' endash 21 -'—' '' emdash 22 -'‌' '' cwm 23 -'‰' '' perthousand 24 -'' '' -'' '' -'' '' -'' '' -'' '' -'' '' -'' '' -' ' '' space 32 -'!' '' exclam 33 -'"' '' quotedbl 34 -'#' '' numbersign 35 -'$' '' dollar 36 -'%' '' percent 37 -'&' '' ampersand 38 -'’' '' quoteright 39 -'(' '' parenleft 40 -')' '' parenright 41 -'*' '' asterisk 42 -'+' '' plus 43 -',' '' comma 44 -'-' '' hyphen 45 -'.' '' period 46 -'/' '' slash 47 +'→' '' 0000 0 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +'→' '' 0001 1 %% vect.htf (unicode) % +'→' '' 0002 2 %% generated from vect10.tfm, 2024-07-31-11:51 % +'→' '' 0003 3 %% Copyright 2024 TeX Users Group, Arkady Benediktov % +'→' '' 0004 4 %% % +'→' '' 0005 5 %% This work may be distributed and/or modified under the % +'→' '' 0006 6 %% conditions of the LaTeX Project Public License, either % +'→' '' 0007 7 %% version 1.3c of this license or (at your option) any % +'→' '' 0008 8 %% later version. The latest version of this license is in % +'	' '' 0009 9 %% http://www.latex-project.org/lppl.txt % +'
' '' 000A 10 %% and version 1.3c or later is part of all distributions % +'' '' 000B 11 %% of LaTeX version 2005/12/01 or later. % +'' '' 000C 12 %% % +'
' '' 000D 13 %% This work has the LPPL maintenance status "maintained". % +'' '' 000E 14 %% % +'' '' 000F 15 %% The Current Maintainer of this work % +'→' '' 0010 16 %% is the TeX4ht Project <http://tug.org/tex4ht>. % +'→' '' 0011 17 %% % +'→' '' 0012 18 %% If you modify this program, changing the % +'→' '' 0013 19 % % version identification would be appreciated. % +'→' '' 0014 20 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +'→' '' 0015 21 +'→' '' 0016 22 +'→' '' 0017 23 +'→' '' 0018 24 +'' '' 0019 25 +'' '' 001A 26 +'' '' 001B 27 +'' '' 001C 28 +'' '' 001D 29 +'' '' 001E 30 +'' '' 001F 31 +'⎯' '' 0020 32 +'⎯' '' 0021 33 +'⎯' '' 0022 34 +'⎯' '' 0023 35 +'⎯' '' 0024 36 +'⎯' '' 0025 37 +'⎯' '' 0026 38 +'⎯' '' 0027 39 +'⎯' '' 0028 40 +'⎯' '' 0029 41 +'⎯' '' 002A 42 +'⎯' '' 002B 43 +'⎯' '' 002C 44 +'⎯' '' 002D 45 +'⎯' '' 002E 46 +'⎯' '' 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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +'⦅' '' 8 %% bbm.htf (unicode) % +'⦆' '' 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 % +'𝟙' '' 17 %% and version 1.3c or later is part of all distributions % +'𝟚' '' 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 +'𝔸' '' 33 +'𝔹' '' 34 +'ℂ' '' 35 +'𝔻' '' 36 +'𝔼' '' 37 +'𝔽' '' 38 +'𝔾' '' 39 +'ℍ' '' 40 +'𝕀' '' 41 +'𝕁' '' 42 +'𝕂' '' 43 +'𝕃' '' 44 +'𝕄' '' 45 +'ℕ' '' 46 +'𝕆' '' 47 +'ℙ' '' 48 +'ℚ' '' 49 +'ℝ' '' 50 +'𝕊' '' 51 +'𝕋' '' 52 +'𝕌' '' 53 +'𝕍' '' 54 +'𝕎' '' 55 +'𝕏' '' 56 +'𝕐' '' 57 +'ℤ' '' 58 +'⟦' '' 59 +'' '1' 60 +'⟧' '' 61 +'' '1' 62 +'' '1' 63 +'' '1' 64 +'𝕒' '' 65 +'𝕓' '' 66 +'𝕔' '' 67 +'𝕕' '' 68 +'𝕖' '' 69 +'𝕗' '' 70 +'𝕘' '' 71 +'𝕙' '' 72 +'𝕚' '' 73 +'𝕛' '' 74 +'𝕜' '' 75 +'𝕝' '' 76 +'𝕞' '' 77 +'𝕟' '' 78 +'𝕠' '' 79 +'𝕡' '' 80 +'𝕢' '' 81 +'𝕣' '' 82 +'𝕤' '' 83 +'𝕥' '' 84 +'𝕦' '' 85 +'𝕧' '' 86 +'𝕨' '' 87 +'𝕩' '' 88 +'𝕪' '' 89 +'𝕫' '' 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 </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} } { & } \l_tmpa_tl \regex_replace_all:nnN { \x{3C} } { < } \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} } { & } \l_tmpa_tl + \regex_replace_all:nnN { \x{3C} } { < } \l_tmpa_tl + \regex_replace_all:nnN { \x{3E} } { > } \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). |