我有一些 xml 代码,希望它们在我的 latexdocument 中看起来不错。我这样做:
\documentclass[12pt]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[none]{hyphenat}
\usepackage{helvet}
\usepackage{url}
\usepackage{graphicx}
\usepackage[onehalfspacing]{setspace}
\renewcommand{\familydefault}{\sfdefault}
\DeclareGraphicsExtensions{.png}
\usepackage{textcomp}
\usepackage{listings}
\usepackage{color}
\lstset{
basicstyle=\fontsize{12}{12},
columns=fullflexible,
showstringspaces=false,
breaklines=true,
showstringspaces=false,
identifierstyle=\ttfamily,
stringstyle =\color[rgb]{0,0,1}\ttfamily,
commentstyle=\color[rgb]{0.133,0.545,0.133}\ttfamily,
keywordstyle=\color[RGB]{49,0,171}\ttfamily,
emph= {action,intent–filter,category, receiver, application, activity, manifest},
emphstyle={\color[RGB]{63,127,127}},alsoletter={-},
}
\begin{document}
\tableofcontents
\newpage
\begin{lstlisting} [language=xml]
<intent-filter>
</intent-filter>
\end{lstlisting}
\结束{文档}
我将其用于 java 和 xml。它看起来不错,但“intent-filter”仍然是黑色,其他关键字(我在这里删除了它)变为绿色。使用“intentfilter”可以,但必须是“intent-filter”。我该怎么做?
答案1
默认情况下,listings
不允许-
在标识符中使用连字符。您必须使用 明确告知它这样做alsoletter=-
。此修改应进行后加载所需的语言,因为该alsoletter
键(通常)用于listings
' 语言定义。因此,太晚加载语言可能会覆盖您之前的alsoletter
规范。
下列应该工作:
\begin{lstlisting}[language=xml,alsoletter=-]
<intent-filter><xyz>blablabla</xyz></intent-filter>
\end{lstlisting}
应该但事实并非如此。为什么?因为,在
emph= {action,intent–filter,category, receiver, application, activity, manifest}
该–
字符是短划线字符 (U+2013),而在您的列表中,您使用连字符(U+002D)这两个角色在你看来只是相似,却listings
视之为两个截然不同的人物。
如果您始终使用连字符,内容就会按预期突出显示。
\documentclass[12pt]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[none]{hyphenat}
\usepackage{helvet}
\usepackage{url}
\usepackage{graphicx}
\usepackage[onehalfspacing]{setspace}
\renewcommand{\familydefault}{\sfdefault}
\DeclareGraphicsExtensions{.png}
\usepackage{textcomp}
\usepackage{listings}
\usepackage{color}
\lstset{
basicstyle=\fontsize{12}{12},
columns=fullflexible,
showstringspaces=false,
breaklines=true,
showstringspaces=false,
identifierstyle=\ttfamily,
stringstyle =\color[rgb]{0,0,1}\ttfamily,
commentstyle=\color[rgb]{0.133,0.545,0.133}\ttfamily,
keywordstyle=\color[RGB]{49,0,171}\ttfamily,
emph= {action,intent-filter,category, receiver, application, activity, manifest},
emphstyle={\color[RGB]{63,127,127}},alsoletter={-},
}
\begin{document}
\begin{lstlisting}[language=xml,alsoletter=-]
<intent-filter><xyz>blablabla</xyz></intent-filter>
\end{lstlisting}
\end{document}