htlatex 与 pdfpages 包中插入随机图像

htlatex 与 pdfpages 包中插入随机图像

我正在尝试通过以下方式生成 HTML 输出

htlatex <filename>

但当pgfpages包含包时,我之前会收到一些随机图像内容之后。结果HTML在 Safari 中查看如下:

在此处输入图片描述

我查看了一下pdfpages.sty,发现有一个\AtBeginDocument,但不知道它是如何将这些随机图像插入到内容之前的。此外,也没有找到,\AtEndDocument所以无法理解内容处理后发生了什么。

代码:

\documentclass{article}
\usepackage{pdfpages}

\begin{document}
   % \includepdf{foo.pdf}% Cover page
    
    Some content following cover page.
\end{document}

答案1

pdfpages显然是导致加载失败的包之一tex4ht。此类包的其他一些示例是fontspec。唯一的解决方案是在加载时阻止使用此类包tex4ht,并为文档中使用的宏提供替代定义。

为了简化这个过程,我创建了简单的包,称为alternative4ht.sty

\ProvidesPackage{alternative4ht}

\newcommand{\altusepackage}[2][]{%
    \ifx\HCode\relax%
    \usepackage[#1]{#2}%
    \else%
    \IfFileExists{#2-alt4ht.sty}{%
      \usepackage[#1]{#2-alt4ht}%
    }{\typeout{alternative4ht: no patch file for #2}}
    \fi%
}
\endinput

定义了一个命令,\altusepackage它使用普通 LaTeX 加载包,但使用tex4ht它来加载替代定义,如果不存在这样的替代定义,它什么也不做。

您可以修改您的来源:

\documentclass{article}
\usepackage{alternative4ht}
\altusepackage{pdfpages}

\begin{document}
   %\includepdf{foo.pdf}% Cover page

    Some content following cover page.
\end{document}

\includepdf您可以在文件中提供定义pdfpages-alt4ht.sty

\ProvidesPackage{pdfpages-alt4ht}
\RequirePackage{graphicx}

\newcommand\includepdf[2][]{%
    \includegraphics{#2}
}

\endinput

并且您需要使用自定义配置文件添加对 pdf 图像包含的支持peter.cfg

\Preamble{xhtml}
\makeatletter
\Configure{graphics*}  
         {pdf}  
         {\Needs{"convert \csname Gin@base\endcsname.pdf  
                               \csname Gin@base\endcsname.png"}%  
          \Picture[pict]{\csname Gin@base\endcsname.png}%  
          \special{t4ht+@File: \csname Gin@base\endcsname.png}
         }  
\makeatother
\begin{document}
\EndPreamble

现在你可以使用以下命令编译该文档:

htlatex <filename> peter

生成的 html 内容如下:

<?xml version="1.0" encoding="iso-8859-1" ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->  
<html xmlns="http://www.w3.org/1999/xhtml"  
> 
<head> <title></title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> 
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> 
<!-- html,xhtml --> 
<meta name="src" content="sample.tex" /> 
<meta name="date" content="2014-10-06 09:55:00" /> 
<link rel="stylesheet" type="text/css" href="sample.css" /> 
</head><body 
>
<!--l. 6--><p class="noindent" ><img 
src="foo.png" alt="pict"  
 />
</p><!--l. 8--><p class="indent" >   Some content following cover page. </p> 
</body></html>

相关内容