Hervorhebung für ein Schlüsselwort in einer einzelnen Instanz in der Listenliste entfernen

Hervorhebung für ein Schlüsselwort in einer einzelnen Instanz in der Listenliste entfernen

Ich verwende eine benutzerdefinierte lstlistingUmgebung, um LaTeX-Code hervorzuheben. Dazu habe ich zusätzlich noch ein paar Schlüsselwörter eingegeben. Das multirowPaket verwendet seinen Namen jedoch als Befehl. Wie kann ich die Schlüsselworthervorhebung in diesem Fall entfernen, so wie ich es in einer Mathe-Umgebung tun könnte \mathrm?

Hier die Umgebung (auf das Wesentliche reduziert):

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

Und in der Instanz des \RequirePackage{multirow}Pakets sollte es nicht hervorgehoben werden, wohingegen \multirow{...}{...}{...}es bei Verwendung als Schlüsselwort hervorgehoben werden sollte.

Antwort1

Für Listings mit LaTeX-Code gibt es spezielle lstsetOptionen, die das Aussehen von LaTeX-Befehlen festlegen, sowie die entsprechenden Optionen, um Einträge zur Liste der hervorgehobenen Befehle hinzuzufügen. Diese sind texcsstyle(TeX Control Sequence Style) und moretexcs. Wenn Sie möchten, dass auch der Backslash hervorgehoben wird (wie es beispielsweise auf dieser Website gemacht wird), können Sie =*anstelle von verwenden =.

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}

Ergebnis:

Bildbeschreibung hier eingeben

verwandte Informationen