我有一个目录,其中有以下.tex
文件:
\documentclass[fontsize=16pt, paper=letter]{scrartcl}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\begin{document}
\title{A test \LaTeX to HTML page}
\maketitle
\section{Section One}
Hello world. Here is some mathematics:
\begin{equation}
x + y = 3
\end{equation}
\end{document}
然后,我使用以下命令运行python脚本:
import subprocess
subprocess.call(["make4ht", "A:/test_tex_sources/test_article.tex"])
当调用该命令时,出现以下错误:
) (a:/texlive/2015/texmf-dist/tex/generic/tex4ht/tex4ht.sty
--- needs --- tex4ht A:/test_tex_sources/test_article ---
A:/test_tex_sources/test_article.tmp: Forbidden to open for writing
! I can't write on file `A:/test_tex_sources/test_article.tmp'.
l.966 \immediate\openout15=\jobname.tmp
(Press Enter to retry, or Control-Z to exit; default file extension is `.tex')
Please type another output file name:
另一方面,如果我提供以下 python 脚本:
import subprocess
subprocess.call(["make4ht", "test_article.tex"])
一切正常!此外,如果我通过命令行而不是 Python 运行以下命令:
make4ht "A:/test_tex_sources/test_article.tex"
然后再说一遍,一切正常。
这是为什么?
答案1
这是 中的一个错误make4ht
,当指定文档的完整路径时,它会为 LaTeX 构建错误-jobname
。对 LaTeX 的命令调用如下:
latex -jobname=$input "tex4ht.sty loading,\input $tex_file"
在你的样本中,
latex -jobname=A:/test_tex_sources/test_article "tex4ht.sty loading,\input A:/test_tex_sources/test_article.tex"
正确的做法是
latex -jobname=test_article "tex4ht.sty loading,\input A:/test_tex_sources/test_article.tex"
所以jobname
应该没有目录路径
我已经修复了制作4小时来源,因此您可以使用开发版本,直到我发布修复 CTAN 更新