当eps
提供文件时,htlatex
会tex4ht
自动转换为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
时,此信息很重要。make4ht
tex4ebook
答案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 上运行,您需要cp
在copy
相应的\ConfigureGraphicsDirect
调用中替换。
这完整代码在 GitHub 上,但是您仍然可能必须使用您自己的 tex4ht.env 副本,除非您运行带有默认安装或 TeXlive 的 Ubuntu 12.10(或更高版本)。
我发现了一个非常相似的.cfg
文件http://people.bath.ac.uk/cspehj/maths-access/xht/,但没有任何描述。
GIF 支持留给读者作为练习。