
아래 코드에서 의 두 번째 인수는 \examplecode
파일 이름과 프레임 제목입니다. 파일 이름에 밑줄이 포함되어 있으면 실패합니다.
\documentclass[a4paper,10pt,openany]{scrbook}
\usepackage{minted}
\usepackage{mdframed}
\newcommand{\examplecode}[2]
{
\mdfsetup{frametitle={\colorbox{white}{\space #2 \space}}}
\begin{mdframed}
\inputminted[linenos,fontsize=\footnotesize,baselinestretch=.7]{#1}{src/#2}
\end{mdframed}
}
\begin{document}
\examplecode{c}{testfile.c} % ok
\examplecode{c}{test_file.c} % error
\end{document}
이 두 가지 목적으로 모두 사용할 수 있도록 #2를 어떻게 처리합니까?
답변1
_
텍스트 모드에서 사용할 수 없기 때문에 코드가 실패합니다 . 가장 쉬운 해결책은 \_
명령에서 로컬로 재정의하는 것입니다.
\newcommand{\examplecode}[2]{
\mdfsetup{frametitle={\colorbox{white}{\space #2 \space}}}
\begin{mdframed}
\def\_{_}
\inputminted[linenos,fontsize=\footnotesize,baselinestretch=.7]{#1}{src/#2}
\end{mdframed}
}
통화에서 사용하세요.
\examplecode{c}{text\_file.c}
답변2
제가 수행한 또 다른 방법은 파일 이름 인수를 다음과 같은 또 다른 중괄호 쌍으로 묶는 것입니다.
\inputminted[linenos,fontsize=\footnotesize,baselinestretch=.7]{#1}{{src/#2}}