LaTeX 按照什么顺序检查图像文件扩展名?

LaTeX 按照什么顺序检查图像文件扩展名?

我正在阅读 overleaf 的 LaTeX 教程,以及他们的部分添加图像他们有一些示例代码:

\documentclass{article}
\usepackage{graphicx}
\graphicspath{ {images/} }

\begin{document}
The universe is immense and it seems to be homogeneous, 
in a large scale, everywhere we look at.

\includegraphics{universe}

There's a picture of a galaxy above
\end{document}

在解释这\includegraphics{universe}部分内容时他们说:

\includegraphics{universe}命令实际上是将图像包含在文档中的命令。这里宇宙是包含图像的文件的名称(不带扩展名),则宇宙.PNG变成宇宙. 图片的文件名不能包含空格和多个点。

我的问题实际上可以归结为:universe.png如果我在该文件夹中同时包含这两个文件,我universe.jpg会选择哪个?为什么?

答案1

如果文件没有扩展名(.在所有路径分隔符之后的名称最后部分为 没有/),或者扩展名不是已知的图形扩展名(例如,如果文件名为big.universeuniverse则不是有效的图形扩展名),则graphics执行以下操作:

    \@for\Gin@temp:=\Gin@extensions\do{%
      \ifx\Gin@ext\relax
        \Gin@getbase\Gin@temp
      \fi}%

上面的循环将在\Gin@extensions列表中进行迭代,并尝试查找名为的文件<base>.\Gin@temp。如果文件存在,则将扩展名\Gin@ext设置为等于\Gin@temp,并且不会尝试其他扩展名,因此列表中较早的项目\Gin@extensions具有更高的优先级。

每个后端(输出格式)允许不同的图形文件格式。常见的有:

  • dvipslatex):
    \def\Gin@extensions{.eps,.ps,.eps.gz,.ps.gz,.eps.Z,.mps}
    
  • pdftexluatex
    \def\Gin@extensions{%
      .pdf,.png,.jpg,.mps,.jpeg,.jbig2,.jb2,%
      .PDF,.PNG,.JPG,.JPEG,.JBIG2,.JB2%
      % .eps is usually in this list, if conversion to pdf is enabled
    }
    
  • xetexdvipdfmx):
    \def\Gin@extensions{% order here is like pdftex.def, except for PS
      .pdf,.PDF,.ai,.AI,%
      .png,.PNG,.jpg,.JPG,.jpeg,.JPEG,.jp2,.JP2,.jpf,.JPF,.bmp,.BMP,%
      .ps,.PS,.eps,.EPS,.mps,.MPS,%
      .pz,.eps.Z,.ps.Z,.ps.gz,.eps.gz}
    

相关内容