尝试生成 DVI 时,PNG 图像出现 MikTex 错误

尝试生成 DVI 时,PNG 图像出现 MikTex 错误

我有一个tex包含一些 PNG 图像元素的文件\includegraphic。我在 Windows 上使用 MikTeX,PDF 没问题。

现在,我需要一个 DVI,因此我尝试使用:\pdfoutput=0 这会创建一个 DVI,但只有在我删除所有 PNG 图像之后才能创建……否则我会收到如下错误:

! LaTeX Error: Cannot determine size of graphic in math-box-plot.png (no BoundingBox).

答案1

TeX 是基于文本的,它默认无法确定 PNG 图像本身的大小。

快速解决方案:

\usepackage{bmpsize}

并使用

\usepackage[dvipdfmx]{graphicx}

最好使用extractbb(也称为ebbxbb)程序来生成.bb.xbb归档 LaTeX。在 ' 中使用此命令命令提示符':

for %i in (*.png) do xbb %i

(或者for %i in (*.png) do extractbb -x %i,我不确定 MiKTeX。)

并使用

\usepackage[dvipdfmx]{graphicx}

(我使用 TeX Live,只有 dvipdfmx 支持 png 图像。但 MiKTeX 似乎有所不同,我记不太清楚了。)

答案2

安装程序图像魔术师,那么你可以即时完成:

\documentclass{article}

\usepackage[dvips]{graphicx}
\DeclareGraphicsRule{.png}{eps}{.bb}{`convert #1 eps:-}
\DeclareGraphicsRule{.gif}{eps}{.bb}{`convert #1 eps:-}
\usepackage{grfext}
\AppendGraphicsExtensions*{.png,.gif}
\usepackage{bmpsize}

\makeatletter
\newcommand*{\IncludeGraphics}[2][]{%
  \begingroup
    \let\@found\@empty
    \@for\@type:=\bmpsize@types\do{%
      \ifx\@found\@empty
        \@nameuse{bmpsize@read@\@type}{#2.\@type}%
        \ifbmpsize@ok
          \let\@found=\@type
        \fi
      \fi
    }%
    \ifx\@found\@empty
      \includegraphics[{#1}]{#2}%
    \else
      \includegraphics[{natwidth=\bmpsize@width,natheight=\bmpsize@height,#1}]{#2}%
    \fi
  \endgroup
}
\makeatother

\begin{document}
  \IncludeGraphics{lion}\qquad % a png image
  \IncludeGraphics{knuth-tex}  % a gif image
\end{document}

顺便说一句:你不需要\pdfoutput=0简单地运行latex 而不是pdflatex

答案3

我总是让便携式 latex 源同样适合用 latex 和 pdflatex 进行编译。我的补救措施相当简单。

放入\usepackage{graphicx}前置放大器(不指定任何驱动程序)。

使用导入epspdf图形\includegraphics{filename};然后 latex 编译器加载,filename.eps而 pdflatex 需要filename.pdf。如果包被加载, MikTeX 会自动转换epspdf动态格式。epstopdf

导入带有明确显示扩展名的png图形;在这种情况下,您不需要发明。位图图形的自然高度和宽度可以从 Windows 资源管理器或任何图形编辑器(例如 Windows Paint)中的文件属性中确定。\includegraphics[nathwith=<XX>bp, natheight=<YY>bp, width=<width>]{filename.png}.png\DeclareGraphicsRule

相关内容