使用 htlatex 生成简单、无 CSS 的 HTML

使用 htlatex 生成简单、无 CSS 的 HTML

转换文档时htlatex,强调和粗体将转换为随附 CSS 文件中定义的特定样式的跨度。

输入:

\documentclass{scrartcl}

\begin{document}
  Normal text

  \em{Emphasized text}

  \textbf{Bold-faced text}
\end{document}

输出(删除页眉和页脚):

<!--l. 4--><p class="noindent" >Normal text
<!--l. 6--><p class="indent" >  <span 
class="cmti-10x-x-109">Emphasized text</span>
<!--l. 8--><p class="indent" >  <span 
class="cmbxti-10x-x-109">Bold-faced text </span> 

是否可以生成不使用外部 CSS 文件的“纯” HTML?类似这样的内容:

<!--l. 4--><p class="noindent" >Normal text
<!--l. 6--><p class="indent" >  <em>Emphasized text</em>
<!--l. 8--><p class="indent" >  <b>Bold-faced text </b>

这是用于将引用粘贴到另一个已经有 CSS 的网站。

答案1

你必须做两件事:

您可以禁用 css 和丑陋元素的生成,例如

<span 
class="cmti-10x-x-109">Emphasized text</span>

使用一些命令行选项:

htlatex filename "xhtml,NoFonts,-css" 

然后,您必须提供em和的配置textit,因为它们默认仅由 css 处理。

这应该通过自定义配置文件来完成,例如myfonts.cfg

\Preamble{xhtml}
\Configure{emph}{\ifvmode\ShowPar\fi\HCode{<em>}}{\HCode{</em>}}
\Configure{textbf}{\ifvmode\ShowPar\fi\HCode{<b>}}{\HCode{</b>}}
\begin{document}
\EndPreamble

现在你的 htlatex 调用将是

htlatex filename "myfonts,-css,NoFonts"

生成的 HTML

<body 
>
<!--l. 4--><p class="noindent" >Normal text
</p><!--l. 6--><p class="indent" >  <em>Emphasized text</em>
</p><!--l. 8--><p class="indent" >  <b>Bold-faced text</b> </p> 
</body></html> 

所有命令行选项tex4ht均在本文。还有其他关于此系统配置的有趣的文章。

为了摆脱<p class="indent">,您可以将以下内容放入配置文件中:

\Configure{HtmlPar}
{\EndP\Tg<p>}
{\EndP\Tg<p>}
{\HCode{</p>\Hnewline}}
{\HCode{</p>\Hnewline}}

答案2

您可以使用

htlatex myfile.tex "html,css-in"

这会将 css 嵌入到 html 文件中。

请注意,您可能需要执行该命令两次,因为“css-in”选项使用了上一次调用中生成的.css 文件。

相关内容