diff options
Diffstat (limited to 'support/TeX4ht/source')
-rw-r--r-- | support/TeX4ht/source/ChangeLog | 425 | ||||
-rw-r--r-- | support/TeX4ht/source/Makefile | 8 | ||||
-rw-r--r-- | support/TeX4ht/source/mktex4ht-cnf.tex | 19 | ||||
-rw-r--r-- | support/TeX4ht/source/tex4ht-4ht.tex | 1215 | ||||
-rw-r--r-- | support/TeX4ht/source/tex4ht-fonts-kpfonts.tex | 6 | ||||
-rw-r--r-- | support/TeX4ht/source/tex4ht-fonts-modern.tex | 10 | ||||
-rw-r--r-- | support/TeX4ht/source/tex4ht-fonts-noncjk.tex | 217 | ||||
-rw-r--r-- | support/TeX4ht/source/tex4ht-html4.tex | 150 | ||||
-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 | 92 | ||||
-rw-r--r-- | support/TeX4ht/source/tex4ht-mathml.tex | 302 | ||||
-rw-r--r-- | support/TeX4ht/source/tex4ht-options.tex | 6 | ||||
-rw-r--r-- | support/TeX4ht/source/tex4ht-sty.tex | 20 | ||||
-rw-r--r-- | support/TeX4ht/source/tex4ht-t4ht.tex | 4 | ||||
-rw-r--r-- | support/TeX4ht/source/tex4ht-unicode.tex | 28 | ||||
-rw-r--r-- | support/TeX4ht/source/wripro.tex | 11 |
17 files changed, 2295 insertions, 258 deletions
diff --git a/support/TeX4ht/source/ChangeLog b/support/TeX4ht/source/ChangeLog index 890eef5005..9465b64a31 100644 --- a/support/TeX4ht/source/ChangeLog +++ b/support/TeX4ht/source/ChangeLog @@ -1,3 +1,428 @@ +2025-02-13 Michal Hoftich <michal.h21@gmail.com> + + * tex4ht-html4.tex (html4.4ht): align captions to the center. + Improved CSS for subfigures. + https://tex.stackexchange.com/q/737060/2891 + +2025-02-12 Michal Hoftich <michal.h21@gmail.com> + + * tex4ht-mathml.tex (mathml.4ht): fixed Mathtools arrows in MathML. + https://tex.stackexchange.com/q/736623/2891 + +2025-02-09 Karl Berry <karl@freefriends.org> + + * tex4h5-options.tex (tex4ht.4ht): copyright 2025. + +2025-02-06 Michal Hoftich <michal.h21@gmail.com> + + * tex4ht-4ht.tex (scrbook.4ht, scrartcl.4ht, scrreprt.4ht): remove + spurious paragraphs before sections. + https://puszcza.gnu.org.ua/bugs/index.php?647 + +2025-02-05 Michal Hoftich <michal.h21@gmail.com> + + * tex4ht-4ht.tex (latex.4ht): remove spurious paragraphs before + sections. + https://puszcza.gnu.org.ua/bugs/index.php?647 + +2025-02-03 Michal Hoftich <michal.h21@gmail.com> + + * tex4ht-sty.tex (tex4ht.sty): removed spurious space from + definition of \SUBOn and \SUPOn commands. + https://puszcza.gnu.org.ua/bugs/?505 + +2025-01-24 Michal Hoftich <michal.h21@gmail.com> + + * tex4ht-mathjax.tex (mathjax-latex-4ht.4ht): use equation counter + for equation-like environments. + https://tex.stackexchange.com/q/735719/2891 + +2025-01-23 Michal Hoftich <michal.h21@gmail.com> + + * tex4ht-4ht.tex (listigns.4ht): fixed support for the list of + listings. + https://tex.stackexchange.com/a/734717/2891 + +2025-01-21 Michal Hoftich <michal.h21@gmail.com> + + * tex4ht-fonts-modern.tex + * tex4ht-fonts-noncjk.tex, + * tex4ht-fonts-kpfonts.tex: changed more Unicode characters, for + \leadstoext and arrow heads. + Thanks to Arkady Benediktov. + +2025-01-20 Michal Hoftich <michal.h21@gmail.com> + + * tex4ht-fonts-modern.tex + * tex4ht-fonts-noncjk.tex, + * tex4ht-fonts-kpfonts.tex: changed glyphs for \leadsto and long + tilde. + Thanks to Arkady Benediktov. + + * tex4ht-4ht.tex (standalone.4ht): disable environment patching by + the Standalone class. + https://github.com/michal-h21/tex4ebook/issues/137 + +2025-01-18 Michal Hoftich <michal.h21@gmail.com> + + * tex4ht-4ht.tex (chemfig.4ht): fixed support for Chemfig diagrams. + https://github.com/michal-h21/tex4ebook/issues/137 + +2025-01-10 Michal Hoftich <michal.h21@gmail.com> + + * tex4ht-4ht.tex (latex.4ht): use \protected@edef in definition of + \@caption. + +2025-01-09 Michal Hoftich <michal.h21@gmail.com> + + * tex4ht-mathml.tex (html-mml.4ht): don't hide last rows in arrays. + https://tex.stackexchange.com/a/734616/2891 + + * tex4ht-4ht.tex (svg.4ht): fixed error message printed if the SVG + file cannot be found. + +2025-01-08 Michal Hoftich <michal.h21@gmail.com> + + * tex4ht-mathml.tex (mathml.4ht), + * tex4ht-4ht.tex (amsmath.4ht): fixed handling of optional arguments + and empty first columns in aligned, alignedat and gathered + environments. Thanks to Linas Stonys. + +2025-01-05 Michal Hoftich <michal.h21@gmail.com> + + * tex4ht-mathml.tex (mathml.4ht): don't configure tilde accents in + the MathML output, it removes support for Unicode characters with + tilde. + https://github.com/michal-h21/make4ht/issues/163 + +2024-12-11 Michal Hoftich <michal.h21@gmail.com> + + * tex4ht-unicode.tex (unicode.4ht): fixed suppport for umlauts and + other accents in the T5 font encoding. + https://www.reddit.com/r/LaTeX/comments/1h8pr8d/umlauts_working_when_generating_a_pdf_but_not_for/ + +2024-12-08 Michal Hoftich <michal.h21@gmail.com> + + * tex4ht-4ht.tex ( + latex.4ht, imakeidx.4ht, splitidx.4ht, multind.4ht + ): added the indexhaddr configuration and sec-index option. + https://tex.stackexchange.com/a/732446/2891 + +2024-12-08 Karl Berry <karl@freefriends.org> + + * tex4ht-4ht.tex (IEEEtran.4ht): |<TeX4ht copywrite|> to + \write version. + +2024-12-06 Michal Hoftich <michal.h21@gmail.com> + + * tex4ht-4ht.tex ( + resizegather.4ht, usepackage.4ht, resizegather-hooks.4ht + ): disable the Resizegather package to prevent MathML errors. + https://github.com/michal-h21/make4ht/issues/158 + + * tex4ht-4ht.tex (glossaries.4ht): add a class atribute to links to + glossary. + https://tex.stackexchange.com/a/732132/2891 + +2024-12-04 Michal Hoftich <michal.h21@gmail.com> + + * tex4ht-4ht.tex (manyfoot.4ht): fixed spurious space in footnotes + cuased by missing comment at the end of a line. + https://tex.stackexchange.com/a/731038/2891 + + * tex4ht-mathml.tex (html-mml.4ht): force new paragraph after + equation. + https://github.com/michal-h21/make4ht/issues/159 + + * tex4ht-4ht.tex (glossaries.4ht), + * tex4ht-html4.tex (html4.4ht): added formatting for glossary + entries. + https://tex.stackexchange.com/a/732132/2891 + +2024-12-03 Michal Hoftich <michal.h21@gmail.com> + + * tex4ht-4ht.tex (latex.4ht): fixed picture support for characters + defined using \DeclareTextSymbol. + + * tex4ht-4ht.tex (latex.4ht): fixed support for composed characters + defined using \textcommabelow. + https://github.com/michal-h21/make4ht/issues/157 + +2024-12-01 Michal Hoftich <michal.h21@gmail.com> + + * tex4ht-html4.tex (html4.4ht): don't add extra paragraphs with the + "itemize+" option. + https://tex.stackexchange.com/a/722062/2891 + +2024-11-28 Michal Hoftich <michal.h21@gmail.com> + + * tex4ht-4ht.tex (metalogo.4ht): fixed rendering of \XeTeX and + \XeLaTeX with the Metalogo package. + +2024-11-27 Michal Hoftich <michal.h21@gmail.com> + + * tex4ht-4ht.tex (fvextra.4ht): disable redefinition of Fancyvrb's + \FV@ListProcessLine, to prevent scratching of contents of the + listings. + +2024-11-22 Michal Hoftich <michal.h21@gmail.com> + + * tex4ht-4ht.tex (lineno.4ht): test for star and optional argument + in \linenumbers. + + * tex4ht-4ht.tex (IEEEtran.4ht): fixed support for cross-references + to subsections. + https://tex.stackexchange.com/a/731404/2891 + +2024-11-21 Karl Berry <karl@freefriends.org> + + * Makefile (tex4ht.jar): missing \ continuation. From Florian + Schmaus for gentoo. + +2024-11-20 Michal Hoftich <michal.h21@gmail.com> + + * tex4ht-4ht.tex (qtree.4ht): added support for the Qtree package. + + * tex4ht-mathjax.tex (mathjax-latex-4ht.4ht): added the + "fastmathjax" option. + https://tug.org/pipermail/tex4ht/2024q4/003625.html + +2024-11-17 Michal Hoftich <michal.h21@gmail.com> + + * tex4ht-4ht.tex (manyfoot-hooks.4ht): fixed normal footnote numbers + after use of custom footnotes. + https://tex.stackexchange.com/a/731038/2891 + +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..6c548acc78 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 1600 2024-11-21 22:07:12Z 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) @@ -743,7 +741,7 @@ clean1: ifeq ($(java_in_make),true) .PHONY: jar jar: $(homedir)/$(texmf_t4ht_bin)/tex4ht.jar -$(homedir)/$(texmf_t4ht_bin)/tex4ht.jar: +$(homedir)/$(texmf_t4ht_bin)/tex4ht.jar: \ $(tex4ht_docbook_xtpipes_derived) \ $(tex4ht_fonts_noncjk_derived) \ $(tex4ht_html_speech_xtpipes_derived) \ diff --git a/support/TeX4ht/source/mktex4ht-cnf.tex b/support/TeX4ht/source/mktex4ht-cnf.tex index 7bc692fff6..f622d25629 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 1613 2024-12-06 11:45:21Z michal_h21 $ % Manually-maintained file, listing *.4ht files created by tex4ht-4ht.tex. % Read by tex4ht-cond4ht. % @@ -43,10 +43,12 @@ \AddFile{9}{hypcap} \AddFile{9}{draftwatermark} \AddFile{9}{draftwatermark-hooks} +\AddFile{9}{metalogo} \AddFile{8}{fleqn} \AddFile{7}{supertabular} \AddFile{7}{array} \AddFile{9}{dcolumn} +\AddFile{9}{makecell} \AddFile{7}{longtable} \AddFile{7}{pctable} \AddFile{8}{tabulary} @@ -57,6 +59,7 @@ \AddFile{7}{arydshln} \AddFile{9}{threeparttable} \AddFile{9}{tabularray} +\AddFile{9}{nicematrix} \AddFile{9}{mdwtab} \AddFile{9}{tabto} \AddFile{9}{multirow} @@ -145,6 +148,8 @@ \AddFile{9}{braket} \AddFile{9}{mathtools} \AddFile{9}{mathtools-hooks} +\AddFile{9}{resizegather} +\AddFile{9}{resizegather-hooks} \AddFile{9}{llncs} \AddFile{9}{llncs-a} \AddFile{9}{lncse} @@ -187,6 +192,7 @@ \AddFile{7}{moreverb} \AddFile{7}{fancyvrb} \AddFile{9}{minted} +\AddFile{9}{fvextra} \AddFile{9}{piton} \AddFile{9}{pythontex} \AddFile{9}{prosper} @@ -205,6 +211,7 @@ \AddFile{9}{xy} \AddFile{9}{xyling} \AddFile{9}{xyling-hooks} +\AddFile{9}{qtree} \AddFile{9}{pictex} \AddFile{9}{diagrams} \AddFile{9}{pstricks} @@ -227,6 +234,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 +246,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 +335,7 @@ \AddFile{9}{hyperxmp} \AddFile{9}{breqn} \AddFile{9}{nicefrac} +\AddFile{9}{stmaryrd} \AddFile{9}{multicol} \AddFile{2}{lettrine} \AddFile{9}{osudeG} @@ -334,11 +345,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 +431,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..c1883fb88d 100644 --- a/support/TeX4ht/source/tex4ht-4ht.tex +++ b/support/TeX4ht/source/tex4ht-4ht.tex @@ -1,7 +1,7 @@ -% $Id: tex4ht-4ht.tex 1539 2024-07-26 15:53:24Z michal_h21 $ +% $Id: tex4ht-4ht.tex 1637 2025-02-06 14:30:54Z michal_h21 $ % tex tex4ht-4ht or ht tex tex4ht-4ht % -% Copyright 2009-2024 TeX Users Group +% Copyright 2009-2025 TeX Users Group % Copyright 1996-2009 Eitan M. Gurari % Released under LPPL 1.3c+. % See tex4ht-cpright.tex for license text. @@ -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 >>> @@ -6701,6 +6710,37 @@ slow compilation. } >>> +%%%%%%%%%%%%%%%%%%%%%%%% +\Section{metalogo} +%%%%%%%%%%%%%%%%%%%%%%%% + +\<metalogo.4ht\><<< +% metalogo.4ht (|version), generated from |jobname.tex +% Copyright 2024 TeX Users Group +|<TeX4ht license text|> + +|<metalogo xetex|> + +\Hinput{metalogo} +\endinput +>>> \AddFile{9}{metalogo} + +The metalogo package provides alternative formatting for various variants +of the \''\TeX' command. They mostly work out of the box, but in the +case of XeTeX and XeLaTeX, they produce rubbish. So we will redefine them. + +\<metalogo xetex\><<< +\NewConfigure{XeLaTeX}{1} +\Configure{XeLaTeX}{Xe\LaTeX} +\def\:tempa{\a:XeLaTeX} +\HLet\XeLaTeX\:tempa + +\NewConfigure{XeTeX}{1} +\Configure{XeTeX}{Xe\TeX} +\def\:tempa{\a:XeTeX} +\HLet\XeTeX\:tempa +>>> + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \Chapter{Miscellaneous Environments} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -6833,7 +6873,7 @@ used for Fontspec support. % load tuenc definitions for commands like \quotedblbase \ifdefined\old:DeclareTextSymbol\else \input binhex - \def\DeclareTextSymbol#1#2#3{\gdef#1{\ht:special{t4ht@+&{35}x\hex{#3}{59}}\a:HChar}} + \def\DeclareTextSymbol#1#2#3{\gdef\:tempa{\ht:special{t4ht@+&{35}x\hex{#3}{59}}\a:HChar}\HLet#1\:tempa} \input tuenc.def % this command is defined by tuenc, but doesn't work out of the box with TeX4ht \let\DeclareTextSymbol\old:DeclareTextSymbol @@ -6849,6 +6889,33 @@ used for Fontspec support. >>> +This is a configuration for characters that use the \''\textcommabelow' command. +Only few of these are defined by LaTeX. The original code uses \''\oalign' to stack +comma under the character, which results in images with TeX4ht. + +This code will use the original code for characters without declared mapping to Unicode, +and also inside of pictures. + +\<latex ltoutenc\><<< +\def\:tempa#1{% +\ifcsname textcommabelow-#1\endcsname% +\protect\leavevmode\ht:special{t4ht@+\string&{35}x\csname textcommabelow-#1\endcsname{59}}x% +\else% +\o:textcommabelow:{#1}% +\fi% +} +\HLet\textcommabelow\:tempa + +\NewConfigure{textcommabelow}[2]{% + \expandafter\def\csname textcommabelow-#1\endcsname{#2}% +} +\Configure{textcommabelow}{S}{0218} +\Configure{textcommabelow}{s}{0219} +\Configure{textcommabelow}{T}{021A} +\Configure{textcommabelow}{t}{021B} +>>> + + \<tuenc-xetex.4ht\><<< % tuenc-xetex.4ht, generated from |jobname.tex % Copyright 2018 TeX Users Group @@ -10514,6 +10581,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 +10841,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 +10907,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 +10918,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 +11367,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 +11632,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,16 +12150,35 @@ 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}}% +% spurious paragraph is inserted at the start of headings, we need to ignore it, using \IgnorePar +\def\@startsection#1{\ifvmode\HCode{}\IgnorePar\fi\@ifstar{\Configure{secType}{like#1}}% {\Configure{secType}{#1}}% \:Sc1\:startsection{#1}} \NewConfigure{secType}[1]{\def\sec:typ{#1}} @@ -12061,13 +12221,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 +12240,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\><<< @@ -12314,8 +12480,8 @@ the \''\label' commands to avoid duplicating the anchor already set by the \begingroup \gHAdvance\TitleCount by 1 \protect:wrtoc - \edef\:temp{#2}% - \edef\:temp{\the\:tokwrite{\string\doTocEntry + \protected@edef\:temp{#2}% + \protected@edef\:temp{\the\:tokwrite{\string\doTocEntry \string\toc|<caption type|>{\csname the#1\endcsname}{\string\csname\space a:TocLink\string\endcsname {\FileNumber}{\cur:th @@ -12926,11 +13092,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|>% @@ -13193,6 +13373,51 @@ or braces in the following for htlatex. \end{document} \EndVerbatim + +This is the ID created by the \''\index' commands in the document. +They can be used to point to that place from the index. + +\<latex ltidxglo\><<< +\NewConfigure{indexhaddr}{1} +\Configure{indexhaddr}{d|<haddr prefix|>\last:haddr} +>>> + +This placeholder is used by various packages that define \''\index' and +its variants. + +\<index haddr\><<< +\a:indexhaddr +>>> + +The sec-index option can be used to use current sections as numbers and destinations +for the index, instead of the actual positions of \''\index' commands. + +\<latex ltidxglo\><<< +\:CheckOption{sec-index}\if:Option + +% from https://tex.stackexchange.com/a/141369/2891 +% for some reason it fails if the command includes :, so I use FourHT prefix to avoid collisions +\newcommand{\FourHTgetCurrentSectionNumber}{% + \ifnum\c@section=0 % + \thechapter + \else + \ifnum\c@subsection=0 % + \thesection + \else + \ifnum\c@subsubsection=0 % + \thesubsection + \else + \thesubsubsection + \fi + \fi + \fi +} +\Configure{makeindex}{\FourHTgetCurrentSectionNumber}% +\Configure{indexhaddr}{\CurSecHaddr}% +\fi +>>> + + %%%%%%%%%%%%%%%%%%%%%%%%%% \Section{theindex} %%%%%%%%%%%%%%%%%%%%%%%%%% @@ -13343,10 +13568,9 @@ A script of the form %%%%%%%%%%%%%%%%%%%%%%%%%% \<splitidx.4ht\><<< -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% splitidx.4ht |version % -% Copyright (C) |CopyYear.2003. Eitan M. Gurari % -|<TeX4ht copyright|> +% splitidx.4ht (|version), generated from |jobname.tex +% Copyright |CopyYear.2003. Eitan M. Gurari +|<TeX4ht copywrite|> |<splitidx configs|> \Hinput{splitidx} \endinput @@ -13711,7 +13935,7 @@ The above doesn't work always. Try >>> \AddFile{6}{glossaries} \<config glossaries\><<< -\def\:tempc#1#2{\Link{#1}{}#2\EndLink} +\def\:tempc#1#2{\Link[ class="glossary"]{#1}{}#2\EndLink} \HLet\@glslink\:tempc \def\:tempc#1#2{\Link{}{#1}\EndLink#2} \HLet\@glstarget\:tempc @@ -13733,6 +13957,23 @@ The above doesn't work always. Try \HLet\@gls@removespaces\:tempc >>> +Add formatting for glossary entries: + +\<config glossaries\><<< +\NewConfigure{glossentry}{2} + +% Add formatting for glossary entries only if the environment used for printing +% is not description. It would lead to errors otherwise. +\def\:glsdescriptionname{description} +\def\:tempa#1{\ifx\@currenvir\:glsdescriptionname\o:glossentry:{#1}\else\a:glossentry\o:glossentry:{#1}\b:glossentry\fi} +\HLet\glossentry\:tempa + +\NewConfigure{glsgroupskip}{1} +\def\:tempa{\a:glsgroupskip} +\HLet\glsgroupskip\:tempa + +>>> + This should fix wrong handling of paragraphs in glossary. The problem is that extra paragraph is inserted when a new letter is started. @@ -16538,7 +16779,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 +16991,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 @@ -18624,6 +18863,13 @@ See report at screnggu.tex \def\minisec#1{\:minisec{#1}\@afterheading} >>> +This should supress spurious paragraphs before sections. + +\<scr artcl, reprt, book\><<< +\newcommand*\scr:startsection[6]{\ifvmode\HCode{}\IgnorePar\fi\o:scr@startsection:{#1}{#2}{#3}{#4}{#5}{#6}} +\HLet\scr@startsection\scr:startsection +>>> + %%%%%%%%%%%%%%%%%% \Section{srcartcl} @@ -20408,6 +20654,39 @@ By Igor A. Kotelnikov. Not available in the public domain? >>> %%%%%%%%%%%%%%%% +\Chapter{Standalone} +%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%% +\Section{standalone} +%%%%%%%%%%%%%%%%%%%%%%%% + +\<standalone.4ht\><<< +% standalone.4ht (|version), generated from |jobname.tex +% Copyright 2025 TeX Users Group +|<TeX4ht license text|> +|<standalone standaloneenv|> + +\Hinput{standalone} +\endinput +>>> \AddFile{}{standalone} + +The \Verb'\standaloneenv' command patches an environment in a way that the +environment produces a separate page. This can cause issues with environments that +are also patched by TeX4ht, for example tikzpicture. This happens with the +tikz class option for Stadnalone. The result is that TikZ pictures are not +converted to images correctly. + +I think we can just disable this command. + +\<standalone standaloneenv\><<< +% save the original meaning if we want to use it eventually +\let\:standaloneenv\standaloneenv +% but disable if by default +\let\standaloneenv\@gobble +>>> + +%%%%%%%%%%%%%%%% \Part{AMS} %%%%%%%%%%%%%%%% @@ -21678,28 +21957,61 @@ Without the \''\HRestore\noalign' we get infinite loop. Where? Why? \RecallMkHalignConfig \restorecolumn@ \egroup \b:start@aligned} \HLet\endaligned|=\:tempc +\def\reg:aligned{\reg:start@aligned} +\NewConfigure{aligned}{6} +>>> + +This is the original code for the aligned environment. It had issues with empty +first cell, resulting in compilaton error. + +\<aligned do not use\><<< \def\:temp{% \let\@testopt\alignsafe@testopt - \futurelet\:temp\aligned:a} -\def\aligned:a{\ifx [\:temp \expandafter\aligned:b - \else \def\:temp{\aligned:b[c]}\expandafter\:temp \fi} + \aligned:a} + \providecommand\aligned:a[1][c]{\aligned:b[#1]} \def\aligned:b[#1]{% \al:gned{aligned}{#1}\m@ne} \HLet\aligned|=\:temp -\def\reg:aligned{\reg:start@aligned} -\NewConfigure{aligned}{6} >>> + +This report and fix comes from Linas Stonys: + \<equations of amsmath.sty\><<< -\def\:temp{\futurelet\:temp\alignedat:a} -\def\alignedat:a{\ifx [\:temp \expandafter\alignedat:b - \else \def\:temp{\alignedat:b[c]}\expandafter\:temp \fi} -\def\alignedat:b[#1]{% +\def\Hlcr{z} +%% \Hlcr macro stores math environment optional possitionig argument +%% and can be used for custom setup. For example: +%% \Configure{gathered} +%% {\HCode{<\a:mathml mtable\space displaystyle="true" +%% \mml:class="gathered"% +%% \if t\Hlcr\space\a:mathml align="axis 1"\fi% +%% \if b\Hlcr\space\a:mathml align="axis -1"\fi% +%% >}} +%% {}... + +\def\:temp#1{% + \def\Hlcr{#1}% + \let\@testopt\alignsafe@testopt + \expandafter\al:gned\expandafter{\@currenvir}{#1}} +\HLet\start@aligned\:temp + +>>> + + +\<equations of amsmath.sty\><<< +\def\reg:alignedat{\reg:start@aligned} +\NewConfigure{alignedat}{6} +>>> + +This code is superseded by start@aligned code above. + +\<alignedat do not use\><<< +\def\:temp{\alignedat:a} +\providecommand\alignedat:a[1][c]{\alignedat:b[#1]} +\def\alignedat:b[#1]#2{% \let\@testopt\alignsafe@testopt \al:gned{alignedat}{#1}\m@ne} \HLet\alignedat|=\:temp -\def\reg:alignedat{\reg:start@aligned} -\NewConfigure{alignedat}{6} >>> % \def\:tempc{\crcr\EndMkHalign @@ -21711,6 +22023,16 @@ Without the \''\HRestore\noalign' we get infinite loop. Where? Why? \SubSection{Gathered} %%%%%%%%%%%%% +This code comes from Linas Stonys. + +\<equations of amsmath.sty\><<< +\def\gathered:a[#1]{\def\Hlcr{#1}\pic:MkHalign{gathered}[#1]} +\def\:temp{% + \kernel@ifnextchar[{\gathered:a}{\gathered:a[c]}% + } +\HLet\gathered\:temp +>>> + \<equations of amsmath.sty\><<< \catcode`\#|=13 \catcode`\!|=6 \def\reg:gathered[!1]{% @@ -22112,11 +22434,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 +22592,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 +22602,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 @@ -22578,6 +22901,44 @@ already in the preamble. This is why we use early hooks. \ExplSyntaxOff >>> +%%%%%%%%%%%%%%%%%%%%%%%% +\Section{resizegather} +%%%%%%%%%%%%%%%%%%%%%%%% + +Basically, we need to disable Resizegather, because it redefines +a lot of basic math environments and causes errors with MathML. +So this is just a dummy file. + +\<resizegather.4ht\><<< +% resizegather.4ht (|version), generated from |jobname.tex +% Copyright 2024 TeX Users Group +|<TeX4ht license text|> + + +\Hinput{resizegather} +\endinput +>>> \AddFile{9}{resizegather} + +%%%%%%%%%%%%%%%%%%%%%%%% +\Section{resizegather-hooks} +%%%%%%%%%%%%%%%%%%%%%%%% + +\<add to usepackage\><<< +\Configure{PackageHooks}{resizegather.sty}{resizegather-hooks.4ht} +>>> + +\<resizegather-hooks.4ht\><<< +% resizegather-hooks.4ht (|version), generated from |jobname.tex +% Copyright 2024 TeX Users Group +|<TeX4ht license text|> + +% this option should be enough to disable redefinition of equations +% and other math environments +\PassOptionsToPackage{equations=false}{resizegather} + +\endinput +>>> \AddFile{9}{resizegather-hooks} + %%%%%%%%%%%%%%%%%%%%%% \Chapter{Other} %%%%%%%%%%%%%%%%%%%%%% @@ -25913,15 +26274,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 +26317,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 +26551,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 +26701,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 +26740,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}% @@ -26445,6 +26825,37 @@ Minted, it turns the breaklines option to false when it is used. \:minted@def@opt@switch{breaklines} >>> +%%%%%%%%%%%%%%%%%%%%%%%% +\Section{fvextra} +%%%%%%%%%%%%%%%%%%%%%%%% + +\<fvextra.4ht\><<< +% fvextra.4ht (|version), generated from |jobname.tex +% Copyright 2024 TeX Users Group +|<TeX4ht license text|> + +|<fvextra breaklines|> + +\Hinput{fvextra} +\endinput +>>> \AddFile{9}{fvextra} + +The fvextra package is loaded by Minted. It breaks the breaklines option again. +This time, the whole listing is hidden when this option is used. It seems +that simply preventing redefinition of \''\FV@ListProcessLine' should fix +this issue. + +\<fvextra breaklines\><<< +\define@booleankey{FV}{breaklines}% + {\booltrue{FV@breaklines}% + %\let\FV@ListProcessLine\FV@ListProcessLine@NoBreak +}% + {\boolfalse{FV@breaklines}% + %\let\FV@ListProcessLine\FV@ListProcessLine@NoBreak +} +>>> + + %%%%%%%%%%%%%%%%%%%%%%%%%%%% \Section{piton} %%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -26452,10 +26863,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 +26876,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} @@ -27759,6 +28217,32 @@ Restore the Link command inside Xyling graph drawing commands \HLet\Treek\xyling:Treek >>> +%%%%%%%%%%%%%%%%%%%%%%%% +\Section{qtree} +%%%%%%%%%%%%%%%%%%%%%%%% + +\<qtree.4ht\><<< +% qtree.4ht (|version), generated from |jobname.tex +% Copyright 2024 TeX Users Group +|<TeX4ht license text|> + +|<qtree images|> + +\Hinput{qtree} +\endinput +>>> \AddFile{9}{qtree} + +We want to convert the whole contents of the \''\Tree' command to pictures. + +\<qtree images\><<< +\NewConfigure{qtree}{2} + +\pend:def\Tree{\a:qtree} +\append:def\endTree{\b:qtree} + +\Configure{qtree}{\Picture+[\csname a:Picture-alt\endcsname]{}}{\EndPicture} +>>> + %%%%%%%%%%%%%%%%%%%%%%%%%%%% \Section{PicTeX} %%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -28399,7 +28883,7 @@ to make it compatible with Pdfpages. \<svg.4ht\><<< % svg.4ht (|version), generated from |jobname.tex -% Copyright 2018-2021 TeX Users Group +% Copyright 2018-2025 TeX Users Group |<TeX4ht license text|> |<svg config|> \Hinput{svg} @@ -28428,7 +28912,7 @@ to make it compatible with Pdfpages. \fi% \expandafter\includegraphics\expandafter[\svg@tempb]{\svg@file@base.\svg@file@ext} \else - \typeout{SVG file #1 cannot be found} + \PackageWarning{svg.4ht}{SVG file "#2" cannot be found} \fi } >>> @@ -29223,6 +29707,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 +29863,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 +29877,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} +% \HLet doesn't work in the preamble, so we need to work around it +\let\o:arrayrulecolor:\arrayrulecolor +\let\arrayrulecolor\tmp:arrayrulecolor -This should enable use of \`|\color| command in array declaration - -\<fix colortbl\><<< \def\convert:colorspec#1 #2 #3 #4{% \edef\current:color{% \ifx\relax#1\relax\else% @@ -29398,6 +29895,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 +30659,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 +30852,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 +30887,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} @@ -30233,11 +30968,11 @@ See \Link[https://github.com/hendricius/the-sourdough-framework/pull/312]{}{}for %%%%%%%%%%%%% \<IEEEtran.4ht\><<< -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% IEEEtran.4ht |version % -% Copyright (C) |CopyYear.2009. Eitan M. Gurari % -|<TeX4ht copyright|> +% IEEEtran.4ht (|version), generated from |jobname.tex +% Copyright (C) |CopyYear.2009. Eitan M. Gurari +|<TeX4ht copywrite|> |<IEEEtran config|> +|<IEEEtran thesubtitle|> \Hinput{IEEEtran} \endinput >>> \AddFile{9}{IEEEtran} @@ -30248,6 +30983,16 @@ See \Link[https://github.com/hendricius/the-sourdough-framework/pull/312]{}{}for \let\@restonecolfalse\@restonecoltrue >>> +We must remove \''\mbox' from subtitle, because it caused +errors with cross-references. + +\<IEEEtran thesubtitle\><<< +\ifCLASSOPTIONcompsoc\else +\def\thesubsection{\thesection-\Alph{subsection}} % I-A +\fi +>>> + + %%%%%%%%%%%%% \Section{enumerate.sty} %%%%%%%%%%%%% @@ -31374,9 +32119,10 @@ it come out as a complete mess. \<chemfig.4ht\><<< % chemfig.4ht (|version), generated from |jobname.tex -% Copyright 2024 TeX Users Group +% Copyright 2024-2025 TeX Users Group |<TeX4ht license text|> |<chemfig redefinitions|> +|<chemfig pictures|> \Hinput{chemfig} \endinput @@ -31410,6 +32156,38 @@ for output formats. \ExplSyntaxOff >>> +Chemfig uses TikZ for drawing chemical diagrams. It works more or less fine, but +sometimes the pictures are clipped, or fail to convert with Dvisvgm. We can try to +enclose the whole Chemfig content in pictures, to see if it helps. + +\<chemfig pictures\><<< +\NewConfigure{chemfigscheme}{2} +\Configure{chemfigscheme}{\Picture+{}}{\EndPicture} +\ExplSyntaxOn +\pend:def\schemestart{\a:chemfigscheme} +\append:def\CF_schemestop{\b:chemfigscheme} +\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} %%%%%%%%%%%%% @@ -32621,10 +33399,9 @@ index.sty\EndLink %%%%%%%%%%%%%%%%%%%%%%%%%%% \<multind.4ht\><<< -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% multind.4ht |version % -% Copyright (C) |CopyYear.1999. Eitan M. Gurari % -|<TeX4ht copyright|> +% multind.4ht (|version), generated from |jobname.tex +% Copyright |CopyYear.1999. Eitan M. Gurari +|<TeX4ht copywrite|> |<multind.sty|> \Hinput{multind} @@ -32715,9 +33492,6 @@ needs a special treatment. \PassOptionsToPackage{noautomatic}{imakeidx} >>> \AddFile{9}{imakeidx-hooks} -\<index haddr\><<< -d|<haddr prefix|>\last:haddr ->>> %%%%%%%%%%%%%%%%%%%%%%%% \SubSection{indextools.sty} @@ -33302,6 +34076,7 @@ Configurations in math mode are named after the command with the "-math" suffix. % Copyright |CopyYear.2001. Eitan M. Gurari |<TeX4ht copywrite|> |<listings sty|> +|<listings list of|> |<lstmisc sty|> \Hinput{listings} \endinput @@ -33371,17 +34146,48 @@ See \Link[https://tex.stackexchange.com/q/719828/2891]{}{}for example\EndLink. \NewConfigure{lstinline}{2} >>> -\<listings sty\><<< +It seems that \Verb|\addcontentsline| is redefined in listings, which prevents +correct handling of \Verb|\lstlistoflistings|. We need to pass our definition +of \Verb|\addcontentsline| which can then be used to write the correct TOC +information to the .4tc file. + +\<listings list of\><<< +\def\lst:newaddcontentsline#1#2#3{\gHAdvance\TitleCount by 1 + {\protect:wrtoc% + \protected@edef\:temp{#3}% + \protected@edef\:temp{\the\:tokwrite{\string\doTocEntry% + \string\toclol% identify this entry as list of listings + {\thetable}{\string\csname\space a:TocLink\string\endcsname% + {\FileNumber}{\cur:th \:currentlabel}{}{\ifx\:temp\empty\else \ignorespaces #3\fi}}% + {}\relax}}\:temp% +}}% +>>> + +We need to redefine \Verb|\addcontentsline| inside of Listing's version of MakeCaption. + +\<listings list of\><<< \pend:defI\lst@MakeCaption{% - \let\lst:addcontentsline\addcontentsline - \def\addcontentsline{\gHAdvance\TitleCount by 1 - \lst:addcontentsline}% + \let\lst:addcontentsline\addcontentsline% + \let\addcontentsline\lst:newaddcontentsline% } \append:defI\lst@MakeCaption{% + % insert destination ID for the list of listings + \Link{}{\cur:th\:currentlabel}\EndLink \let\addcontentsline\lst:addcontentsline } >>> +And lastly, we need to use TeX4ht commands to print th elist of listings. + +\<listings list of\><<< +\ConfigureToc{lol} {}{\empty}{}{\newline} +\AtBeginDocument{% +\def\lstlistoflistings{\bgroup% + \ifdefined\chapter\chapter*{\lstlistlistingname}\else\section*{\lstlistlistingname}\fi% + \TableOfContents[lol]% + \egroup}} +>>> + \<lstmisc sty\><<< \HLet\lst@frameInit=\empty \HLet\lst@frameExit=\empty @@ -33642,7 +34448,7 @@ the fancy page style. \<lineno.4ht\><<< % lineno.4ht (|version), generated from |jobname.tex -% Copyright 2009-2023 TeX Users Group +% Copyright 2009-2024 TeX Users Group % Copyright 2000-2009 Eitan M. Gurari |<TeX4ht license text|> @@ -33667,7 +34473,9 @@ the fancy page style. % \linenumbers don't have any sense in the HTML output % moreover, they cause equations and possibly other elements to fail -\HLet\linenumbers\relax +\def\:tempa{\@ifnextchar [{\resetlinenumber }{\@ifstar {\resetlinenumber }{}}} +\HLet\linenumbers\:tempa + % if \linenumbers were used in the document preamble, we must disable them now: \LineNumbersfalse @@ -34973,6 +35781,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 +37695,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 +37725,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 +38841,117 @@ 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. + +As we call original \''\footnote', we must also take care of the footnote +counters and links. As different footnote types will produce the +same footnote numbers, these numbers will produce duplicate links. +To avoid that, we add a suffix to \''\minipageNum'. + +\<declare manyfoot footnote\><<< +\let\o:MFL@declare:\MFL@declare + +\def\manyfoot:declarefn#1{% + \expandafter\renewcommand\csname footnote#1\endcsname[1]{% + % save original footnote counters + \let\:origthefootnote\thefootnote% + \let\:origmpfn\@mpfn% + \let\:origminipageNum\minipageNum% + % \minipageNum is used in footnote links. we add the current suffix to produce unique links + % if different footnote types use the same number + \edef\minipageNum{\minipageNum #1}% + \renewcommand\thefootnote{\csname thefootnote#1\endcsname}% + % declare which counter should be used + \def\@mpfn{footnote#1}% + \footnote{##1}% + \let\thefootnote\:origthefootnote% + \let\@mpfn\:origmpfn% + \let\minipageNum\:origminipageNum% + }% +} + +\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 +39718,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-kpfonts.tex b/support/TeX4ht/source/tex4ht-fonts-kpfonts.tex index cdbcfc49d2..98d1922f6d 100644 --- a/support/TeX4ht/source/tex4ht-fonts-kpfonts.tex +++ b/support/TeX4ht/source/tex4ht-fonts-kpfonts.tex @@ -1,4 +1,4 @@ -% $Id: tex4ht-fonts-kpfonts.tex 1330 2023-05-11 20:15:18Z michal_h21 $ +% $Id: tex4ht-fonts-kpfonts.tex 1631 2025-01-21 14:29:06Z michal_h21 $ % etex {nameofthefile.tex} % % Copyright 2021 TeX Users Group. @@ -13919,8 +13919,8 @@ jkplsyc 0 152 '⇙' '' Arrowsouthwest 119 '⫪' '' Latticetop 120 '⫫' '' Perpendicular 121 -'↝' '' leadstoext 122 -'〜' '' leadsto 123 +'∿' '' leadstoext 122 -- used to be 219D, but that is completely different glyph. should be long tilde +'⤳' '' leadsto 123 -- used to be 301C, but that is completely different glyph. should be wawy rigth arrow '⊎︁' '' squareunionmulti 124 '⩎︁' '' squareintersectmulti 125 '⟦' '' dblbracketleft 126 diff --git a/support/TeX4ht/source/tex4ht-fonts-modern.tex b/support/TeX4ht/source/tex4ht-fonts-modern.tex index e9fa996a26..e26b443a37 100644 --- a/support/TeX4ht/source/tex4ht-fonts-modern.tex +++ b/support/TeX4ht/source/tex4ht-fonts-modern.tex @@ -1,4 +1,4 @@ -% $Id: tex4ht-fonts-modern.tex 1313 2023-03-28 11:14:33Z michal_h21 $ +% $Id: tex4ht-fonts-modern.tex 1631 2025-01-21 14:29:06Z michal_h21 $ % Included from tex4ht-fonts-noncjk.tex, not run on its own. % % Copyright 2009-2020 TeX Users Group @@ -22127,8 +22127,8 @@ pxbsyc 0 152 'ᇙ' '' `%Arrowsouthwest`% 119 '?' '' `%Latticetop`% 120 '?' '' `%Perpendicular`% 121 -'∼' '' `%leadstoext`% 122 -'↝' '' `%leadsto`% 123 +'∿' '' `%leadstoext`% 122 +'⤳' '' `%leadsto`% 123 - \leadsto is usually 21DD, but the glyph used in the font is more similar to this one '?' '' `%squareunionmulti`% 124 '?' '' `%squareintersectmulti`% 125 '⟦' '' `%dblbracketleft`% 126 @@ -23046,8 +23046,8 @@ pxsyc 0 152 'ᇙ' '' `%Arrowsouthwest`% 119 '?' '' `%Latticetop`% 120 '?' '' `%Perpendicular`% 121 -'∼' '' `%leadstoext`% 122 -'↝' '' `%leadsto`% 123 +'∿' '' `%leadstoext`% 122 +'⤳' '' `%leadsto`% 123 used to be 219D, but that is wrong '?' '' `%squareunionmulti`% 124 '?' '' `%squareintersectmulti`% 125 '⟦' '' `%dblbracketleft`% 126 diff --git a/support/TeX4ht/source/tex4ht-fonts-noncjk.tex b/support/TeX4ht/source/tex4ht-fonts-noncjk.tex index 0e22004638..34480c7a3e 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 1631 2025-01-21 14:29:06Z michal_h21 $ % 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. @@ -12497,8 +12497,8 @@ lasy 1 61 '' '' 55 '' '' 56 '' '' 57 -'∼' '' 58 % This is an extension of the \leadsto (is end-to-end inside its glyph box; see lasy.mf), but there is no special Unicode point for this -'↝' '' leadsto 59 % tutorialspoint.com/tex_commands/ defines it as 21DD, which is a squiggle arrow, but there are dedicated squiggle arrows in TeX, so keep it as 219D +'∿' '' 58 % This is an extension of the \leadsto (is end-to-end inside its glyph box; see lasy.mf), but there is no special Unicode point for this +'⇝' '' leadsto 59 % Used to be 219C, but that is completely different glyph. '⊏' '' 60 '⊐' '' 61 lasy 1 61 @@ -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}{} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -50848,10 +50947,10 @@ wasy 0 127 '☽' '' 37 '♁' '' 38 '☿' '' 39 -'⧼' '' 40 -'⧽' '' 41 -'⋏' '' 42 -'⋎' '' 43 +'˂' '' 40 +'˃' '' 41 +'˄' '' 42 +'˅' '' 43 '☺' '' 44 '☻' '' 45 '☼' '' 46 diff --git a/support/TeX4ht/source/tex4ht-html4.tex b/support/TeX4ht/source/tex4ht-html4.tex index 13bf280c88..db7c200450 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 1641 2025-02-13 15:38:33Z 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|> >>> @@ -2960,8 +2960,8 @@ such a case, we don't have proper nestings of environments. |<save end:itm|>\global\let\end:itm=\empty} {|<recall end:itm|>\ifvmode \IgnorePar\fi \EndP\HCode{</li></ul>}\ShowPar} - {\end:itm \global\def\end:itm{\EndP\Tg</li>}\HCode{<li class="\getClass{li}itemize"><span class="itemizeHead" aria-hidden="true">}\afterGetClass{li}} - {\HCode{</span>}|<list par|>} + {\end:itm \global\def\end:itm{\EndP\Tg</li>}\HCode{<li class="\getClass{li}itemize">}|<list par|>\HCode{<span class="itemizeHead" aria-hidden="true">}\afterGetClass{li}} + {\HCode{</span>}} \Css{.itemizeHead{float: left; margin-left: -1em; width: 1em;}} \Css{li.itemize{list-style: none;}} \fi @@ -4723,6 +4723,21 @@ The `index=i' provides the initial setting. \Configure{gloskip}{long}{\cr\HCode{<p class="gloskip"></p>}} >>> +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Glossaries} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<configure html4 glossaries\><<< +\Configure{glossentry} +{\ifvmode\IgnorePar\fi\EndP\HCode{<div class="glossary">}} +{\ifvmode\IgnorePar\fi\EndP\HCode{</div>}} + +\Configure{glsgroupskip}{\ifvmode\Ignore\Par\fi\EndP\HCode{<div class="glsgroupskip"></div>\Hnewline}} +\Css{.glsgroupskip{margin-bottom:1rem;}} +\Css{.glsgroupskip + .glsgroupskip{margin-bottom: 0;}} +>>> + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Captions} @@ -4737,7 +4752,7 @@ The `index=i' provides the initial setting. \cur:th\:currentlabel\space-->}% } \Css{div.caption {text-indent:-2em; margin-left:3em; margin-right:1em; - text-align:left;}} + text-align:center; margin-top: 0.5rem;}} \Css{div.caption span.id{font-weight: bold; white-space: nowrap; }} >>> @@ -5703,7 +5718,7 @@ Otherwise, it will display it as a italic text. {\HCode{</span></div>}}% }% {\ifvmode\IgnorePar\fi\EndP\HCode{</div>}}% -\Css{div.subfigure {text-align:center;display:inline-block; max-width:45\%;}} +\Css{div.subfigure {text-align:center;display:inline-block; max-width:45\%; margin-right: 2rem;}} >>> %%%%%%%%%%%%%%%%%%%%% @@ -5996,7 +6011,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 +7676,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 +7824,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 +7834,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 +7848,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 +7860,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 +8807,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 +16495,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 +16566,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 +16884,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 +17861,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 +18449,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 +20009,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 +22977,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..9f181e3bfe 100644 --- a/support/TeX4ht/source/tex4ht-mathjax.tex +++ b/support/TeX4ht/source/tex4ht-mathjax.tex @@ -1,7 +1,7 @@ -% $Id: tex4ht-mathjax.tex 1540 2024-07-28 17:10:17Z michal_h21 $ +% $Id: tex4ht-mathjax.tex 1634 2025-01-26 15:11:47Z karl $ % compile: latex tex4ht-mathjax % -% Copyright 2018-2024 TeX Users Group +% Copyright 2018-2025 TeX Users Group % Released under LPPL 1.3c+. % See tex4ht-cpright.tex for license text. @@ -19,7 +19,7 @@ \<mathjax-latex-4ht\><<< % mathjax-latex-4ht.4ht (|version), generated from |jobname.tex -% Copyright 2018-2024 TeX Users Group +% Copyright 2018-2025 TeX Users Group |<TeX4ht copywrite|> |<required packages|> |<defined commands|> @@ -40,7 +40,8 @@ in LaTeX kernel now. The \verb|\alteqtoks| command prints the used LaTeX math code to the output document in verbatim. -In the past, we used \verb|\detokenize|. The side effect of this is that detokeize inserts space +We use \verb|\detokenize| to output verbatim LaTeX code to the HTML document. +The side effect of this is that detokenize inserts space after each control sequence. This is completely valid TeX code, but earlier versions of MathJax didn't like that, rendering resulted in error. @@ -54,24 +55,67 @@ 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. +But regular expressions may be slow if there is a huge number of math, and they may fail if contents +of any math environment is larger than 64 KB. + +So we provide a "fastmathjax" option, that doesn't do any post-processing of the math contents. It should +result in 60-70\% speed-up. The downside is that if math contains characters that are invalid in the +XML mode, such as ampersand, less-than and greater-than, make4ht XML DOM filters will fail. Fortunatelly, +make4ht will then switch to the HTML parser mode, so DOM filters will be still executed. + + +\<defined commands\><<< +\ExplSyntaxOn +\:CheckOption{fastmathjax}\if:Option +|<fastmathjax|> +\else +|<normalmathjax|> +\fi +\ExplSyntaxOff +>>> + +Output verbatim math to HTML without any post-processing. +We still need to set the token list to prevent some issues. + +For example, if the processed math contain paragraphs, we would +get an error because \''\HCode' doesn't like that. + +\<fastmathjax\><<< +\DeclareRobustCommand\alteqtoks[1]{% + \tl_set:Ne \l_tmpa_tl {\detokenize{#1}} + \HCode{\l_tmpa_tl} +} +>>> + +Escape illegal XML characters. + +\<normalmathjax\><<< +\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 @@ -81,10 +125,9 @@ We still use regular expressions to escape invalid XML characters to entities, s \tl_set:Ne \l_tmpb_tl{ \l_tmpa_tl } \HCode{\l_tmpb_tl} } -\ExplSyntaxOff - >>> + Provide configuration for MathJax \<defined commands\><<< @@ -120,10 +163,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% } >>> @@ -216,19 +263,19 @@ Require verbatim math environments. \VerbMath{aligned} \VerbMath{alignedat} \VerbMath{gathered} -\VerbMath{gather} +\VerbMath[equation]{gather} \VerbMath{gather*} -\VerbMath{alignat} +\VerbMath[equation]{alignat} \VerbMath{alignat*} \VerbMath{xalignat} \VerbMath{xalignat*} \VerbMath{xxalignat} -\VerbMath{align} +\VerbMath[equation]{align} \VerbMath{align*} -\VerbMath{flalign} +\VerbMath{flalign[equation]} \VerbMath{flalign*} -\VerbMath{split} -\VerbMath{multline} +\VerbMath[equation]{split} +\VerbMath[equation]{multline} \VerbMath{multline*} \VerbMath[equation]{equation} \VerbMath{equation*} @@ -294,7 +341,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..7ce1252854 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 1639 2025-02-12 15:02:29Z michal_h21 $$ % compile 3 times: latex tex4ht-mathltx % or xhlatex tex4ht-mathltx "html,3,sections+" % -% Copyright 2009-2023 TeX Users Group +% Copyright 2009-2025 TeX Users Group % Copyright 1999-2009 Eitan M. Gurari % Released under LPPL 1.3c+. % See tex4ht-cpright.tex for license text. @@ -163,7 +163,7 @@ \HCode{</td><td class="eq-no">}% } {\ifvmode \IgnorePar\fi\EndP \HCode{</td></tr></table>}% - \ShowPar\IgnoreIndent\par} + \par\ShowPar\noindent} \Configure{equation*} {\ifvmode \IgnorePar\fi\EndP \HCode{<table class="equation-star"><tr><td>}% @@ -577,14 +577,14 @@ in italic and without space that would separate it from the following element. \<mathml\><<< % mathml.4ht (|version), generated from |jobname.tex -% Copyright 2009-2024 TeX Users Group +% Copyright 2009-2025 TeX Users Group % Copyright |CopyYear.1999. Eitan M. Gurari |<TeX4ht copywrite|> >>> \<html-mml\><<< % html-mml.4ht (|version), generated from |jobname.tex -% Copyright 2009-2022 TeX Users Group +% Copyright 2009-2025 TeX Users Group % Copyright |CopyYear.1999. Eitan M. Gurari |<TeX4ht copywrite|> >>> @@ -826,10 +826,12 @@ We reserve code 254 (and 255) for unknown symbols. {} {\HCode{<\a:mathml mover\Hnewline accent="true"><\a:mathml mrow\Hnewline>}#2\HCode{</\a:mathml mrow>}% \:widetilde:over \HCode{</\a:mathml mover>}} - \Configure{accent}\tilde\tilde{{}{}} - {} - {\HCode{<\a:mathml mover\Hnewline accent="true"><\a:mathml mrow\Hnewline>}#2\HCode{</\a:mathml mrow>}% - \:tilde:over \HCode{</\a:mathml mover>}} + % this configuration caused problems with text accents. + % we can use Unicode characters with tilde accents instead even in MathML + % \Configure{accent}\tilde\tilde{{}{}} + % {} + % {\HCode{<\a:mathml mover\Hnewline accent="true"><\a:mathml mrow\Hnewline>}#2\HCode{</\a:mathml mrow>}% + % \:tilde:over \HCode{</\a:mathml mover>}} \Configure{accent}\widehat\widehat{{}{}} {} {\HCode{<\a:mathml mover\Hnewline accent="true"><\a:mathml mrow\Hnewline>}#2\HCode{</\a:mathml mrow>}% @@ -1345,7 +1347,8 @@ rows produced by hline. \Css{.hline-mtd, .array-hline td{ display:none }} -\Css{.array-hline + .array-row:last-child{display:none;}} +% why was the following line here? it hides last row even if it contains content +% \Css{.array-hline + .array-row:last-child{display:none;}} \Css{.array-hline:first-child{border-bottom:1px solid black;border-top:none;}} >>> @@ -1939,6 +1942,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 +2157,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} @@ -2234,7 +2420,7 @@ POP \<amsmath mathml\><<< \Configure{gathered} - {\HCode{<\a:mathml mtable\Hnewline \mml:class="gathered">}} + {\HCode{<\a:mathml mtable\Hnewline \mml:class="gathered" \mtable:align:attribute>}} {\HCode{</\a:mathml mtable>}} {\HCode{<\a:mathml mtr>}} {\HCode{</\a:mathml mtr>}} {\HCode{\Hnewline<\a:mathml mtd>}} {\HCode{</\a:mathml mtd>}} @@ -2657,6 +2843,42 @@ The following CSS caused too large whitespace around functions \HCode{</\a:mathml mtd>}} >>> +Fix MathML arrows with MathTools. + +\<configure mathml mathtools\><<< +% support bidirectional harpoons +\def\:leftrightharpoons{\HCode{<\a:mathml mo stretchy="true">}\PauseMathClass\x:unicode{21CC}\EndPauseMathClass\HCode{</\a:mathml mo>}} +\def\:righleftharpoons{\HCode{<\a:mathml mo stretchy="true">}\PauseMathClass\x:unicode{21CB}\EndPauseMathClass\HCode{</\a:mathml mo>}} + +\providecommand*\:xleftrightharpoons[2][]{% +\ext@arrow 3095\:leftrightharpoons{#1}{#2}} + +\providecommand*\:xrightleftharpoons[2][]{% +\ext@arrow 3095\:leftrightharpoons{#1}{#2}} + +\HLet\xleftrightharpoons\:xleftrightharpoons +\HLet\xrightleftharpoons\:xrightleftharpoons + +% correctly place text under and over arrows +\def\:tempa#1#2#3#4#5#6#7{% + \bgroup% + \def\relbar{}% remove relbar in arrow fills + \def\arrowfill@##1##2##3##4{##1##2##3##4}% remove arrowfill@, to prevent errors + \@ifempty{#7}{% + \HCode{<\a:mathml munder><\a:mathml mrow><\a:mathml mo stretchy="true">}\PauseMathClass#5{}\EndPauseMathClass\HCode{</\a:mathml mo></\a:mathml mrow><\a:mathml mrow>}#6\HCode{</\a:mathml mrow></\a:mathml munder>}% + }{% + \@ifempty{#6}{% + \HCode{<\a:mathml mover><\a:mathml mrow><\a:mathml mo stretchy="true">}\PauseMathClass#5{}\EndPauseMathClass\HCode{</\a:mathml mo></\a:mathml mrow><\a:mathml mrow>}#7\HCode{</\a:mathml mrow></\a:mathml mover>}% + }{% + \HCode{<\a:mathml munderover><\a:mathml mrow><\a:mathml mo stretchy="true">}\PauseMathClass#5{}\EndPauseMathClass\HCode{</\a:mathml mo></\a:mathml mrow><\a:mathml mrow>}#6\HCode{</\a:mathml mrow><\a:mathml mrow>}#7\HCode{</\a:mathml mrow></\a:mathml munderover>}% + }% + }% + \egroup +} + +\HLet\ext@arrow\:tempa +>>> + %%%%%%%%%%%%%%%%%% \section{Gaus} %%%%%%%%%%%%%%%%%% @@ -3584,14 +3806,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} + >>> @@ -4212,15 +4439,21 @@ We must use \`'\protect' with LaTeX in order to support TOC etc. \<configure mathml amsmath\><<< +% thanks to Linas Stonys for this code +\def\mtable:align:attribute{% + \if t\Hlcr\space\a:mathml align="axis 1"\fi + \if b\Hlcr\space\a:mathml align="axis -1"\fi + } + \Configure{aligned} - {\HCode{<\a:mathml mtable\Hnewline \mml:class="aligned">}} + {\HCode{<\a:mathml mtable\Hnewline \mml:class="aligned" \mtable:align:attribute>}} {\HCode{</\a:mathml mtable>}} {\HCode{<\a:mathml mtr\Hnewline>}} {\HCode{</\a:mathml mtr>}} {\HCode{<\a:mathml mtd \a:mathml columnalign="\ifodd\HCol right\else left\fi" >}} {\HCode{</\a:mathml mtd>}} \Configure{alignedat} - {\HCode{<\a:mathml mtable\Hnewline \mml:class="alignedat">}} + {\HCode{<\a:mathml mtable\Hnewline \mml:class="alignedat" \mtable:align:attribute>}} {\HCode{</\a:mathml mtable>}} {\HCode{<\a:mathml mtr\Hnewline>}} {\HCode{</\a:mathml mtr>}} {\HCode{<\a:mathml mtd @@ -5468,6 +5701,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 +5956,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-options.tex b/support/TeX4ht/source/tex4ht-options.tex index 0a11d693ad..b7b2a2c400 100644 --- a/support/TeX4ht/source/tex4ht-options.tex +++ b/support/TeX4ht/source/tex4ht-options.tex @@ -1,7 +1,7 @@ -% $Id: tex4ht-options.tex 1436 2024-01-10 22:44:00Z karl $ +% $Id: tex4ht-options.tex 1638 2025-02-09 16:05:28Z karl $ % latex tex4ht-options or xhlatex tex4ht-options % -% Copyright 2009-2024 TeX Users Group +% Copyright 2009-2025 TeX Users Group % Copyright 2000-2009 Eitan M. Gurari % Released under LPPL 1.3c+. % See tex4ht-cpright.tex for license text. @@ -49,7 +49,7 @@ tail>>> \string:RestoreCatcodes\endcsname{\catcode`\%|=\the \catcode`\%}\catcode`\%|=14\fi % tex4ht.4ht (|version), generated from |jobname.tex -% Copyright 2009-2024 TeX Users Group +% Copyright 2009-2025 TeX Users Group % Copyright |CopyYear.1997. Eitan M. Gurari |<TeX4ht copywrite|> |<save catcodes|> diff --git a/support/TeX4ht/source/tex4ht-sty.tex b/support/TeX4ht/source/tex4ht-sty.tex index e713134f7e..33d324cbd9 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 1635 2025-02-03 09:13:19Z 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\><<< @@ -8920,11 +8920,11 @@ TRY: Replace SUBOn with HSUBOn, SUBOff with HSUBOff, Ditto for SUP \<let sp\><<< -\let\sp=^ +\let\sp=^% >>> \<let sb\><<< -\let\sb=_ +\let\sb=_% >>> 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/tex4ht-unicode.tex b/support/TeX4ht/source/tex4ht-unicode.tex index c5cc398020..9db6bd1ba0 100644 --- a/support/TeX4ht/source/tex4ht-unicode.tex +++ b/support/TeX4ht/source/tex4ht-unicode.tex @@ -1,7 +1,7 @@ -% $Id: tex4ht-unicode.tex 1314 2023-04-02 15:01:40Z karl $ +% $Id: tex4ht-unicode.tex 1617 2024-12-15 15:18:36Z karl $ % latex tex4ht-unicode or xhlatex tex4ht-unicode "html,3,sections+" % -% Copyright 2009-2023 TeX Users Group +% Copyright 2009-2024 TeX Users Group % Copyright 1998-2009 Eitan M. Gurari % Released under LPPL 1.3c+. % See tex4ht-cpright.tex for license text. @@ -227,7 +227,7 @@ of \verb'\mathop', \verb'\mathrel',...., for the next parameter. \<unicode\><<< % unicode.4ht (|version), generated from |jobname.tex -% Copyright 2009-2023 TeX Users Group +% Copyright 2009-2024 TeX Users Group % Copyright |CopyYear.1998. Eitan M. Gurari |<TeX4ht copywrite|> >>> @@ -791,6 +791,28 @@ The following originally have been defined to be parameter-less. >>> +This adds support for the T5 encoding. Most accents work out of the box, +but carons, urings and umlauts don't. I use a macro, so in theory it could be reused +for other encodings in a similar way as well. + +\<old unicode accents\><<< + %%%% +\def\:tempa#1{% +\Configure{accent}\ddot\ddot{|<diaeresis codes|>{}{34}} + {\a:accents{}{##1}} {\b:accents{uml}{##1}{##2}} +\expand:after{\Configure{accent}}\csname #1\string\"\expandafter\endcsname + \csname #1\string\"\endcsname{|<diaeresis codes|>{}{34}} + {\a:accents{}{##1}} {\b:accents{uml}{##1}{##2}} +\expand:after{\Configure{accent}}\csname #1\string\r\expandafter\endcsname + \csname #1\string\r\endcsname{|<ring codes|>{}{}} + {\a:accents{}{##1}} {\b:accents{uml}{##1}{##2}} +\expand:after{\Configure{accent}}\csname #1\string\v\expandafter\endcsname + \csname #1\string\v\endcsname{|<caron codes|>{}{}} + {\a:accents{}{##1}} {\b:accents{check}{##1}{##2}} +} +\:tempa{T5} +>>> + 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). |