
Dado este MWE
\documentclass[11pt]{book}
\usepackage{xcolor}
\usepackage{pifont} %http : // ctan.org/pkg/pifont
\newcommand{\cmark}{\textcolor{green!80!black}{\ding{51}}}
\newcommand{\xmark}{\textcolor{red}{\ding{55}}}
\begin{document}
\cmark \underline{A}
\cmark \underline{B}
\end{document}
La compilación con lualatex da el resultado esperado
Pero usar make4ht -ulm default -a debug report.tex "mathjax,htm"
da
Da esta advertencia
l.10 --- TeX4ht warning --- missing \Configure{HColor}{green!80!black}{...} (in
LaTeX: \\color@green!80!black ) ---
Unsupported font pzdr
Pero siempre es la primera entrada la que falla, pero cada uso \cmark
posterior funciona bien.
Aquí está el HTML sin formato.
<!DOCTYPE html>
<html lang='en-US' xml:lang='en-US'>
<head><title></title>
<meta charset='utf-8' />
<meta content='TeX4ht (https://tug.org/tex4ht/)' name='generator' />
<meta content='width=device-width,initial-scale=1' name='viewport' />
<link href='report.css' rel='stylesheet' type='text/css' />
<meta content='report.tex' name='src' />
<script>window.MathJax = { tex: { tags: "ams", }, }; </script>
<script async='async' id='MathJax-script' src='https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml-full.js' type='text/javascript'></script>
</head><body>
<!-- l. 10 --><p class='noindent'><span id='textcolor1'>80!black!//<span class='pzdr-x-x-109'>✓</span></span><span class='underline'>A</span>
</p><!-- l. 12 --><p class='indent'> <span id='textcolor2'><span class='pzdr-x-x-109'>✓</span></span><span class='underline'>B</span>
</p>
</body>
</html>
Esto se comprobó en el navegador Brave y Firefox.
¿Por qué esto sucede sólo en el primero y cómo corregirlo? ¿Cómo \Configure{HColor}
solucionar esto?
Actualizar
Noté que funcionó bien al cambiar \newcommand{\cmark}{\textcolor{green!80!black}{\ding{51}}}
a\newcommand{\cmark}{\textcolor{green}{\ding{51}}}
Entonces parece que la mezcla de colores no es compatible con tex4ht. No es un gran trato. Solo usaré \textcolor{green}
en tex4ht y usaré\textcolor{green!80!black}
en PDF por ahora.
TL 2021
Respuesta1
Esto parece un error en la compatibilidad con las especificaciones de color en forma de green!80!black
TeX4ht. Encontré dónde entra la especificación de color en el documento y lo arreglé. Pruebe esta versión de xcolor.4ht
:
% xcolor.4ht (2019-04-09-10:06), generated from tex4ht-4ht.tex
% Copyright 2007-2009 Eitan M. Gurari
% Copyright 2009-2019 TeX Users Group
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
% version 1.3c of this license or (at your option) any
% later version. The latest version of this license is in
% http://www.latex-project.org/lppl.txt
% 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>.
%
% If you modify this program, changing the
% version identification would be appreciated.
\immediate\write-1{version 2019-04-09-10:06}
\input color.4ht
\def\rowc@l@rs[#1]#2#3#4%
{\global\rownum=\z@
\global\@rowcolorstrue
\@ifxempty{#3}%
{\def\@oddrowcolor{\@norowcolor}}%
{\def\@oddrowcolor{\a:rowcolors{#3}%
\gdef\CT@row@color{\CT@color{#3}}}}%
\@ifxempty{#4}%
{\def\@evenrowcolor{\@norowcolor}}%
{\def\@evenrowcolor{\a:rowcolors{#4}%
\gdef\CT@row@color{\CT@color{#4}}}}%
\if@rowcmd
\def\@rowcolors
{#1\if@rowcolors
\o:noalign:{\relax\ifnum\rownum<#2\@norowcolor\else
\ifodd\rownum\@oddrowcolor\else\@evenrowcolor\fi\fi}%
\fi}%
\else
\def\@rowcolors
{\if@rowcolors
\ifnum\rownum<#2\o:noalign:{\@norowcolor}\else
#1\o:noalign:{\ifodd\rownum\@oddrowcolor\else\@evenrowcolor\fi}\fi
\fi}%
\fi
\CT@everycr{\@rowc@lors\the\everycr}%
\ignorespaces}
\NewConfigure{rowcolors}{1}
\def\@rowc@lors{\o:noalign:{\global\advance\rownum\@ne}\@rowcolors}
\def\showrowcolors{\o:noalign:{\global\@rowcolorstrue}\@rowcolors}
\def\hiderowcolors{\o:noalign:{\global\@rowcolorsfalse\@norowcolor}}
\def\:temp#1#2#3{{\set@color}}
\HLet\color@block\:temp
\def\:temp#1#2#3{}
\HLet\boxframe\:temp
\def\strip:fin:excl#1!{#1}
\expandafter\def\csname get!HColor\endcsname#1!#2//{%
\def\current:color:name{#1\if!#2!\else!\strip:fin:excl#2\fi}%
\if\relax#2\relax
%\expandafter\ifx \csname HColor!#1\endcsname\relax
\let\HColor=\relax
\expandafter\ifx \csname\string\color @#1\endcsname \relax\else
\expandafter\ifx \csname colortyp:\endcsname\relax \else
\extractcolorspec{#1\if!#2!\else!\strip:fin:excl#2\fi}\tmp:color%
\expandafter\convertcolorspec\tmp:color{HTML}\tmp:color%
\def\HColor{\#\tmp:color}%
\Configure{HColor}{\current:color:name}{\HColor}%
\csname colortyp:\expandafter\expandafter\expandafter\endcsname
\csname\string\color @#1\expandafter\endcsname
\space .!//%
\fi \fi
%
\else
\ifcsname HColor!#1\endcsname
\csname HColor!#1\endcsname #2//%
\fi
\fi
}
\expandafter\def\csname c:HColor!gray:\endcsname{%
\expandafter\def\csname HColor!gray\endcsname##1!##2//}
\Configure{HColor!gray}{\Configure{HColor}{}{}}
\expandafter\def\csname c:HColor!rgb:\endcsname{%
\expandafter\def\csname HColor!rgb\endcsname##1,##2,##3!##4//}
\Configure{HColor!rgb}{\Configure{HColor}{}{}}
\expandafter\def\csname c:HColor!cmyk:\endcsname{%
\expandafter\def\csname HColor!cmyk\endcsname##1,##2,##3,##4!##5//}
\Configure{HColor!cmyk}{\Configure{HColor}{}{}}
\def\get:xcolorcss#1#2{%
\expandafter\extractcolorspec\expandafter{#1}{\tsf:color}%
\expandafter\convertcolorspec\tsf:color{HTML}\tsf:color%
\edef#2{\#\tsf:color}%
}
\Hinput{xcolor}
\endinput
La solución era necesaria en el\get!HColor
macro, llamaba a una secuencia de control que contenía el nombre del color sin verificar si existía. Como no existe para este tipo de especificación, el parámetro para esa secuencia de control termina en el documento, en lugar de ser consumido.
Este es el resultado: