如何使用 XeTeX 包含 PNG 图像?

如何使用 XeTeX 包含 PNG 图像?

我可以使用编译器来包含一个 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 可以计算它,因为它知道图像的纵横比。

相关内容