将 tikz 与 tex4ht 和 pdflatex 一起使用

将 tikz 与 tex4ht 和 pdflatex 一起使用

我发现为了使用 tikz 和 tex4ht 生成 HTML,我需要执行以下操作:

\def\pgfsysdriver{pgfsys-tex4ht.def}
\usepackage{tikz}

我还需要使用 pdflatex 从同一个 tex 文件生成 PDF,但这会导致上述错误\def

有没有办法将其def从 pdflatex 中排除?

答案1

htlatextex4ht在类的末尾加载包。因此\@ifpackageloaded可以用来检测 TeX4ht。如果在类内部使用,则tex4ht尚未加载。然后可以通过 定义的 来检测 TeX4ht 。htlatex\HCodehtlatex

\makeatletter
\@ifpackageloaded{tex4ht}{%
  \def\pgfsysdriver{pgfsys-tex4ht.def}%
}{%
  % only needed inside a class
  \begingroup\expandafter\expandafter\expandafter\endgroup
  \expandafter\ifx\csname HCode\endcsname\relax
  \else
    \def\pgfsysdriver{pgfsys-tex4ht.def}%
  \fi
}
\makeatother
\usepackage{tikz}

相关内容