在文件名中打印纯下划线

在文件名中打印纯下划线

我希望当\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

这是我通常做的事情

使用\pathfromurl或使用 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}

相关内容