我试图将图形包含到我的 Latex 文件中,该文件是我在 OS X 上使用 latex+dvipdf 编译的。但是 Latex 返回此错误:“无法确定图形大小”
我的图形是从 PowerPoint 导出的,因此我尝试了 .pdf 和 .png。两者都出现了相同的错误。
不起作用的示例代码:
\begin{figure}[htb]
\begin{center}
\leavevmode
\includegraphics[width=0.8\textwidth]{graph.png}
\end{center}
\end{figure}
如果我必须手动设置图像的一些尺寸,请告诉我如何找到这些尺寸。我需要图像占据文本宽度的约 80% 并居中。谢谢。
答案1
DVI 生成latex
不支持读取 PNG、JPG 或 PDF 图像的大小。您需要使用pdflatex
。实际上在现代发行版中latex
处于pdflatex
DVI 模式,但由于某种原因,它只能在 PDF 模式下读取大小。但是,您可以使用和声明图像的自然大小,natwidth
这natheight
将使latex
编译无错误。生成的 DVI 文件将仅链接到 PDF,并且 DVI 到 PDF 转换器需要将其包含在最终 PDF 中。据我所知,dvpdf
不支持这一点,但dvipdfm
支持。
\documentclass{article}
\usepackage{graphicx}
\begin{document}
\begin{figure}
\centering
\includegraphics[width=0.8\textwidth,natwidth=610,natheight=642]{tiger.pdf}
\end{figure}
\end{document}
使用以下任一方式进行编译
pdflatex <file base>
或者
latex <file base>
dvipdfm <file base>
答案2
非 Latex 解决方案
一个非常快捷的解决方法是将png
文件转换为eps
格式。例如,可以使用图形软件轻松完成Inkscape
。
因此,您只需打开文件Inkscape
然后SaveAs
选择eps
格式即可。
现在将文件中的扩展名tex
从
\includegraphics[width=0.8\textwidth]{tiger.png}
到
\includegraphics[width=0.8\textwidth]{tiger.eps}
答案3
修复文件名
我遇到的这个错误是由于 pdf 文件名中包含点。删除这些点(当然,.pdf 除外)可以解决此问题。
修复文件类型检测
LaTeX graphics/graphicx 包使用第一个点来查找扩展名。只需添加 \usepackage{graphicx} \usepackage{grffile} 即可解决问题,而无需更改文件名。包grffile
会更改算法以检查已知扩展名(选项multidot
,默认启用)。
答案4
我在一个jpeg
文件中看到了这个问题。通过将其扩展名从 改为.JPG
(.jpg
是的,只需将大写改为小写),错误就消失了。
$ pdflatex --version
This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) restricted \write18 enabled.