我可以使用编译器来包含一个 pdf 图像pdflatex
,以及代码:
\usepackage{graphicx}
....
\begin{figure}
\centering
\includegraphics[scale=0.6]{chiaroscuro-victorian.png}
\end{figure}
但是当我使用 XeTeX 进行编译时,出现错误:
! LaTeX Error: Cannot determine size of graphic in chiaroscuro-victorian.png (no BoundingBox).
mla
如果有相关性的话,我也正在使用该包:
\usepackage{mla}
我如何导入此图像并使用 XeTeX?
答案1
这将与 XeTeX 一起使用(即使用命令xelatex
):
\documentclass{article}
\usepackage[dvips,xetex]{graphicx}
\usepackage{ifpdf,mla}% <-- mla.sty requires ifpdf.sty, but (perversely) doesn't load it
%\usepackage{fontspec}
\begin{document}
\begin{figure}
\centering
\includegraphics[scale=0.6]{chiaroscuro-victorian.png}
\end{figure}
\end{document}
问题是由于mla.sty
(我避免使用)。它具有以下定义:
% New code thanks to Edward Z. Yang
\ifpdf % We're generating a pdf
\usepackage[pdftex]{color,graphicx}
\pdfpagewidth=\paperwidth
\pdfpageheight=\paperheight
\usepackage{thumbpdf}
%\pdfcompresslevel=9
\else
\usepackage[dvips]{graphicx}
\fi
本质上,如果您不使用 pdfTeX 作为引擎,它会graphicx
使用特定的驱动程序加载,从而导致冲突。graphicx
首先使用该xetex
选项加载可以解决冲突(您还需要加载,dvips
这样您加载的包就不会与实际加载的包发生冲突)mla.sty
。
答案2
PNG 图像是光栅图像,没有物理尺寸。如果您的图像是 100 像素 x 100 像素,您可以将其打印成缩略图大小或整页。由于 XeTeX 将图片放在页面上,因此它需要知道要将其做多大,例如,
\includegraphics[width=3in]{chiaroscuro-victorian.png}
您不需要指定宽度和高度,因为 TeX 可以计算它,因为它知道图像的纵横比。