tex4ht 中的图像文件名

tex4ht 中的图像文件名

我有两个系统需要运行 tex4ht/make4ht。它们是不同版本的 Ubuntu,我相信是 18.04 LTS 和 19.04。我使用的是make4ht来自 github 的最新版本,但 tex4ht 的版本是 apt 包管理器中可用的任何版本。

无论如何,tex4ht 的不同版本(大概)意味着当doc.tex使用图像进行编译时fig.eps,包含在 HTML 输出中的图像doc0x.png在一个系统(旧系统)上被调用,而fig.png在另一个系统上被调用。

我并不特别在意这里的命名约定。但我希望它是一致的,否则我将需要编写一个比现有的 Makefile 更糟糕的 Makefile。

那么,有没有办法让我可以返回到doc0x.png新版本的约定,或者激活fig.png旧版本的约定?我已阅读 tex4ht FAQ,但仍然一无所知。

答案1

默认情况下应使用原始图像文件。您描述的行为是 Graphics 包最近更新导致的问题。我已更新 TeX4ht 源并修复此问题,因此应该很快就会在 TL 中修复此问题。同时,您可以使用以下graphics.4ht文件:

% graphics.4ht (2019-10-13-23:30), generated from tex4ht-4ht.tex
% Copyright 1997-2009 Eitan M. Gurari
% Copyright 2009-2019 TeX Users Group
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
% version 1.3c of this license or (at your option) any
% later version. The latest version of this license is in
%   http://www.latex-project.org/lppl.txt
% and version 1.3c or later is part of all distributions
% of LaTeX version 2005/12/01 or later.
%
% This work has the LPPL maintenance status "maintained".
%
% The Current Maintainer of this work
% is the TeX4ht Project <http://tug.org/tex4ht>.
%
% If you modify this program, changing the
% version identification would be appreciated.

   \expandafter\let\csname includegraphics \endcsname\includegraphics
\def\includegraphics{\expandafter\protect\csname includegraphics \endcsname}
\def\grf:removequote"#1"{#1}
\def\grf:thrashname#1\relax{}
\def\grf:fixquotes{%
    \@ifnextchar"{\edef\Gin@base{\expandafter\grf:removequote\Gin@base}\grf:thrashname}{\grf:thrashname}}
\def\grp:warning#1{\no:bound#1(no BoundingBox)//\:warning{#1}}
\def\no:bound#1(no BoundingBox)#2//{\gdef\noBoundingBox{#2}\ifx
   \noBoundingBox\empty \global\let\noBoundingBox\:UnDef\fi}
\let\:tempc\Gin@setfile
\pend:defIII\:tempc{\a:graphics
    \global\let\noBoundingBox\:UnDef
    \let\@latex@error\grp:warning \let\@ehc\empty}
\append:defIII\:tempc{\b:graphics\grf:gobble\leavevmode grf:gobble}
\HLet\Gin@setfile\:tempc
\NewConfigure{graphics*}[2]{%
   \expandafter\ifx \csname :.#1\endcsname\relax
      \pend:defIII\n:Gin@setfile:{\csname :.#1\endcsname}%
   \fi
   \def\:temp{#2}\ifx \:temp\empty
     \expandafter\let\csname :.#1\endcsname\:UnDef
   \else
     \expandafter\def\csname :.#1\endcsname{\edef\:temp{\detokenize{.#1}}%
        \ifx \:temp\Gin@ext  \let\a:graphics\relax
           \def\G:cnfg{#2}\expandafter\grf:gobble \fi}%
   \fi }
\NewConfigure{graphics}{2}
\def\grf:gobble#1\leavevmode#2grf:gobble{%
   \PictureOff\expandafter\grf:fixquotes\Gin@base\relax#1\PictureOn \G:cnfg \let\G:cnfg\relax}
\let\G:cnfg\relax

\let\old:GreadEps\Gread@eps
\def\Gread@eps#1{\old:GreadEps{"#1"}}
\def\if:boundingbox#1#2{\ifdim\Gin@req@width=\Gin@nat@width\ifx\noBoundingBox\UnDefined#1\else#2\fi\else#1\fi}

\Hinput{graphics}
\endinput

以下是一个示例:

% https://tex.stackexchange.com/q/512238/2891

\documentclass{article}
\usepackage{graphicx}

\begin{document}

\includegraphics{example-image.png}

\includegraphics{epssample.eps}

\end{document}

生成的 html 内容如下:

<!--l. 8--><p class="noindent" ><img 
src="example-image.png" alt="PIC"  
width="401" height="301"  />
</p><!--l. 10--><p class="indent" >   <img 
src="epssample.png" alt="PIC"  
width="321" height="240"  />
</p>

相关内容