刪除 lstlisting 中單一實例中關鍵字的突出顯示

刪除 lstlisting 中單一實例中關鍵字的突出顯示

我正在使用自訂lstlisting環境來突出顯示 LaTeX 程式碼。為了使用它,我另外輸入了一些關鍵字。但是,該multirow套件使用其名稱作為命令。如何在這一實例中刪除關鍵字突出顯示,就像\mathrm在數學環境中所做的那樣?

這是環境(簡化為必要的):

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

在套件的實例中\RequirePackage{multirow}不應突出顯示,而在使用時應\multirow{...}{...}{...}將其突出顯示為關鍵字。

答案1

對於包含 LaTeX 程式碼的列表,有一些特殊lstset選項可設定 LaTeX 命令的外觀,以及相應的選項可將條目新增至突出顯示的命令列表。它們是texcsstyle(TeX Control Sequence Style) 和moretexcs.如果您希望反斜線也突出顯示(例如在此網站上所做的),那麼您可以使用=*而不是=.

微量元素:

\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}

結果:

在此輸入影像描述

相關內容