帶有符號的檔案路徑會導致錯誤

帶有符號的檔案路徑會導致錯誤

我愚蠢地在文件路徑中包含了#(數字符號)。每當我引用它時,它都會產生以下錯誤:

Illegal parameter number in definition of \reserved@a. [.../Paper#1/2016-02-14/paper1_2016-02-14.pdf}]

有沒有比重命名資料夾更容易的解決方案,從而更改其中的所有程式碼以反映這一點?

\documentclass[a4paper,12pt]{article}
\begin{document}
\includepdf[pages=-]{../../Paper#1/2016-02-14/paper1_2016-02-14.pdf}
\end{document}

答案1

\documentclass[a4paper,12pt]{article}
\begin{document}
\begingroup\catcode`\#=12
\newcommand\hashchar{}%check that is doesn't exist
\gdef\hashchar{#}
\endgroup

\input{paper\hashchar 1/test}


%or change the catcode locally:
\begingroup
\catcode`\#=12
\input{paper#1/test}
\endgroup


\end{document}

答案2

如果您的呼叫\includepdf從未出現在另一個命令的參數中,則可以透過將檔案名稱吸收為逐字參數來實現:

\documentclass[a4paper,12pt]{article}
\usepackage{pdfpages,xparse,letltxmacro}

\LetLtxMacro\originalincludepdf\includepdf
\RenewDocumentCommand\includepdf{O{}v}{\originalincludepdf[#1]{#2}}

\begin{document}
\includepdf[pages=-]{../../Paper#1/2016-02-14/paper1_2016-02-14.pdf}
\end{document}

相關內容