lstlisting의 단일 인스턴스에서 키워드 강조 표시 제거

lstlisting의 단일 인스턴스에서 키워드 강조 표시 제거

lstlistingLaTeX 코드를 강조하기 위해 사용자 정의 환경을 사용하고 있습니다 . 이를 사용하기 위해 몇 가지 키워드를 추가로 입력했습니다. 그러나 multirow패키지는 해당 이름을 명령으로 사용합니다. \mathrm수학 환경에서 와 마찬가지로 이 인스턴스에서 키워드 강조 표시를 제거하려면 어떻게 해야 합니까 ?

환경은 다음과 같습니다(필수 항목으로 축소).

\lstnewenvironment{customtex}
{\lstset{%
    language=[LaTeX]{TeX},
    ...
    keywordstyle=\color{darkred}\bfseries,
        morekeywords={multirow},
}}{}

그리고 패키지 인스턴스에서는 \RequirePackage{multirow}강조 표시되어서는 안 되지만, 사용 시에는 \multirow{...}{...}{...}키워드로 강조 표시되어야 합니다.

답변1

lstsetLaTeX 코드가 포함된 목록에는 LaTeX 명령의 모양을 설정하는 특수 옵션과 강조 표시된 명령 목록에 항목을 추가하는 해당 옵션이 있습니다 . 이는 texcsstyle(TeX 제어 시퀀스 스타일) 및 입니다 moretexcs. 백슬래시도 강조 표시하려면(예를 들어 이 웹 사이트에서 수행된 것처럼) 대신 =*을 사용할 수 있습니다 =.

MWE:

\documentclass{article}
\usepackage{listings}
\usepackage[svgnames]{xcolor}
\lstnewenvironment{customtex}
{\lstset{%
    language=[LaTeX]{TeX},
    texcsstyle=*\color{DarkRed}\bfseries,
    moretexcs={RequirePackage,multirow},
}}{}
\begin{document}
\begin{customtex}
\RequirePackage{multirow}
\multirow{1}{2}{3}
\end{customtex}
\end{document}

결과:

여기에 이미지 설명을 입력하세요

관련 정보