summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/generic/tex4ht/tex4ht-4ht.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/generic/tex4ht/tex4ht-4ht.tex')
-rw-r--r--Master/texmf-dist/source/generic/tex4ht/tex4ht-4ht.tex536
1 files changed, 493 insertions, 43 deletions
diff --git a/Master/texmf-dist/source/generic/tex4ht/tex4ht-4ht.tex b/Master/texmf-dist/source/generic/tex4ht/tex4ht-4ht.tex
index f3617f37572..f7454803482 100644
--- a/Master/texmf-dist/source/generic/tex4ht/tex4ht-4ht.tex
+++ b/Master/texmf-dist/source/generic/tex4ht/tex4ht-4ht.tex
@@ -1,4 +1,4 @@
-% $Id: tex4ht-4ht.tex 1536 2024-07-03 12:08:13Z michal_h21 $
+% $Id: tex4ht-4ht.tex 1574 2024-10-04 12:22:30Z michal_h21 $
% tex tex4ht-4ht or ht tex tex4ht-4ht
%
% Copyright 2009-2024 TeX Users Group
@@ -1526,6 +1526,13 @@ A better def is given to \''\l:bel' in AmsLaTeX .
\let\o:ref|=\:ref
\def\::ref#1{{\:SUBOff\:SUPOff\xdef\RefArg{#1}}\expandafter\o:ref
\expandafter{\RefArg}}
+\ExplSyntaxOn
+\def\::ref#1{{\:SUBOff\:SUPOff\xdef\RefArg{#1}%
+ \SUBOn\SUPOn%
+ \def\rEfLiNK##1##2{\Link{##1}{}\tl_rescan:nn{}{##2}\EndLink}%
+ \expandafter\o:ref\expandafter{\RefArg}%
+}}
+\ExplSyntaxOff
\DeclareDocumentCommand\:ref{s}{\IfBooleanTF{#1}{\Protect\::ref}{\Protect\::ref}}
\let\ref|=\:ref
>>>
@@ -1535,12 +1542,14 @@ Support for the \''\Ref' command. It is variant of \''\ref' that uppercases
first letter of the referenced label.
\<sub/sup in labels/refs\><<<
-\def\::Ref#1{%
- \let\olda:rEfLiNK\rEfLiNK%%
- \def\rEfLiNK##1##2{\Link{##1}{}\edef\:ref:currentlabel{##2}\expandafter\MakeUppercase\:ref:currentlabel\EndLink}%
- \::ref{#1}%
- \let\rEfLiNK\olda:rEfLiNK%
-}
+\ExplSyntaxOn
+\def\::Ref#1{{%
+ \:SUBOff\:SUPOff\xdef\RefArg{#1}%
+ \SUBOn\SUPOn%
+ \def\rEfLiNK##1##2{\tl_set_rescan:Nnn\l_tmpa_tl{}{##2}\Link{##1}{}\expandafter\MakeUppercase\l_tmpa_tl\EndLink}%
+ \expandafter\o:ref\expandafter{\RefArg}%
+}}
+\ExplSyntaxOff
\DeclareDocumentCommand\:Ref{s}{\IfBooleanTF{#1}{\Protect\::Ref}{\Protect\::Ref}}
\let\Ref\:Ref
>>>
@@ -5100,13 +5109,14 @@ as it leads to a fatal error.
\Configure{PackageHooks}{tagpdf.sty}{tagpdf-hooks.4ht}
>>>
+% This is no longer useful, it was fixed in tagpdf code
+% \cs_set_protected:Npn \__tag_whatsits: {}
+
\<tagpdf-hooks.4ht\><<<
% tagpdf-hooks.4ht (|version), generated from |jobname.tex
% Copyright 2022-2024 TeX Users Group
|<TeX4ht license text|>
\ExplSyntaxOn
-% ignore tagpdf's specials
-\cs_set_protected:Npn \__tag_whatsits: {}
\ExplSyntaxOff
\:AtEndOfPackage{%
\RenewDocumentCommand \tagpdfsetup { m }{}
@@ -5118,16 +5128,17 @@ as it leads to a fatal error.
\Configure{PackageHooks}{tagpdf-base.sty}{tagpdf-base-hooks.4ht}
>>>
-This file can be used explicitly, we need to provide the whatsits command
-here as well.
+This file can be used explicitly, we used to provide the whatsits command
+here as well, but it is no longer neeeded.
+
+% ignore tagpdf's specials
+% we use csname, because \ExplSyntaxOn .. Off caused catcode issues
+% \expandafter\def\csname __tag_whatsits:\endcsname{}
\<tagpdf-base-hooks.4ht\><<<
% tagpd-base-hooks.4ht (|version), generated from |jobname.tex
% Copyright 2024 TeX Users Group
|<TeX4ht license text|>
-% ignore tagpdf's specials
-% we use csname, because \ExplSyntaxOn .. Off caused catcode issues
-\expandafter\def\csname __tag_whatsits:\endcsname{}
\endinput
>>> \AddFile{9}{tagpdf-base-hooks}
@@ -10742,13 +10753,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}%
@@ -10789,7 +10819,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}
@@ -10800,7 +10830,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\><<<
@@ -11249,7 +11279,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
@@ -22110,11 +22140,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
>>>
%%%%%%%%%%%%%
@@ -22277,14 +22309,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
@@ -26181,7 +26213,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%
@@ -26327,12 +26363,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}
@@ -26367,9 +26402,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}%
@@ -26450,10 +26494,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
@@ -26461,6 +26507,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}
@@ -29221,6 +29312,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.
@@ -29362,8 +29468,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
@@ -29374,14 +29482,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
->>>
+% \HLet doesn't work in the preamble, so we need to work around it
+\let\o:arrayrulecolor:\arrayrulecolor
+\let\arrayrulecolor\tmp:arrayrulecolor
-\SubSection{Utilities}
-
-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%
@@ -29396,6 +29500,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
@@ -30145,6 +30264,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}
%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -30171,6 +30457,7 @@ A style file for resumes.
% Copyright |CopyYear.2009. Eitan M. Gurari
|<TeX4ht copywrite|>
|<enumitem config|>
+|<enumitem newlist|>
\Hinput{enumitem}
\endinput
>>> \AddFile{9}{enumitem}
@@ -30205,6 +30492,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}
@@ -31408,6 +31750,25 @@ for output formats.
\ExplSyntaxOff
>>>
+%%%%%%%%%%%%%%%
+\Section{Esvect}
+%%%%%%%%%%%%%%%
+
+\<esvect.4ht\><<<
+% esvect.4ht (|version), generated from |jobname.tex
+% Copyright 2024 TeX Users Group
+|<TeX4ht license text|>
+|<esvect redefinitions|>
+
+\Hinput{esvect}
+\endinput
+>>> \AddFile{9}{esvect}
+
+
+\<esvect redefinitions\><<<
+>>>
+
+
%%%%%%%%%%%%%
\Section{Ushort}
%%%%%%%%%%%%%
@@ -36870,25 +37231,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}
>>>
@@ -36900,12 +37261,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}
@@ -38782,6 +39143,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}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%