设置很简单。我有一个文件 report.tex,其中包含来自某个文件夹的图像。我将 htlatex 的输出发送到一个单独的目录。htlatex 将所有图像和 HTML 复制到该目录。但问题是,现在 HTML 中的所有链接都坏了,因为链接是相对于 report.tex 的原始位置生成的,而不是相对于 HTML 现在所在的位置生成的。
在图片中,我有这个
report.tex ...\includegraphics{e1/image.png}
|
+--------------------------+
| |
/e1/image.png /report/
report.htm ....<img src="e1/image.png"
image.png
可以看出问题所在。HTML 认为src=
它位于 .tex 文件的原始位置。因此,我最终编辑 HTML 文件修复链接,方法是在每个图像源链接中添加“../”或删除“e1/”(因为图像是复制的)!
我搜索了很久,没找到解决这个问题的办法。有人知道解决办法吗?
这是最小的工作示例:
\documentclass{article}%
\usepackage{graphicx}
\begin{document}
\includegraphics{e1/image.png}
\end{document}
这是使用的命令
mkdir report; htlatex report.tex "htm" "" -dreport
现在查看文件夹 report/report.htm 时发现了问题。如果不手动修复链接,图像就不会显示。
这样做是有效的:
htlatex report.tex "htm"
现在 report.htm 可以按预期显示图像。但我希望所有输出都转到单独的文件夹。
我正在使用 TeXlive 2012 Debian 包。
答案1
这是因为 中的错误t4ht
。这是一个转换图像、运行系统命令、生成 css 和复制文件的应用程序。对于文件复制,它使用系统复制命令,因此在您的示例中它类似于:
cp e1/image.png outdir/.
或者
copy e1/image.png outdir/.
在窗户上。
此命令不会在输出目录中创建子目录,因此所有生成的文件都直接保存在此目录中。
你可以尝试我的新项目,制作4小时,尝试生成正确的子目录:
make4ht -d outdir -u report.tex
你必须把脚本放到你的本地 texmf 树:
texmfhome/scripts/lua/make4ht
并建立符号链接texmf/scripts/lua/make4ht/make4ht
或创建运行此文件的 shell 脚本。