\textcolor 与 tex4ht

\textcolor 与 tex4ht

这是关于使用 tex4ht 获取颜色的问题。该问题已讨论过,例如这里,有人提出了建议,但我无法付诸实践。我在那里发表了评论,有人建议我提出一个新问题,所以这里是:

您能否给出一个带有可用语法的配置文件的有效示例\Configure{HColor}{colorname}{csscode},我无法\textcolor{red}{blah}正确翻译它。

更准确地说,如果我有:

\documentclass[12pt]{article}

\usepackage[latin9]{inputenc}
\usepackage{amsthm}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage[unicode=true]
 {hyperref}
\usepackage{breakurl}

\usepackage{xcolor}


\usepackage[english]{babel}

\begin{document}

\paragraph{\textcolor{red}{WARNING}}

\end{document}

然后我用 tex4ht 编译我得到

    <?xml version="1.0" encoding="iso-8859-1" ?>  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->   <html xmlns="http://www.w3.org/1999/xhtml"   >  <head>    <title></title>  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />  <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />  <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />  <!-- html,xhtml,-css,NoFonts -->  <meta name="src" content="post2.tex" />  <meta name="date" content="2017-09-07 08:56:00" />  </head>
<body  > <p style="text-align:justify"><span class="paragraphHead"><a   id="x1-1000"></a><span id="textcolor1">WARNING</span></span>    </p>    </body></html>                                                                                

在浏览器上看起来不是红色。请注意命令

<span id="textcolor1">WARNING</span></span>

我的 htlatex 选项是 xhtml、-css、NoFonts

答案1

如果您使用xcolor包,则不需要配置任何东西,颜色应该可以立即使用:

\documentclass{article}
\usepackage{xcolor}
\definecolor{mycolor}{rgb}{1,0.2,0.2}
\begin{document}

Helo world \textcolor{red}{blah}. And I can use \textcolor{mycolor}{my color}.
\end{document}

在此处输入图片描述

如果你确实想在文件中重新定义它.cfg,你需要使用有效的 CSS 颜色声明,例如#0012FF。你必须转义该#字符:

\Preamble{xhtml}
\Configure{HColor}{mycolor}{\#0012FF}
\begin{document}
\EndPreamble

在此处输入图片描述

编辑:

tex4ht将颜色保存在 CSS 文件中。因为您不想使用 CSS 文件,所以我们必须使用一个技巧,将颜色直接保存在style彩色文本周围的元素属性中。试试这个.cfg文件:

\Preamble{xhtml}
\makeatletter
\Configure{textcolor}{\HCode{<span style="color:\#\tsf@color;">}}{\HCode{</span>}}
\begin{document}
\EndPreamble

% redefine \textcolor command
\let\oldtextcolor\textcolor

\renewcommand\textcolor[2]{%
  % we need to convert the current color to hexadecimal form usable in the style attribute
  % the \tsf@color macro is used in the \Configure{textcolor} configuration to insert the
  % CSS color
  \extractcolorspec{#1}{\tsf@color}%
  \expandafter\convertcolorspec\tsf@color{HTML}\tsf@color%
  % call the original command
  \oldtextcolor{#1}{#2}%
}%
\makeatother

它生成以下 HTML:

<p class="noindent" >Helo world <span style="color:FF0000;">blah</span>. And I can use <span style="color:FF3333;">my color</span>. </p> 

相关内容