答案1
按照Mico 对在列表中使用粗体斜体文本的回答,Computer Modern 字体系列中没有粗体等距字体,因此您需要使用具有粗体等距字体的字体。
借用之前的问题 XML 语法突出显示,下面是一个例子:
已知的问题:
我不确定为什么
<
没有突出显示第一个非评论。Matthias 建议,可以通过使用
escapechar
并将第一个替换<
为!\color{red}{<}!
其中!
的 来克服此行为escapechar
。这已纳入下面的解决方案中。
代码:
\documentclass[border=2pt]{standalone}
\usepackage{xcolor}
\usepackage{listings}
\usepackage{pxfonts}
\lstset{
basicstyle=\ttfamily,
columns=fullflexible,
showstringspaces=false,
commentstyle=\color{gray}\upshape,
breaklines=true,
}
\lstdefinelanguage{XML}{
morestring=[b][\color{brown}]",
morestring=[s][\color{red}\bfseries]{>}{<},
morecomment=[s]{<?}{?>},
stringstyle=\color{black},
identifierstyle=\color{blue},
keywordstyle=\color{cyan},
escapechar=!,
morekeywords={name,use,xmlns,version,type}% list your attributes here,
}
\begin{document}
\begin{lstlisting}[language=XML]
<?xml version="1.0" encoding="utf-8"?>
!\color{red}\bfseries<!xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="points">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="point">
<xs:complexType>
<xs:attribute name="x" type="xs:unsignedShort" use="required" />
<xs:attribute name="y" type="xs:unsignedShort" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
\end{lstlisting}
\end{document}
替代解决方案:
使用解决方案形式ttfamily 与 bfseries 或如何在固定宽度字体中启用粗体您可以使用 Courier 字体
\renewcommand{\ttdefault}{pcr}
但我个人认为这些结果并不令人满意:
代码:
与上面相同但删除\usepackage{pxfonts}
并添加:
\renewcommand{\ttdefault}{pcr}