Estoy usando un lstlisting
entorno personalizado para resaltar el código LaTeX. Para usar esto, ingresé adicionalmente algunas palabras clave más. Sin embargo, el multirow
paquete usa su nombre como comando. ¿Cómo puedo eliminar el resaltado de palabras clave en este caso, tal como lo haría \mathrm
en un entorno matemático?
Aquí está el entorno (reducido a lo esencial):
\lstnewenvironment{customtex}
{\lstset{%
language=[LaTeX]{TeX},
...
keywordstyle=\color{darkred}\bfseries,
morekeywords={multirow},
}}{}
Y en el caso del \RequirePackage{multirow}
paquete no debe resaltarse, mientras que cuando se usa \multirow{...}{...}{...}
debe resaltarse como una palabra clave.
Respuesta1
Para listados con código LaTeX hay lstset
opciones especiales que configuran la apariencia de los comandos LaTeX y las opciones correspondientes para agregar entradas a la lista de comandos resaltados. Estos son texcsstyle
(Estilo de secuencia de control TeX) y moretexcs
. Si desea que la barra invertida también se resalte (como se hace en este sitio web, por ejemplo), puede usar =*
en lugar de =
.
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}
Resultado: