使用 tex4ht 生成未格式化的 html?

使用 tex4ht 生成未格式化的 html?

使用 tex4ht 时,会获得格式化的 html 文件。它使用 css 文件和多个类,例如

<span class="ec-lmbx-10x-x-109">toto</span>

但是,当使用内容管理系统 (CMS)(例如 Joomla)时,不需要这样的格式化类,因为所有格式化都由 CMS 处理。最好使用干净的 html 文件,其中包含 html 标签(例如 < H3>、< H4> 等),但不要为每个标签设置格式化类。

使用 tex4ht 是否能获得这样一个干净的 html 文件,其中没有格式化类,只有格式化的 html 标签?

答案1

编辑:如何产生tex4ht尽可能干净的输出在另一篇文章中描述回答。这个答案是关于进一步清理输出。

有些东西在 中很难修改tex4ht。有时使用xslt样式来修改输出会比较容易。

此片段:

<h3 class="sectionHead"><span class="titlemark">1</span> <a 
 id="x1-10001"></a>hello world</h3>

可以搭配这种风格

<xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      xmlns="http://www.w3.org/1999/xhtml"
      xmlns:xhtml="http://www.w3.org/1999/xhtml"
   >
   <xsl:output omit-xml-declaration = "yes" method="xml" />


<xsl:template match="@*|node()">
    <xsl:copy>
    <xsl:apply-templates select="@*|node()"/>
  </xsl:copy>
</xsl:template>

<xsl:template match="xhtml:h3|xhtml:h4|xhtml:h5">
<xsl:copy> 
<xsl:attribute name="id"><xsl:value-of select="xhtml:a/@id" /></xsl:attribute>
  <xsl:apply-templates />
  </xsl:copy>
</xsl:template>

<xsl:template match="xhtml:h3/xhtml:a|xhtml:h4/xhtml:a|xhtml:h5/xhtml:a" />
<xsl:template match="xhtml:h3/xhtml:span|xhtml:h4/xhtml:span|xhtml:h5/xhtml:span">
<xsl:apply-templates />
</xsl:template>

</xsl:stylesheet>                                          

翻译为

<h3 id="x1-10001">1 hello world</h3>

我使用了id参数,以便可以轻松链接到该部分,

相关内容