我发现为了使用 tikz 和 tex4ht 生成 HTML,我需要执行以下操作:
\def\pgfsysdriver{pgfsys-tex4ht.def}
\usepackage{tikz}
我还需要使用 pdflatex 从同一个 tex 文件生成 PDF,但这会导致上述错误\def
。
有没有办法将其def
从 pdflatex 中排除?
答案1
htlatex
tex4ht
在类的末尾加载包。因此\@ifpackageloaded
可以用来检测 TeX4ht。如果在类内部使用,则tex4ht
尚未加载。然后可以通过 定义的 来检测 TeX4ht 。htlatex
\HCode
htlatex
\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}