彩色环境文本未在 htlatex 中转换

彩色环境文本未在 htlatex 中转换

我已经使用它pdflatex来获取color环境文本。但是当使用htlatex颜色时,并environment content (Note)没有转换。请参阅下面的 MWE:

\documentclass{book}
\usepackage{xcolor}
\definecolor{midblue}{cmyk}{1,0,0.16,0.09}
\newcommand{\notefont}{\small\sffamily\color{midblue}}
\newenvironment{notelist}{%
\begin{itemize}
   \item[\label={\notefont Note:}]
}{%
 \end{itemize}%
}

\begin{document}

\chapter{Chapter Title Here}
\begin{notelist}
\item A template for fractions may be obtained by pressing.
\end{notelist}
\begin{notelist}
\item For all calculations you can also use the \textbf{Scratchpad}.
\item For details of the use of the Scratchpad and general use of the calculator with
operating system 3.0 refer to the Appendix Computer Algebra System (TI-Nspire).
\end{notelist}
\end{document}

如何获取color environmentcolored framebox环境htlatex

答案1

颜色支持,tex4ht但是有两点:

\color不支持命令:

\Verb!\color{red}! 指令可能会有问题,因为它本身并不能确定要着色的文本的范围。因此,其效果可能会跨越逻辑边界。这违背了标记语言的哲学,尤其是 XML 的哲学。

可以实现 \Verb!\color{...}! 功能,但我不确定这样做是否可取。我认为最好让用户对代码片段使用 \Verb!\textcolor{red}{...}! 形式的命令。

所以最好使用\textcolor

每种颜色都必须用tex4ht命令以如下形式声明:

 \Configure{HColor}{colorname}{csscode}

现在回到你的代码。我认为:

\begin{itemize}
   \item[\label={\notefont Note:}]
}{%

是错误的,您正在使用作为参数调用\label命令=。应该是:

\begin{itemize}
   \item[{\notefont Note:}]
}{%

但由于某些原因,这种方法不起作用tex4ht。但也没有理由使用\item这种方式,您可以这样定义notelist环境:

\definecolor{notecolor}{cmyk}{1,0,0.16,0.09}
\newenvironment{notelist}{%
  \leavevmode\noindent{\notefont\textcolor{notecolor}{Note:}}
  \begin{itemize}
}{%
 \end{itemize}%
}

我们notecolor在这里定义了要使用的颜色,因为我认为使用逻辑名称更好,这样以后您就可以轻松地更改颜色。现在您需要创建一个自定义配置文件并放入以下声明:

\Preamble{xhtml}

\newcommand\colortohtml[2]{%
\extractcolorspec{#1}{\tmp}%
\expandafter\convertcolorspec\tmp{HTML}#2
}
\newcommand\declarehcolor[1]{%
\colortohtml{#1}\tmp%
\Configure{HColor}{#1}{\#\tmp}%
}
\declarehcolor{notecolor}
\begin{document}
\EndPreamble

xcolor这里使用包中的命令将命名的颜色转换为 rgb 值。请注意,当您使用cmyk颜色时,由于转换,生成的颜色可能会略有不同。

现在使用以下方法编译文件

htlatex filename cfgname

在此处输入图片描述

相关内容