
답변1
\
이는 Bash 어휘분석기가 쉘 이스케이프 시퀀스를 처리하기 위해 백슬래시에 대한 catcode를 재정의하기 때문에 발생합니다 . 이는 명령을 시작하기 위해 escapeinside 시퀀스에서 사용할 수 없음을 의미합니다.
다행히도 다음을 수행하여 해결 방법이 가능합니다.또 다른문자가 활성 상태이고 csname을 사용하여 문자를 정의하여 인수를 활성화합니다. 선택한 문자가 생성된 코드의 다른 곳에 나타나지 않는 것이 중요합니다. 이 예에서는 물음표를 사용합니다 ?
. 명령(예: )을 호출할 때 \textrm{arg}
대신 을 호출하여 ?{textrm}{arg}
물음표를 선택한 문자로 바꿉니다.
catcode 재정의가 문서의 나머지 부분에 영향을 미치지 않도록 전체 내용을 \begingroup
/ 로 묶는 것이 중요합니다 .\endgroup
\documentclass{article}
\usepackage{minted}
\begin{document}
\begingroup
% REPLACE THE ? WITH YOUR CHOSEN CHARACTER ON BOTH OF THE FOLLOWING LINES
\catcode`\?=\active
\def?#1{\csname #1\endcsname}
\begin{minted}[escapeinside=||]{bash}
#!/bin/bash
echo "Hello world!"
|?{textrm}{Some commentary here}|
\end{minted}
\endgroup
\end{document}