如何在单个 .css 文件中覆盖 tex4ht 的 CSS?

如何在单个 .css 文件中覆盖 tex4ht 的 CSS?

我正在尝试使用 CSS 来设置 tex4ht 输出的样式,以便制作一本 Kindle 书。例如,我想verse使用.verse { margin-left:2.5em; white-space:normal; }

Kindle 指南要求使用单个 CSS 文件。当我\CssFile在 .cfg 文件中使用时,CSS 位于开始.css 文件的,因此它被 tex4ht 生成的 CSS 覆盖。我可以手动编辑它以将我的 CSS 移到末尾,但我希望找到一种尽可能少手动步骤的方法。

更改 tex4ht css 类似乎问的是同样的问题,但最终却得到了截然不同的答案。

抱歉没有发布 MWE,但如果有必要,我愿意这样做。

答案1

有关\CssFile用法的一些信息tex4ht 文档

您可以在可选参数中包含 css 文件,多个文件必须用逗号分隔。 生成的 css 行的位置tex4ht可以用 line in/* css.sty */格式指定。 请注意,您必须将\CssFileAFTER放在文件begin{document}.cfg

现在有一些示例,我们有两个 css 文件sample.css

body{color:green}

hello.css

/* css.sty */
body{width:30em;margin: 0 auto;}

然后我们可以代入sample.cfg

\Preamble{xhtml}
\begin{document}
\CssFile[sample.css,hello.css]
\EndCssFile
\EndPreamble

因为行在/* css.sty */第二个文件中,css所以生成的tex4ht行放在这两个文件的内容之间:

/* sample.css from ahoj.tex (TeX4ht, 2014-09-20 17:00:00) */
  body{color:green}
/* start css.sty */
.cmtt-10{font-family: monospace;}
p.noindent { text-indent: 0em }
...
lot of lines
...
/* end css.sty */
body{width:30em;margin: 0 auto;}

最后警告:不要将任何 css 文件命名为与TeX文件相同的名称,否则它将被覆盖。

相关内容