覆盖预定义列表样式的属性

覆盖预定义列表样式的属性

我使用该listings包,并且想覆盖 HTML 样式的属性。

不幸的是,我的代码覆盖了整个 HTML 样式,而不仅仅是单个属性:

\lstloadlanguages{HTML}
\lstdefinelanguage{HTML}{ndkeywords={charset, window, document}}

有谁知道我怎样才能覆盖ndkeywords

答案1

listings允许定义样式,您可以在那里放置用于格式化特殊 HTML 代码列表的选项。此外,需要先从默认类中删除应以不同方式显示的关键字。然后,示例将这些关键字添加到类 2 中,并避免使用ndkeywords,因为这被标记为已弃用在 的文档中listings

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[variablett]{lmodern}
\usepackage{color}
\usepackage{listings}
\lstset{
  columns=fullflexible,
  basicstyle=\ttfamily,
}
\lstdefinestyle{myHTML}{
  language=HTML,
  keywordstyle=\color{blue},
  deletekeywords={charset, document, window},
  morekeywords={[2]{charset, document, window}},
  keywordstyle={[2]{\color{red}}},
}

\begin{document}
\begin{lstlisting}[style=myHTML]
<HTML>
  <HEAD></HEAD>
  <BODY>
    <A href="http://tex.stackexchange.com"
       charset="US-ASCII">TeX.SE</A>
  </BODY>
</HTML>
\end{lstlisting}
\end{document}

结果

相关内容