
어리석게도 파일 경로에 #(숫자 기호)를 포함시켰습니다. 이것을 참조할 때마다 다음 오류가 발생합니다.
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}