我正在处理一份文档,发现
\DeclareGraphicsRule{.tif}{png}{.png}{`convert #1 `dirname #1`/`basename #1 .tif`.png}
我不太清楚它的作用。有人能告诉我吗?
答案1
该行希望.tif
通过使用 ImageMagic(convert
在 Linux 上可执行;我认为在 Windows 上它被称为magick
)将转换.tif
为.png
图形包含之前的来添加对 LaTeX 的支持,因为没有 TeX 引擎/后端(据我所知)可以本机包含 TIFF 文件。该行可能是受以下部分的启发grfguide
:
它会在包含文件之前调用zcat
命令来解压.ps.gz
文件。但是,该行仅适用于可以从后端处理的简单内容。像 ImageMagick 这样的更复杂的命令无法由后端直接处理,因此您的\DeclareGraphicsRule
行实际上不起作用。
.tif
您可以手动运行该命令将图形(如果有的话)转换为.png
,或者使用自动解决方案,例如这里(请注意,该解决方案效率很低,因为它在每次构建文档时都会执行转换)。
更准确地回答标题中的问题:
\DeclareGraphicsRule{<ext>}{<type>}{<read-file>}{<command>}
声明graphics
(或graphicx
) 包应如何处理扩展名为 的文件。当找到<ext>
图形文件时,它使用通用图形(由引擎代码定义)来包含该文件,并使用扩展名获取该文件的边界框信息(通常与 相同),并如上所述将其传递给后端以读取和包含图形文件。file.<ext>
<type>
<read-file>
<ext>
<command>