PDF 图像文件和 `htlatex`

PDF 图像文件和 `htlatex`

eps提供文件时,htlatextex4ht自动转换为png文件,以便图形文件可以显示在最终html输出中。但是,我大多数时候使用pdf带有的图形文件格式pdflatex。有没有简单的方法可以使图形文件htlatex工作?pdf

答案1

尝试这个配置文件:

\Preamble{xhtml}
  \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}
         }  
\begin{document}
\EndPreamble

另存为myxhtml.cfg。此配置告诉 htlatex 对于每个带有 pdf 后缀的图像文件,运行 imagemagick 的转换命令,然后插入图像。您必须为源文件中包含的每个图像提供正确的文件扩展名。使用命令编译文件

htlatex filename myxhtml

编辑
已添加\special{t4ht+@File: \csname Gin@base\endcsname.png},此行的目的是将有关使用的图像的信息存储到文件中。当生成的文件被复制到另一个目录(或正在使用此信息)filename.lg时,此信息很重要。make4httex4ebook

答案2

根据 michal.h21 的回答,我得出了一个解决方案,它接受 (几乎) 所有默认接受的图像类型pdflatex。这大大简化了最初在基于 的环境中创建的文档的转换pdflatex,因为不再需要转换为 EPS。

PDF 被转换为密度为 300 dpi 的 PNG 文件。(我无法让 SVG 在 LibreOffice 中正常工作,如果 Microsoft Word 是您的最终目标平台,那么增强型图元文件或 Windows 图元文件也许也可以工作。)PNG 和 JPEG 按原样使用,后者的扩展名始终为.jpg。我还通过实施与自动生成图像使用的命名方案类似的命名方案,添加了对默认位置以外的图像的支持tex4ht

该过程需要以下配置文件,我们称之为my.cfg

\Preamble{xhtml}
  \newcommand{\ConfigureGraphicsDirect}[3]{%
    \Configure{graphics*}
         {#1}
         {\Needs{"#3 \csname Gin@base\endcsname.#1
                               \jobname\arabic{texforhtimagecounter}y.#2"}%
          \Picture[pict]{\jobname\arabic{texforhtimagecounter}y.#2}%
          \stepcounter{texforhtimagecounter}%
         }%
  }
  \ConfigureGraphicsDirect{pdf}{png}{convert -density 300}%
  \ConfigureGraphicsDirect{png}{png}{cp}%
  \ConfigureGraphicsDirect{jpg}{jpg}{cp}%
  \ConfigureGraphicsDirect{jpeg}{jpg}{cp}%
\begin{document}
  \DeclareGraphicsExtensions{.pdf,.png,.jpg,.jpeg}
  \newcounter{texforhtimagecounter}
  \renewcommand{\AsPicture}[1]{%
    \Picture+[]{}#1\EndPicture}
\EndPreamble

由于某种原因,需要运行两次mk4ht才能生成完整的.odt文件。第一次运行后,图像丢失。要编译,请输入:

mk4ht oolatex mainfile "my,ooffice"
mk4ht oolatex mainfile "my,ooffice"

为了使其他 s 的尺寸一致\Picture,值得使用自定义tex4ht.env文件。我发现dvips+convert比 做得更好dvipng。为此,请将tex4ht.env系统上的文件复制到主 TeX 文件的目录中,然后将此行替换

Gdvipng -T tight -x 1400 -D 72 -bg Transparent -pp %%2:%%2 %%1 -o %%3

Gdvipng(从之后的行开始G.png)作者:

Gdvips -E -D 300 -pp %%2:%%2 %%1 -o %%3.ps
Gconvert -density 300 %%3.ps %%3

如果您的目标是 LibreOffice/OpenOffice,则需要手动将每个图形的大小调整为 32%(对于 300 dpi 的图片)。我还没有找到自动执行此操作的方法,xtpipes这里可能需要修改。

当然,为了使其在 Windows 上运行,您需要cpcopy相应的\ConfigureGraphicsDirect调用中替换。

完整代码在 GitHub 上,但是您仍然可能必须使用您自己的 tex4ht.env 副本,除非您运行带有默认安装或 TeXlive 的 Ubuntu 12.10(或更高版本)。

我发现了一个非常相似的.cfg文件http://people.bath.ac.uk/cspehj/maths-access/xht/,但没有任何描述。

GIF 支持留给读者作为练习。

相关内容