grffile 将选项传递给 graphicx 的问题(草稿/最终版)

grffile 将选项传递给 graphicx 的问题(草稿/最终版)

我一直在尝试在我的文档上全局设置draft模式,但我仍然想\includegraphics正常工作,因此该graphicx包应该接收该final选项。我也在使用该grffile包。

我发现grffile,使用 时,final的选项graphicx不起作用,具体取决于软件包的加载方式,因此尽管设置了 ,但只会打印带有文件名的框final。以下是我通过实验发现的:

% result: DRAFT
\documentclass[draft]{scrartcl}
\usepackage[final]{graphicx}
\usepackage{grffile}
\begin{document}
\includegraphics{alertmessage-success.png}
\end{document}

% result: DRAFT
\documentclass[draft]{scrartcl}
\usepackage{graphicx}
\usepackage[final]{grffile}
\begin{document}
\includegraphics{alertmessage-success.png}
\end{document}

% result: DRAFT
\documentclass[draft]{scrartcl}
\usepackage[final]{graphicx}
\usepackage[final]{grffile}
\begin{document}
\includegraphics{alertmessage-success.png}
\end{document}

% result: DRAFT
\documentclass[draft]{scrartcl}
\usepackage{grffile}
\usepackage[final]{graphicx}
\begin{document}
\includegraphics{alertmessage-success.png}
\end{document}

% result: FINAL
\documentclass[draft]{scrartcl}
\usepackage[final]{grffile}
\usepackage{graphicx}
\begin{document}
\includegraphics{alertmessage-success.png}
\end{document}

% result: FINAL
\documentclass[draft]{scrartcl}
\usepackage[final]{grffile}
\usepackage[final]{graphicx}
\begin{document}
\includegraphics{alertmessage-success.png}
\end{document}

所以grffile必须加载第一的选项final。为什么会这样?如果整个过程不依赖于软件包的顺序,那么出错的可能性就会小得多(普通用户该如何弄清楚这一点?尤其是因为grffile文档中的示例使用了“错误的”[在这种情况下]顺序:

\usepackage[latin1]{inputenc}[2006/02/22]
% \usepackage[latin1]{inputenx}
\usepackage{graphicx}
\usepackage[encoding,filenameencoding=utf8]{grffile}

grffile文档,第 1.4.3 节)。

grffile我认为它与实际加载graphics而不是graphicx(中没有提及该graphicx包)有关grffile

grffile.styv1.17 第 76-78 行:

\DeclareDefaultOption{%
  \PassOptionsToPackage\CurrentOption{graphics}%
}

grffile.styv1.17 第 105 行:

\RequirePackage{graphics}

使用 TeX Live 2016。

相关内容