我已经使用它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 environment
和colored 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