在 make4ht 中更改生成的图像目录

在 make4ht 中更改生成的图像目录

我使用 make4ht 构建系统将 .tex 文件转换为 HTML。转换过程中生成了许多 svg 文件。这些文件与 HTML 文件位于同一目录中。有没有办法将生成的文件移动到子目录中

答案1

您可以使用选项设置图像的基本目录imgdir。可以像这样使用:

make4ht filename.tex "imgdir:img/"

但是它不会复制图像,它只是将目录放入 HTML 文件中的图像路径中。您可以使用构建文件将图像移动或输出到正确的目录中make4ht,如下所示:

local imgdir = "img/"

settings_add {
  tex4ht_sty_par =",imgdir:" .. imgdir
}

Make:image("svg$","dvisvgm --exact -c 1.4,1.4 -n -o " .. imgdir .. "${output} -p ${page} ${source}")

输出目录设置在imgdir变量中。然后在settings_add函数中使用它来传递imgdir选项,因此您无需在命令行上传递它。Make:image函数声明应该用于创建 SVG 图像的命令。您imgdir 也可以在此处传递变量。您需要在运行此构建文件之前创建图像目录!

用途:

make4ht -e build.lua filename.tex

以下是一个例子:

\documentclass{article}
\usepackage{tikz}
\begin{document}
Hello image

\begin{tikzpicture}
\draw[gray, thick] (-1,2) -- (2,-4);
\draw[gray, thick] (-1,-1) -- (2,2);
\filldraw[black] (0,0) circle (2pt) node[anchor=west]{Intersection point};
\end{tikzpicture}   
\end{document}

它生成一个 HTML 结果:

<!-- l. 4 --><p class='noindent'>Hello image
</p><!-- l. 6 --><p class='indent'>   <img alt='Intersection point
' src='img/sample0x.svg' />
</p>

在此处输入图片描述

相关内容