目前使用 tikz 和 tex4ht 的状态如何?

目前使用 tikz 和 tex4ht 的状态如何?

我现在完全搞不清楚如何将 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生产这个

Mathematica 图形

make4ht foo.tex "mathjax" 或者 make4ht foo.tex产生这个

Mathematica 图形

数学看起来不如 PDF 好。如果我这样做,make4ht -ulm foo.tex "mathjax"它会产生这样的结果

Mathematica 图形

改变 MWE 以拥有这个

\documentclass[11pt]{article}
\usepackage{tikz,graphicx,tikz-dependency}
\def\pgfsysdriver{pgfsys-tex4ht.def}
\usepackage{amsmath}
\begin{document}
%as before
\end{document}

产生相同的输出

Mathematica 图形

另外添加

\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 文件名

相关内容