
내 (특히 부품용 )에 대한 xkeyval
사용자 정의 옵션( )을 생성하는 데 사용하려고 합니다 . 이것은 내 MWE입니다.\codeblock
lstinputlisting
linerange
\makeatletter
\newcommand{\code}{}
\define@key{code}{block}{\renewcommand\codeblock{#1}}
\setkeys{code}{block=}
{}
\savekeys{code}{block}
\newcommand\code[1][]{
\setkeys{code}{#1}
\lstinputlisting[linerange=\codeblock,rangeprefix=//---,includerangemarker=false]{./listingwithoutcomments}
}
\makeatother
오류가 발생합니다.
! Improper alphabetic constant.
<to be read again>
\code
l.4 \code[block=inout]
이는 다음을 사용하여 발생합니다.
\linerange=\block
그래서 나는 다음을 시도했습니다.
\linerange=\\block
... 하지만 결과 목록은 완전히 비어 있습니다.
내 구문에 문제가 있다고 생각하지 않지만 xkeyval
이 작업을 수행하는 방법을 잘 모르겠습니다.
답변1
나는 다음을 통해 이 문제를 해결했습니다.
\edef\dolisting{\noexpand\lstinputlisting[linerange=\codeblock,rangeprefix=//---,includerangemarker=false,language=maxj,frame=single]{./listingwithoutcomments}}
\dolisting