htlatex 洁净工作环境

htlatex 洁净工作环境

当我创建文件的 PDF 时main.tex,我会这样做:

pdflatex -output-directory=build main.tex

这样,PDF 文件和在此过程中生成的所有其他文件(suff)都会进入该build文件夹。

我刚刚学习了如何从 创建 HTML main.tex,方法是:

htlatex main.tex

它会生成一个main.html文件和许多其他文件。

有没有办法让它更干净一点?也许建一个专用文件夹?

答案1

您也可以传递-output-directory给:htlatex

htlatex filename xhtml "" "" " -output-directory=build"

这种方法的问题在于它在当前目录中tex4ht搜索生成的文件,因此失败:dvi

Output written on build/filename.dvi (1 page, 9632 bytes).
Transcript written on build/filename.log.
----------------------------
tex4ht.c (2012-07-25-19:36 kpathsea)
tex4ht -f/filename 
  -i~/tex4ht.dir/texmf/tex4ht/ht-fonts/ 
--- warning --- Can't find/open file `filename.dvi'
--- error --- Can't find/open file `filename.dvi'

解决方案是使用,它比make4ht调用方式更强大。tex4hthtlatex

使用make4ht,您可以使用构建文件来修改编译参数并将文件移动到正确的目标。将以下代码保存为mybuild.mk4

local outdir = "build"
local newinput = outdir .."/" ..settings.input
settings.latex_par= "-output-directory=".. outdir 
settings.input = newinput

Make:match(".css$", "mv ${filename} ".. outdir .."/${filename}")
Make:match(".tmp$", "rm ${filename}") 

构建文件是Lua脚本,输出目录名保存在outdir变量中,然后我们修改默认设置以使用outdirsettings.latex_par包含LaTeX的参数,settings.input是文件的位置dviMake:match用于修复由生成的某些文件的位置tex4ht,这些文件不遵循-output-directory选项。第一个将css文件移动到输出目录,因为它被写入tex4ht当前目录。如​​果您使用Windows,请将其替换mvmove。第二个删除filename.tmp文件。同样,如果您使用Windows,请将其替换rmdel

您可以使用以下方式编译该文档

make4ht -e mybuild.mk4 filename

输出结构如下:

$ ls -R1
.:
build
filename.tex
mybuild.mk4

./build:
filename.aux
filename.css
filename.dvi
filename.html
filename.idv
filename.lg
filename.log
filename.tmp
filename.xref
filename.4ct
filename.4tc

相关内容