使用不同的代码运行 tex4ht 需要 `\ifhtlatex`

使用不同的代码运行 tex4ht 需要 `\ifhtlatex`

使用 LaTeX 在编辑器中撰写文本要容易得多,但客户经常要求提供 Word 文件。

tex4ht 做得很好,它从 tex 文件生成 html,使用起来很方便。但有些软件包会导致错误,例如 Linux Libertine 的 § 符号。是否有命令让 pdflatex 查看它是否由 htlatex 运行?

我想写一些类似的东西

 \ifhtlatex
\usepackage{lmodern}
\else 
\usepackage{libertine}
\fi

还有更多东西无法与 htlatex 配合使用,例如命名和计数展览并在文档末尾生成展览列表的机制。所以类似的东西\ifhtlatex会很有帮助。

==========

我不想加载 tex4ht 包本身,所以我不知道如何问题可能会有帮助……

答案1

htlatex通过文档类末尾调用的tex4ht钩子加载包。因此,您可以测试此包\@documentclasshook \documentclass

\documentclass[...]{...}
\makeatletter
\newif\ifhtlatex
\@ifpackageloaded{tex4ht}{\htlatextrue}{\htlatexfalse}
\makeatother

\documentclass\HCode可以检查由 定义的宏htlatex,例如:

\newif\ifhtlatex
\ifx\HCode\UnDeFiNeD
  \htlatexfalse
\else
  \htlatextrue
\fi
\documentclass{...}

相关内容