lstlisting 内の単一インスタンスのキーワードのハイライトを削除します

lstlisting 内の単一インスタンスのキーワードのハイライトを削除します

私はカスタムlstlisting環境を使用して LaTeX コードをハイライト表示しています。これを使用するには、さらにいくつかのキーワードを入力しました。ただし、パッケージは名前をコマンドとして使用します。このインスタンスで、 Math 環境でmultirow実行できるのと同じように、キーワードのハイライト表示を削除するにはどうすればよいでしょうか。\mathrm

環境は次のとおりです (必要最低限​​のもののみ):

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

\RequirePackage{multirow}また、パッケージのインスタンスでは強調表示されませんが、使用時に\multirow{...}{...}{...}はキーワードとして強調表示する必要があります。

答え1

lstsetLaTeX コードを含むリストには、LaTeX コマンドの外観を設定する特別なオプションと、強調表示されたコマンドのリストにエントリを追加するための対応するオプションがあります。これらはtexcsstyle、 (TeX Control Sequence Style) とです。バックスラッシュも強調表示したい場合は (この Web サイトの例のように)、の代わりに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}

結果:

ここに画像の説明を入力してください

関連情報