我希望当\includegraphics
命令引用丢失的文件时显示文件名(不产生错误)。目前它不适用于文件名中带有下划线的文件。
请注意,我无法将文件引用中的下划线更改为类似的内容,\_
因为反斜杠不在实际文件名中。
我曾尝试使用 verbatim,但无法使其工作。
最小工作示例:
\documentclass[11pt]{article}
\usepackage{graphicx}
\newcommand{\noimage}[1]{%
\setlength{\fboxsep}{-\fboxrule}%
\fbox{\phantom{\rule{10pt}{10pt}} Missing file: #1 \phantom{\rule{10pt}{10pt}}}% Framed box
}
\let\includegraphicsoriginal\includegraphics
\renewcommand{\includegraphics}[2][width=\textwidth]{\IfFileExists{#2}{\includegraphicsoriginal[#1]{#2}}{\noimage{#2}}}
\begin{document}
\includegraphics{example_file.pdf}
\end{document}
如果文件丢失,所需的输出将如下所示;否则它将是实际图像。
答案1
这是我通常做的事情
使用\path
fromurl
或使用 detokenize 并记住 fontenc
\documentclass[11pt]{article}
\usepackage{url}
\usepackage{graphicx}
\usepackage[T1]{fontenc}
\newcommand{\noimage}[1]{%
\setlength{\fboxsep}{-\fboxrule}%
\fbox{\phantom{\rule{10pt}{10pt}} Missing file:
% \expandafter\path\expandafter{#1}
\detokenize{#1}
\phantom{\rule{10pt}{10pt}}}% Framed box
}
\let\includegraphicsoriginal\includegraphics
\renewcommand{\includegraphics}[2][width=\textwidth]{\IfFileExists{#2}{\includegraphicsoriginal[#1]{#2}}{\noimage{#2}}}
\begin{document}
\includegraphics{example_file.pdf}
\end{document}