创建一个使用 \includepdf{} 的宏来包含带有下划线的文件名?

创建一个使用 \includepdf{} 的宏来包含带有下划线的文件名?

我正在开发一个复杂的系统,它可以对包含的 PDF 执行许多操作。太复杂了,我想定义一个宏。不幸的是,我的许多用户的文件名中都有空格和下划线。我一直无法弄清楚如何创建一个\includepdf以文件名为宏运行的宏,该宏允许包含空格的文件。

也就是说,我想让这个程序运行:

\documentclass[10pt]{book}
\usepackage{pdfpages}
\newcommand{\mycommand}[1]{
  Including file: #1 (on next page).
  \clearpage
  \includepdf{#1}
}

\begin{document}
\mycommand{demo_include1.pdf}
\end{document}

但我得到的错误是:

! Missing $ inserted.
<inserted text> 
                $
l.11 \mycommand{demo_include1.pdf}

? ^D
! Emergency stop.
<inserted text> 
                $
l.11 \mycommand{demo_include1.pdf}

!  ==> Fatal error occurred, no output PDF file produced!
Transcript written on d.log.

那么我该如何修复我的 LaTeX 文件?

答案1

像这样?(注意使用fontenc。)

\documentclass[10pt]{book}
\usepackage[T1]{fontenc}
\usepackage{pdfpages}

\newcommand{\mycommand}[1]{%
  Including file: \detokenize{#1} (on next page).
  \includepdf{#1}}

\begin{document}
\mycommand{demo_include.pdf}
\end{document}

相关内容