tex4ht 在寻找 .4ht 文件时会忽略 \input@path?

tex4ht 在寻找 .4ht 文件时会忽略 \input@path?

我的情况是这样的,我有一个LaTeX文件,想用pdflatex和tex4ht编译,其中包含另一个目录中的一个包。

该文件bug.tex包含:

\documentclass{article}

\usepackage{etoolbox}
\csdef{input@path}{{subdir/}}
\usepackage{mypackage}

\begin{document}

Test: \aaa.

\end{document}

该文件subdir/mypackage.sty包含:

\ProvidesPackage{mypackage}
\newcommand\aaa{AAA}

该文件subdir/mypackage.4ht包含:

\renewcommand\aaa{BBB}

当我使用 pdflatex 进行编译时,我得到了Test: AAA.输出。但是当我使用 make4ht 进行编译时,我仍然Test: AAA.得到Test: BBB.

(当包位于工作目录中时,它会按预期工作。)

这向我表明,当使用 tex4ht 时,input@path会发生重新定义,但是当包含包时,tex4ht 不会在其中搜索.4ht文件。

有人能帮助我解决这个问题吗?

当然,您可能认为我这样做是错误的,我应该将包放入我的 texmf 中,或者$TEXINPUTS正确设置,您是对的。但我有一个复杂的项目需要与同事分享,我不能指望他们使用 make,所以如果我可以从 tex 文件中管理所有内容,那就更好了。

答案1

tex4ht 默认不支持\input@path。我刚刚在源代码中添加了支持,因此应该很快就会包含在 TL 中。有必要更改一些无法使用文件修改的核心宏.cfg。因此,在更新可用之前,您可以使用以下解决方法:

\InputIfFileExists{mypackage.4ht}{}{}
\Preamble{xhtml}
\begin{document}
\EndPreamble

\InputIfFileExists命令将搜索\input@path并包含所需文件(如果找到)。

结果:

在此处输入图片描述

相关内容