`make4ht`, `htlatex`:“无法读取日志文件”问题(示例最少)

`make4ht`, `htlatex`:“无法读取日志文件”问题(示例最少)

我有一个简单的 *.tex 文件用于这个问题:

\documentclass[12pt,letterpaper]{article}

\usepackage{lmodern}
\usepackage[T1]{fontenc}

\usepackage{amsmath}

\begin{document}

\title{A test \LaTeX to HTML page}

\section{Section One}
    Hello world. Here is some mathematics:
        \begin{equation}
            x + y = 3
        \end{equation}

\end{document}

答案这个问题教我如何修复使用时遇到的图像质量问题(例如方程式等)htlatex。因此,当我运行:

htlatex test_article.tex

我得到了很好的 HTML 输出。


现在我有兴趣做同样的事情,除了make4ht,但阅读文档后我有一些疑问:

1)为什么htlatex()在过滤器示例中命令重复两次?

local filter = require "make4ht-filter"
local process = filter{"cleanspan", "fixligatures", "hruletohr"}
Make:htlatex()   <--- first time
Make:htlatex()   <--- second time?
Make:match("html$",process)

2)图像转换:文档推荐使用这样的命令:

Make:image("png$",
"dvipng -bg Transparent -T tight -o ${output}  -pp ${page} ${source}")

如何计算${output}${page}${source}?这是自动的吗?还是假设我在某处提供了这些参数?如果是第二种,我应该在哪里提供这些参数?


到目前为止,我已经在中写了以下内容test_article.mk4

local filter = require "make4ht-filter"
local process = filter{"cleanspan", "fixligatures", "hruletohr"}
Make:htlatex()
Make:htlatex()
Make:image("png$",
    "dvipng -bg Transparent -T tight -o ${output}  -pp ${page} ${source}")
Make:match("html$",process)
Make:match("html$", "tidy -m -xml -utf8 -q -i ${filename}")

我运行以下命令(-n用于禁用tex4ht):

make4ht "test_article.tex" -n

...但随后出现以下错误:

----------------------------
t4ht.c (2012-07-25-19:28 kpathsea)
t4ht -p
  test_article.dvi
(a:/texlive/2015/texmf-dist/tex4ht/base/win32/tex4ht.env)
--- warning --- Can't find/open file `test_article.lg'
Parse LG
Cannot read log file: test_article.lg

希望这个错误与我上面提出的一些问题有关。

答案1

1)Make:htlatex运行一次 LaTeX,这与调用运行三次 LaTeX 的脚本不同htlatex。它被调用三次是因为交叉引用和链接。

您可以使用变量来加速编译mode,该变量可以作为命令行参数传递。我通常定义只调用一次的draft模式Make:htlatex,然后使用

make4ht -m 草稿文件名

带有变量的示例构建文件mode

local filter = require "make4ht-filter"
local process = filter{"cleanspan", "fixligatures", "hruletohr"}
if mode == "draft" then
  Make:htlatex()
else
  Make:htlatex()
  Make:htlatex()
  Make:htlatex()
end
Make:image("png$",
"dvipng -bg Transparent -T tight -o ${output}  -pp ${page} ${source}")
Make:match("html$",process)
Make:match("html$", "tidy -m -xml -utf8 -q -i ${filename}")

2)这些参数是自动设置的,图像转换由文件驱动.lg。图像存储在带有扩展名dvi的特殊文件中.idv,它是source参数。每个图像都在独立的页面上,page当前转换的图像的编号也是如此,output是图像名称。

3)不要使用该-n选项,它会禁用从到 的tex4ht转换,这显然不是你想要的dvihtml

相关内容