我现在完全搞不清楚如何将 tikz 与 tex4ht 一起使用,因为似乎有一些最新的变化,而且无法弄清楚如何让它工作。
这是一个 MWE,我想用 make4ht 在 mathjax 模式下编译它。但与 PDF 相比,输出看起来不正确
\documentclass[11pt]{article}
\usepackage{tikz}
\usepackage{amsmath}
\begin{document}
\begin{tikzpicture}
\coordinate[label =above:$0$, label =below:{$u=0$}] (A) at (0,0);
\coordinate[label =above:$\pi$, label =below:{$u_x=0$}] (B) at (4,0);
\draw (A) -- node[above] {$u_t = k u_{xx} $} node[below] {$f(x)$} ++ (B);
\node at (A)[circle,fill,inner sep=1pt]{};
\node at (B)[circle,fill,inner sep=1pt]{};
\end{tikzpicture}
\end{document}
现在lualatex
生产这个
和make4ht foo.tex "mathjax"
或者 make4ht foo.tex
产生这个
数学看起来不如 PDF 好。如果我这样做,make4ht -ulm foo.tex "mathjax"
它会产生这样的结果
改变 MWE 以拥有这个
\documentclass[11pt]{article}
\usepackage{tikz,graphicx,tikz-dependency}
\def\pgfsysdriver{pgfsys-tex4ht.def}
\usepackage{amsmath}
\begin{document}
%as before
\end{document}
产生相同的输出
另外添加
\ifdefined\HCode
\def\pgfsysdriver{pgfsys-tex4ht.def}
\fi
没有效果。
我在看使用带有 tikz 依赖项的 htlatex但给出的答案太复杂了,无法理解。它需要外部工具才能工作。inkscape 等等。我不想用。
是什么最簡單现在有什么方法可以让 tikz 与 make4ht 一起工作吗?我正在使用 TL 2018。
TL 2019 中 tex4ht 的情况会发生变化吗?
答案1
如果你使用以下命令“正确”编译此文件tex4ht然后它生成预期的 HTML 文件:
这里的“正确”意味着您需要通过添加以下行来告诉 pgf 要使用的“正确”驱动程序:
\def\pgfsysdriver{pgfsys-dvisvgm4ht.def}
到 tex 文件的顶部。如果你使用的是 TeXLive 2019,那么你将拥有此文件,因为它包含在網上測試软件包,但这个驱动程序文件实际上是由 tex4ht 维护者之一 Michal Hoftich 编写的。您可以从以下位置下载此驱动程序的最新版本https://github.com/michal-h21/dvisvgm4ht。
修改后的 MWE 如下:
\documentclass[11pt]{article}
\ifdefined\HCode
\def\pgfsysdriver{pgfsys-dvisvgm4ht.def}
\fi
\usepackage{tikz}
\usepackage{amsmath}
\begin{document}
\begin{tikzpicture}
\coordinate[label =above:$0$, label =below:{$u=0$}] (A) at (0,0);
\coordinate[label =above:$\pi$, label =below:{$u_x=0$}] (B) at (4,0);
\draw (A) -- node[above] {$u_t = k u_{xx} $} node[below] {$f(x)$} ++ (B);
\node at (A)[circle,fill,inner sep=1pt]{};
\node at (B)[circle,fill,inner sep=1pt]{};
\end{tikzpicture}
\end{document}
编译此文件的最简单方法是tex4ht是使用 Michal Hoftich 的制作4小时:
make4ht 文件名