指定 htlatex 的输出目录

指定 htlatex 的输出目录

我想知道如何指定 htlatex 生成的 html/css 的输出目录。

我的调用如下:

htlatex main.tex

这些文件生成在 main.tex 所在的同一目录中。但我更愿意将其写入当前目录 (./html) 中包含的名为 html 的文件夹。

我读过有关添加"" "-d/mypath/"参数的信息,但没有成功。

有人能帮帮我吗?我在获取文档方面也遇到了一些问题,因为使用-h或调用 htlatex--help不起作用。

http://tug.org/applications/tex4ht/mn.html也没什么用。

答案1

经过一番调查发现,这htlatex确实是一个sh脚本文件,至少在我的系统中是这样的:

$ which htlatex
/usr/texbin/htlatex
$ file /usr/texbin/htlatex
/usr/texbin/htlatex: symbolic link to `../../texmf-dist/scripts/tex4ht/htlatex.sh'

该脚本的内容如下:

$ cat /usr/texbin/htlatex
#!/bin/sh
        latex $5 '\makeatletter\def\HCode{\futurelet\HCode\HChar}\def\HChar{\ifx"\HCode\def\HCode"##1"{\Link##1}\expandafter\HCode\else\expandafter\Link\fi}\def\Link#1.a.b.c.{\g@addto@macro\@documentclasshook{\RequirePackage[#1,html]{tex4ht}}\let\HCode\documentstyle\def\documentstyle{\let\documentstyle\HCode\expandafter\def\csname tex4ht\endcsname{#1,html}\def\HCode####1{\documentstyle[tex4ht,}\@ifnextchar[{\HCode}{\documentstyle[tex4ht]}}}\makeatother\HCode '$2'.a.b.c.\input ' $1
        latex $5 '\makeatletter\def\HCode{\futurelet\HCode\HChar}\def\HChar{\ifx"\HCode\def\HCode"##1"{\Link##1}\expandafter\HCode\else\expandafter\Link\fi}\def\Link#1.a.b.c.{\g@addto@macro\@documentclasshook{\RequirePackage[#1,html]{tex4ht}}\let\HCode\documentstyle\def\documentstyle{\let\documentstyle\HCode\expandafter\def\csname tex4ht\endcsname{#1,html}\def\HCode####1{\documentstyle[tex4ht,}\@ifnextchar[{\HCode}{\documentstyle[tex4ht]}}}\makeatother\HCode '$2'.a.b.c.\input ' $1
        latex $5 '\makeatletter\def\HCode{\futurelet\HCode\HChar}\def\HChar{\ifx"\HCode\def\HCode"##1"{\Link##1}\expandafter\HCode\else\expandafter\Link\fi}\def\Link#1.a.b.c.{\g@addto@macro\@documentclasshook{\RequirePackage[#1,html]{tex4ht}}\let\HCode\documentstyle\def\documentstyle{\let\documentstyle\HCode\expandafter\def\csname tex4ht\endcsname{#1,html}\def\HCode####1{\documentstyle[tex4ht,}\@ifnextchar[{\HCode}{\documentstyle[tex4ht]}}}\makeatother\HCode '$2'.a.b.c.\input ' $1
        tex4ht -f/$1  -i~/tex4ht.dir/texmf/tex4ht/ht-fonts/$3
        t4ht -f/$1 $4 ## -d~/WWW/temp/ -m644

因此,它由一系列调用组成latextex4ht最后是t4ht。显然,该脚本需要 5 个参数($1$5),从它们的使用中,我们可以或多或少地推断出它们的功能:

  • $1是包含源文件的名称latex。它会传递给链中的所有工具。
  • $2\HCode是传递给为该命令定义的神秘命令的参数的一部分latex,我没有尝试理解其任务。我将忽略此参数,直到比我更有能力的人能够发现其功能
  • $3tex4ht作为选项的一部分传递-i,从而用于指定字体文件夹。
  • $4被传递给t4ht所以看起来像是一个我们可以为其指定额外开关的地方t4ht
  • $5被传递给 latex,因此它看起来像是一个我们可以为其指定附加开关的地方latex

使用t4ht --help我们发现-d这里可以使用选项来指定目标目录,所以我尝试了:

$ htlatex Example.tex "" "" -d/tmp/

并且成功了。结果转到/tmp/,但请注意,这只影响最后一步。第一步仍然使用当前目录,因此所有中间文件和辅助文件仍在那里。我猜你不能用开关摆脱它们。

相关内容