我使用 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>