PDF 图像文件和 `htlatex`:问题

PDF 图像文件和 `htlatex`:问题

htlatex我按照 michal.h21 的建议,从“PDF 图像文件和”分支出来。

我使用 myxhtml.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}
  }
\begin{document}
\EndPreamble

然后是测试.tex


\documentclass[12pt]{article}
\usepackage[dvips]{xcolor}
\usepackage[dvips]{graphicx}
\usepackage[tex4ht]{hyperref}
\begin{document}
\begin{picture}(0,0)% 
\includegraphics{1fig2dev.pdf}% 
\end{picture}% 
\end{document}

并且 pdf 文件 1fig2dev.pdf 相当小


%PDF-1.5
%Çì¢
5 0 obj
>
stream
x­S»R^C1^Lìý^UªS^HKgëñ^EÔ   ^E^_¤H      ^Tü>ò½^RrÇ^LEæ
¥´ëµ/ ·o\÷çô´S8|¥KÊ@Y2SK^R³Ýüô©S:&Ò¬(^E:,^BNjJAá^Z(R¤^A©£gi^Qñ^NÕ^Cc¨äë^QUBV jQ\úÈïYmþë^F>^Rc×&}÷T3ì^S^G^GaR:4­A«@^E+g^T30«(ÊP      ­zôä@y»OTX0Ì^@áU¢^PU¼^X­èÖâØ^Eñ}zIÛ pX=^U¹÷âÞ7+Â^^Õü^XtÿíñØÏã,\|Ù;êQmðxpÝ«`^V¹é^X¯Á"00÷^RgìtÃ|tuxôS¢ýÞ:Fåä&å\yrsÚ^Ý^A£PhvÓ»¸¢.£«Âï)/T-4^OêÔ\B^Aukâ^T+^S÷oíóm^Bã^_éÒ¦±
Ù¦^_¸´Î!endstream
endobj
6 0 obj
352
endobj
4 0 obj
>
/Contents 5 0 R
>>
endobj
3 0 obj
>
endobj
1 0 obj
>
endobj
7 0 obj
>endobj
8 0 obj
>
endobj
9 0 obj
>stream





2016-10-17T21:01:33+02:00
2016-10-17T21:01:33+02:00
fig2dev Version 3.2 Patchlevel 5e

1fig2dev.fig




endstream
endobj
2 0 obj
>endobj
xref
0 10
0000000000 65535 f 
0000000646 00000 n 
0000002219 00000 n 
0000000587 00000 n 
0000000456 00000 n 
0000000015 00000 n 
0000000437 00000 n 
0000000710 00000 n 
0000000751 00000 n 
0000000780 00000 n 
trailer
]
>>
startxref
2407
%%EOF

全部位于同一文件夹中。

现在我输入 htlatex test.tex myxhtml 但这不起作用:


! LaTeX Error: Cannot determine size of graphic in 1fig2dev.pdf (no BoundingBox
).

See the LaTeX manual or LaTeX Companion for explanation.
Type  H   for immediate help.
 ...                                              

l.7 \includegraphics{1fig2dev.pdf}

似乎 pdf 没有被替换。我尝试手动转换 1fig2dev.pdf 1fig2dev.png,并使用 gwenview 1fig2dev.png 进行验证... 似乎没问题。

什么地方出了错????

好的,部分答案:如果我删除图片环境,问题就消失了。这是 htlatex 中的错误吗???

答案1

环境的内容picture使用一些图像转换器转换为图像dvitex4ht配置被隐藏在其中,因此根本不执行 中的配置graphics*,PDF 文件按原样插入。如果您尝试使用 运行文档latex,则会得到完全相同的错误。

如果你将其移出\includegraphics环境picturegraphics*配置就会生效,PDF 图片也会被包含进去。如果你真的想在环境中包含图片picture,你需要使用epsDVI 模式支持的格式。

我将使用以下方法:

准备所有需要的格式(pdf、png、eps)的图像,声明 LaTeX 在特定模式下应使用哪些扩展名,从\includegraphics命令中删除扩展名并让 LaTeX 决定应该使用哪一个。

您修改了文档:

\documentclass[12pt]{article}
\usepackage[]{xcolor}
\usepackage[]{graphicx}
\usepackage[tex4ht]{hyperref}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\DeclareGraphicsExtensions{pdf,png,jpg}
\begin{document}
\begin{picture}(0,0)% 
\includegraphics{1fig2dev}% 
\end{picture}% 

\includegraphics{1fig2dev}
\end{document}

如您所见,\DeclareGraphicsExtensions命令用于定义扩展名,当包含图像时应尝试这些扩展名。这些将在 PDF 模式下使用。现在您需要修改文件.cfg

\Preamble{xhtml}
\Configure{picture}
{\DeclareGraphicsExtensions{.eps}\Picture+[PICT]{}}
{\EndPicture}
\begin{document}
\DeclareGraphicsExtensions{.png,.jpg,.gif}

\EndPreamble

\Configure{picture}用于声明图像应该在环境eps内使用,或者应该在其他地方使用。picturepngjpggif

相关内容