diff options
Diffstat (limited to 'Master/texmf-dist/source/generic/tex4ht/tex4ht-4ht.tex')
-rw-r--r-- | Master/texmf-dist/source/generic/tex4ht/tex4ht-4ht.tex | 536 |
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} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |