在文件名包含空格的文档上调用 htlatex

在文件名包含空格的文档上调用 htlatex

我正在尝试构建一个文档来htlatex输出.odt文件,但我的文档的文件名中有空格。而且,ashtlatex在引号之间接受三组参数,我似乎找不到让它接收带空格的文件名的语法。

我试过了:

htlatex my\ document.tex "xhtml,ooffice" " -cmozhtf" " -coo"
htlatex 'my document.tex' "xhtml,ooffice" " -cmozhtf" " -coo"
htlatex "my document.tex" "xhtml,ooffice" " -cmozhtf" " -coo"

一切都无济于事。

这里的空格真的不太好用吗?还是我忽略了某些显而易见的东西?


my document.tex我正在运行 Linux Mint 机器,并在具有权限的同一目录中发出命令。

考虑到如果我运行pdflatex "my document.tex"一切都按预期正常进行,我假设这是特定于htlatex命令语法的东西,因此(除非我的假设被证明是错误的),关于主题。

错误的关键部分是:

! I can't find
file `my'.

答案1

编辑:我已经在开发版本中修复了这个问题制作4小时


htlatex默认情况下不支持空格。它只是一个 shell 或批处理脚本,具体取决于操作系统,它会调用许多其他程序,每个程序对文件名中的空格及其转义的处理可能不同。正如 Coby 所建议的,您可以尝试运行

htlatex "\"my document.tex\"" "xhtml,ooffice" " -cmozhtf" " -coo"

这将失败

tex4ht -f/"my 
  document.tex" 
  -i~/tex4ht.dir/texmf/tex4ht/ht-fonts/ 
  -cmozhtf 
--- warning --- Can't find/open file `document.dvi'
--- error --- Can't find/open file `document.dvi'

您可以尝试直接运行tex4ht命令:

tex4ht -cmozhtf "my document.dvi"

这似乎有效。下一步是运行命令t4ht,它将中间文件打包到生成的 ODT 文件中:

t4ht -coo "my document.dvi"

此命令运行许多外部命令并且失败:

System call: mkdir sxw-my document.dir       
mkdir: adresář „sxw-my“ nelze vytvořit: File exists
--- Warning --- System return: 256 
...
system call: mv    "my document"-styles.4oy         sxw-my document.dir/styles.xml
mv: cíl 'document.dir/styles.xml' není adresářem        
--- Warning --- System return: 256
...
mv: nelze získat informace o 'document.odt': No such file or directory
--- Warning --- System return: 256

这意味着无论如何转义,空格都不能用于 ODT 输出,最好避免使用它们。

顺便说一句,最好使用制作4小时对于tex4ht调用,它有许多附加功能,例如直接支持 ODT 输出,使用

make4ht -f odt filename.tex

它还可以使用小技巧来支持带空格的文件名。将以下文件另存为my_build.mk4

local escaped = settings.input:gsub(" ", "_")
set_settings {latex_par = '-jobname=' ..escaped, tex_file = '"' ..settings.tex_file ..'"', input = escaped }

它会将生成的文件名中的空格替换为下划线,因此它适用于所有调用的命令。使用以下命令调用它

make4ht -f odt -e my_build.mk4 "my document.tex"

答案2

这似乎是由于htlatex当文件名包含空格时无法正确标记文件名。

添加一对转义引号(即"\"<file>\"")应该可以解决这个问题:

htlatex "\"my document.tex\"" "xhtml,ooffice" " -cmozhtf" " -coo"

相关内容