这是关于使用 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>