我有两个系统需要运行 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>